/* * Copyright (C) 2016 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ syntax = "proto2"; option optimize_for = LITE_RUNTIME; package aapt.pb; message ConfigDescription { optional bytes data = 1; optional string product = 2; } message StringPool { optional bytes data = 1; } message CompiledFile { message Symbol { optional string resource_name = 1; optional uint32 line_no = 2; } optional string resource_name = 1; optional ConfigDescription config = 2; optional string source_path = 3; repeated Symbol exported_symbols = 4; } message ResourceTable { optional StringPool string_pool = 1; optional StringPool source_pool = 2; optional StringPool symbol_pool = 3; repeated Package packages = 4; } message Package { optional uint32 package_id = 1; optional string package_name = 2; repeated Type types = 3; } message Type { optional uint32 id = 1; optional string name = 2; repeated Entry entries = 3; } message SymbolStatus { enum Visibility { Unknown = 0; Private = 1; Public = 2; } optional Visibility visibility = 1; optional Source source = 2; optional string comment = 3; } message Entry { optional uint32 id = 1; optional string name = 2; optional SymbolStatus symbol_status = 3; repeated ConfigValue config_values = 4; } message ConfigValue { optional ConfigDescription config = 1; optional Value value = 2; } message Source { optional uint32 path_idx = 1; optional uint32 line_no = 2; optional uint32 col_no = 3; } message Reference { enum Type { Ref = 0; Attr = 1; } optional Type type = 1; optional uint32 id = 2; optional uint32 symbol_idx = 3; optional bool private = 4; } message Id { } message String { optional uint32 idx = 1; } message RawString { optional uint32 idx = 1; } message FileReference { optional uint32 path_idx = 1; } message Primitive { optional uint32 type = 1; optional uint32 data = 2; } message Attribute { message Symbol { optional Source source = 1; optional string comment = 2; optional Reference name = 3; optional uint32 value = 4; } optional uint32 format_flags = 1; optional int32 min_int = 2; optional int32 max_int = 3; repeated Symbol symbols = 4; } message Style { message Entry { optional Source source = 1; optional string comment = 2; optional Reference key = 3; optional Item item = 4; } optional Reference parent = 1; optional Source parent_source = 2; repeated Entry entries = 3; } message Styleable { message Entry { optional Source source = 1; optional string comment = 2; optional Reference attr = 3; } repeated Entry entries = 1; } message Array { message Entry { optional Source source = 1; optional string comment = 2; optional Item item = 3; } repeated Entry entries = 1; } message Plural { enum Arity { Zero = 0; One = 1; Two = 2; Few = 3; Many = 4; Other = 5; } message Entry { optional Source source = 1; optional string comment = 2; optional Arity arity = 3; optional Item item = 4; } repeated Entry entries = 1; } message Item { optional Reference ref = 1; optional String str = 2; optional RawString raw_str = 3; optional FileReference file = 4; optional Id id = 5; optional Primitive prim = 6; } message CompoundValue { optional Attribute attr = 1; optional Style style = 2; optional Styleable styleable = 3; optional Array array = 4; optional Plural plural = 5; } message Value { optional Source source = 1; optional string comment = 2; optional bool weak = 3; optional Item item = 4; optional CompoundValue compound_value = 5; }