summaryrefslogtreecommitdiffstats
path: root/tools/aapt/ResourceTable.h
Commit message (Collapse)AuthorAgeFilesLines
* aapt: add option for stricter symbol generationAdrian Roos2015-06-021-1/+5
| | | | | | | | Adds an option that prevents generating java symbols for string resources that don't have a default localization. Bug: 21537397 Change-Id: Ifafa942b24d5cdbed93651cde363e859be13d395
* resolved conflicts for merge of 701f9c2f to stage-aosp-masterDan Albert2015-03-051-7/+5
|\ | | | | | | Change-Id: I42e0411c0acef4b15137491ecaaed95d9b1cd0c1
| * Stop using namespace std.Dan Albert2015-03-041-7/+5
| | | | | | | | | | | | | | | | | | | | The pattern of #include and using namespace std here fails to build with GCC. At first glance it's a GCC bug rather than libc++ doing something wrong. Regardless, it can be worked around by just specifying std:: where appropriate. Bug: 19606303 Change-Id: I5652682eae7ca7559cf2a9307909859013440781
* | AAPT: Handle all old unversioned attribute usageAdam Lesinski2015-01-141-1/+1
| | | | | | | | | | | | | | | | All references to attributes defined in pre-LOLLIPOP_MR1 SDK are moved to version qualified resource entries. Bug:18221682 Change-Id: Ifd739530ebcf99e6bc7ddb3f10bc5e05f0726e62
* | AAPT: Move private attrs to new type for frameworkAdam Lesinski2014-12-031-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Private attributes are typically placed after public attributes in the resource table. Each time a new version of the Android framework is released, new public attributes take the place of the private attributes, and the private attributes are shifted after the new public ones. This means that any apps built against the newer SDK may inadvertently be using private attributes on older devices. This change moves all private attributes to a completely different type ID, so there will never be collisions across versions. These private attributes are automatically moved to a synthesized type only for the system resources. Bug:18263655 Change-Id: I7a850512953fadcc9f3524d509cea30249782db8
* | Add error checking to aapt for split generationAdam Lesinski2014-11-031-5/+8
|/ | | | Change-Id: Ica627db6a671f6a6c35f98bfd9c03598ffe103ce
* AAPT: Fix issue with synthesized resource not actually showing upAdam Lesinski2014-09-241-0/+1
| | | | | | | | | | AAPT keeps around a few pieces of state that are disjoint, so simply adding to a collection won't add the resource to the final flattened output. Instead, we create the resource from the top and then copy over the values into the newly created resource. Bug:17647890 Change-Id: I214263e84c18f9370c6e6a5aa53aa2d833fc842d
* AAPT: Continuation of public/private attribute fixAdam Lesinski2014-09-221-4/+39
| | | | | | | | | | | XML files like layouts are now scanned and checked for v21 attributes. If those kinds of attributes are found, then we remove them in the original version and synthesize a new xml file under the v21 configuration. Bug:17520380 Change-Id: Icf984cb96134180a2e35349c1dbf2cef9a8f0bda
* Fix backwards compat problem with AAPT public attrsAdam Lesinski2014-09-181-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AAPT has traditionally assigned resource IDs to public attributes, and then followed those public definitions with private attributes. --- PUBLIC --- | 0x01010234 | attr/color | 0x01010235 | attr/background --- PRIVATE --- | 0x01010236 | attr/secret | 0x01010237 | attr/shhh Each release, when attributes are added, they take the place of the private attributes and the private attributes are shifted down again. --- PUBLIC --- | 0x01010234 | attr/color | 0x01010235 | attr/background | 0x01010236 | attr/shinyNewAttr | 0x01010237 | attr/highlyValuedFeature --- PRIVATE --- | 0x01010238 | attr/secret | 0x01010239 | attr/shhh Platform code may look for private attributes set in a theme. If an app compiled against a newer version of the platform uses a new public attribute that happens to have the same ID as the private attribute the older platform is expecting, then the behavior is undefined. We get around this by detecting any newly defined attributes (in L), copy the resource into a -v21 qualified resource, and delete the attribute from the original resource. This ensures that older platforms don't see the new attribute, but when running on L+ platforms, the attribute will be respected. We still need to address this problem in the platform moving forward, as this will only help us in the transition from pre L to L. Bug:17520380 Change-Id: Ia2a985798b50006c21c7c3431d30d9598f27cd91
* AAPT: mipmaps should not end up in SplitsAdam Lesinski2014-08-211-2/+4
| | | | | | | | Mipmaps are never filtered, and so they will always end up in the base APK. Make sure they get omitted from any split. Change-Id: Id24b082bc9bd2d3f031a58bd0de4d30b4f0de7e0
* AAPT support for feature splitsAdam Lesinski2014-08-041-8/+18
| | | | | | | | | | | | | | | | | | | | | | | This change allows the developer to add a base package for which to build a feature split. The generated resource types will begin after the base APK's defined types so as not to collide or override resources. Multiple features can be generated by first choosing an arbitrary order for the features. Then for each feature, the base APK and any preceding features are specified with the --feature-of flags. So with a base APK 'A' and features, 'B', and 'C', 'B' would be built with aapt package [...] --feature-of A [...] and 'C' would be built with aapt package [...] --feature-of A --feature-of B [...] Change-Id: I1be66e3f8df9a737b21c71f8a93685376c7e6780
* Add support for building split APKsAdam Lesinski2014-05-111-33/+4
| | | | | | | | | | | | | | Build multiple APKs, each containing a disjoint subset of configurations. These can then be loaded into the device AssetManager and should operate as if they were never split. Use the idea of building multiple sets of files, where each set represents an APK. An ApkBuilder can place files in a set based on its configuration, but you can actually add directly to a set, in the case of the resources.arsc and generated AndroidManifest.xml for splits. Change-Id: Ic65d3f0ac1bbd290185695b9971d425c85ab1de3
* Shared library resource supportAdam Lesinski2014-03-251-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Shared libraries can now export resources for applications to use. Exporting resources works the same way the framework exports resources, by defining the public symbols in res/values/public.xml. Building a shared library requires aapt to be invoked with the --shared-lib option. Shared libraries will be assigned a package ID of 0x00 at build-time. At runtime, all loaded shared libraries will be assigned a new package ID. Currently, shared libraries should not import other shared libraries, as those dependencies will not be loaded at runtime. At runtime, reflection is used to update the package ID of resource symbols in the shared library's R class file. The package name of the R class file is assumed to be the same as the shared library's package name declared in its manifest. This will be customizable in a future commit. See /tests/SharedLibrary/ for examples of a shared library and its client. Bug:12724178 Change-Id: I60c0cb8ab87849f8f8a1a13431562fe8603020a7
* Reduce warning verbosity in aaptAdam Lesinski2014-03-201-2/+2
| | | | | | | | - Attributed source of problems to the correct file. - Only verify string localizations against valid locales. Bug:13140015 Change-Id: I9dabc5efa0510649caee8af0c8ebb803d6f48269
* Revert "Move frameworks/base/tools/ to frameworks/tools/"Adam Lesinski2014-01-271-0/+557
| | | | This reverts commit 9f6a119c8aa276432ece4fe2118bd8a3c9b1067e.
* Move frameworks/base/tools/ to frameworks/tools/Mike Lockwood2013-08-281-557/+0
| | | | Change-Id: I3ffafdab27cc4aca256c3a5806b630795b75d5c8
* aapt now sorts the strings in the resource string pool.Dianne Hackborn2012-01-311-33/+38
| | | | | | | | | | | In our current environment with very many translations, this can save a lot of RAM -- for example over 200K in Gmail just by sorting the strings in the Gmail .apk (not the framework). Also add a new aapt command to print the contents of the resource table string pool. Change-Id: I1da037b3e2c377b890833ff57ab158965314ac48
* New aapt feature to do smarter filtering of configurations.Dianne Hackborn2011-10-161-15/+0
| | | | | | | | | | | | | | | | | | | This adds a --preferred-configurations flag that specifies the specific configurations you would like to have. It is smarter than "-c" because it will avoid stripping a configuration if that would result in there being no value for the resource. It is dumber than "-c" because it can't process as many kinds of resources. It is really only intended for bitmaps and use with density configs. This required re-arranging AaptAssets to group files together by config again, like they used to be. I think this hasn't broken anything. Hopefully. Change-Id: I4e9d12ff6e6dbd1abb8fd4cb1814c6674b19d0e5
* Don't lose product variant strings that also vary between locales.Eric Fischer2011-09-271-0/+5
| | | | | | | | | | | | | | Localized strings with product variants were not being included in the APK, apparently because the check to ensure that a different variation of the string had not already been included in the APK was matching the version of it from the default, untranslated configuration. Now check to make sure that the string not only exists but also exists in the correct configuration. Bug 5372711 Change-Id: I52975570b75e0f11827dc6bcf1cb4a987d0541aa
* Enforce public resource restriction on bag parents.Dianne Hackborn2011-06-091-2/+2
| | | | | | | | Need to put some more styles in the SDK to avoid breaking apps. Also, welcome Android 3.2. Change-Id: Ia31d07c9b1b91ad868d8630437fdc1b5ae24f37d
* Add knowledge of mipmap to aaptKenny Root2010-11-221-3/+3
| | | | | | | New mipmap drawable type that does not get filtered according to configuration. Useful for things that get built as part of the system. Change-Id: I556033d065e504079271dce79c23c90d3c387ce4
* Revert "Dedupe resource config pointers"Kenny Root2010-03-101-19/+0
| | | | This reverts commit 7b467d8b44c00d14590c021928b6a9ad5a36348e.
* Dedupe resource config pointersKenny Root2010-03-091-0/+19
| | | | | | | | | When there are two configs in a StringPool that would match a string ID only keep the more generic entry to save some space. This means that if you have both "es" and "es_US" translations that have the same translation, the string entry would be removed from the "es_US" config. Change-Id: I4d619942d35ddb477e2eabe4437b7f02697c24de
* Add ability for some manifest attributes to reference resources.Dianne Hackborn2010-03-091-0/+6
| | | | | | | | | | | This loosens our restriction on many manifest attributes requiring literal string values, to allow various ones to use values from resources. This is only allowed if the resource value does not change from configuration changes, and the restriction is still in place for attributes that are core to security (requesting permissions) or market operation (used libraries and features etc). Change-Id: I4da02f6a5196cb6a7dbcff9ac25403904c42c2c8
* Add --auto-add-overlay option to aapt.Xavier Ducrohet2010-02-041-1/+2
| | | | | | | This option allows resources only present in overlays to be added automatically instead of being declared through <add-resource> Change-Id: Iff782311056f6a045193e57d204f7d3413e11b26
* Optional use of UTF-8 strings in resource bundlesKenny Root2009-12-071-0/+1
| | | | | | | | | | | | | | | Allows the use of UTF-8 for packing resources instead of the default of UTF-16 for Java. When strings are extracted from the ResStringPool, they are converted to UTF-16 and the result is cached for subsequent calls. When using aapt to package, add in the "-8" switch to pack the resources using UTF-8. This will result in the value, key, and type strings as well as the compiled XML string values taking significantly less space in the final application package in most scenarios. Change-Id: I129483f8b3d3b1c5869dced05cb525e494a6c83a
* Allow overlays to add resources.Dianne Hackborn2009-08-131-1/+9
|
* Make aapt Error out when an overlay adds a string.Robert Greenwalt2009-06-091-1/+3
| | | | | | | | Final added check (I think) for 1585775 - not letting overlays add resources. modified: ResourceTable.cpp modified: ResourceTable.h
* Add per-named-item overlay ability in res xml.Robert Greenwalt2009-06-051-0/+1
| | | | | | | | | | | | | | Fixes 1899451. Also errors out if you add a bag via an overlay (which would renumber resources). Note that you can still add elements within the bag as they are not issued resource IDs. So for example you can now modify the framework themes.xml file without copying the entire file. All bag types are now modifable except non-named bag types (how would you address which element to replace?): array string_array integer_array
* Implement compatibility support for WRITE_SDCARD permission.Dianne Hackborn2009-05-151-0/+7
| | | | | | | | | | | Now old applications will automatically be granted it. Also renamed it from SDCARD_WRITE to WRITE_SDCARD to be consistent with our other permissions, and re-arranged how we do targetSdkVersion to actually be usuable for this kind of stuff. Note that right now this results in basically all apps being given the WRITE_SDCARD permission, because their targetSdkVersion is not set. I will be dealing with that in a future change.
* AI 144342: Fix bag (string-array,etc) behavior with overlays.Robert Greenwalt2009-04-021-1/+3
| | | | | | | | | | | | We used to replace elements in the default with elements from the overlay. This change causes us to empty the array first so if the overlay array is smaller we don't end up with elements from the default array showing through at the end of the array. Ex: [A,B,C] and overlay [D] should give [D] but used to give [D,B,C]. BUG=1754390 Automated import of CL 144342
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+534
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-534/+0
|
* auto import from //branches/cupcake/...@126645The Android Open Source Project2009-01-151-2/+5
|
* Code drop from //branches/cupcake/...@124589The Android Open Source Project2008-12-171-3/+14
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+520