504 Commits

Author SHA1 Message Date
Adam Lesinski
f90f2f8dc3 Support multiple resource tables with same package
In order to support APK split features, the resource
table needs to support loading multiple resource
tables with the same package but potentially new set
of type IDs.

This adds some complexity as the type ID space changes
from dense and ordered to potentially sparse.

A ByteBucketArray is used to store the type IDs in
a memory efficient way that allows for fast retrieval.

In addition, the IDMAP format has changed. We no longer
need random access to the type data, since we store the
types differently. However, random access to entries of
a given type is still required.

Change-Id: If6f5be680b405b368941d9c1f2b5d2ddca964160
2014-06-18 19:20:08 +00:00
Jeff Brown
96c2e9f1cb Merge "Add support for @SystemApi annotation to aapt." 2014-06-09 21:05:17 +00:00
Bryan Mawhinney
aa00ae0a67 am 99017c01: Merge "Fix issue preventing aapt from stripping all unwanted densities" into lmp-preview-dev
* commit '99017c01bac525ca4b5b10768052ced398b4a493':
  Fix issue preventing aapt from stripping all unwanted densities
2014-06-09 15:55:43 +00:00
Jeff Brown
eb490d6194 Add support for @SystemApi annotation to aapt.
When aapt sees @SystemApi in the XML comment associated with a resource,
it will now remove this tag from the comment (since is it not meaningful as
a Javadoc tag) and instead add an @android.annotation.SystemApi annotation
to the declared type or member.  This enables easy downstream processing of
this annotation from generated code.

Change-Id: If984908477648c0c90be52fdc955fbb891d99b28
2014-06-06 19:43:42 -07:00
Bryan Mawhinney
b0db8de73e Fix issue preventing aapt from stripping all unwanted densities
Bug: 15463874
Change-Id: I9d1e289f1db2ed3c9a41d91caea6d07b69fcb84f
2014-06-06 13:27:11 +01:00
Adam Lesinski
8ee244355b resolved conflicts for merge of 522c5ce2 to master
Change-Id: I15c7f78e9c81947e33270251d7b50e592fb61583
2014-06-03 13:47:54 -07:00
Adam Lesinski
522c5ce280 am 7e547e0d: Merge "Add --pseudo-localize option to generate resources for pseudolocales."
* commit '7e547e0d72817032737909952f00acc2e777a35a':
  Add --pseudo-localize option to generate resources for pseudolocales.
2014-06-03 20:35:11 +00:00
Igor Viarheichyk
a191d0464f Add --pseudo-localize option to generate resources for pseudolocales.
Update help output with new option, remove mention of obsolete zz_ZZ
pseudolocale.

Change-Id: Ie2cfc8d11ef6a57e2b9a2333514a7340a3a8c075
2014-06-03 12:07:50 -07:00
Adam Lesinski
25e9d55e96 Don't dump data from a bad ResTable
AAPT dumps data from a bad ResTable, which
causes crashes. Prevent this by checking if
there were errors when creating the ResTable.

Bug:14902008
Change-Id: I5e04ebf967c60b78c511dd175785a13bca52f09a
2014-05-19 15:01:43 -07:00
Adam Lesinski
9e1e95f6e3 Merge "AAPT dump badging should allow refs in meta-data" 2014-05-15 21:17:33 +00:00
Adam Lesinski
b71adb6571 AAPT dump badging should allow refs in meta-data
The framework allows references in the <meta-data>
element in an AndroidManifest.xml, so badging should
do the same.

Bug:14088271
Change-Id: Ia8157655e21adaf11b7ace90a98a9cca3c8a476c
2014-05-15 14:14:41 -07:00
Adam Lesinski
4c1227e448 Merge "Fix crash in AAPT dump badging with bad StringPool" 2014-05-15 20:07:29 +00:00
Adam Lesinski
9cb2c68faf Fix crash in AAPT dump badging with bad StringPool
With a malformed StringPool, AAPT dump badging would
crash trying to retrieve the name of an XML tag.

Bug:14658555
Change-Id: I6aa6c53c60b20725a461da2d3a39685c174b4d35
2014-05-15 13:06:40 -07:00
Adam Lesinski
3921e87e6e Quick fix to ensure mipmap doesn't get stripped by AAPT
This is a quick fix. A refactoring is already underway to properly
solve this problem.

Bug:14857725
Change-Id: Ic0c475aa0b180803a687904ad9f71eb87e137a25
2014-05-13 10:57:53 -07:00
Adam Lesinski
f000977620 Merge "Add support for building split APKs" 2014-05-12 18:12:35 +00:00
Adam Lesinski
fab50875b9 Add support for building split APKs
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
2014-05-11 18:30:12 -07:00
Elliott Hughes
f3e7945c79 am 86768034: am b593ad60: am f1f28d1d: Merge "Skip resource files for locales en-XA and ar-XB during packaging if pseudolocalization was done automatically. This prevents attemts to add same resource twice."
* commit '867680342e12af59a26756f30cf817a131724943':
  Skip resource files for locales en-XA and ar-XB during packaging if pseudolocalization was done automatically. This prevents attemts to add same resource twice.
2014-05-06 02:34:40 +00:00
Elliott Hughes
867680342e am b593ad60: am f1f28d1d: Merge "Skip resource files for locales en-XA and ar-XB during packaging if pseudolocalization was done automatically. This prevents attemts to add same resource twice."
* commit 'b593ad60682a6f8c945c4c2ffc3d278df3f6e360':
  Skip resource files for locales en-XA and ar-XB during packaging if pseudolocalization was done automatically. This prevents attemts to add same resource twice.
2014-05-06 02:31:03 +00:00
Igor Viarheichyk
47843df11f Skip resource files for locales en-XA and ar-XB
during packaging if pseudolocalization was done automatically.
This prevents attemts to add same resource twice.

Change-Id: I51e17f961ac44047bf466ce4aa0d4d17f4ded0d6
2014-05-05 18:13:41 -07:00
Adam Lesinski
ce8083fc51 am 0472fb58: am 34dd2cdd: am f2d2c871: AAPT should not process XML that failed to compile
* commit '0472fb5882cfe55577a169a0f0ff4b8920a839b0':
  AAPT should not process XML that failed to compile
2014-05-05 21:19:04 +00:00
Adam Lesinski
0472fb5882 am 34dd2cdd: am f2d2c871: AAPT should not process XML that failed to compile
* commit '34dd2cdd4142ca8c7463b9f831429b4366fa222a':
  AAPT should not process XML that failed to compile
2014-05-05 21:13:28 +00:00
Adam Lesinski
34dd2cdd41 am f2d2c871: AAPT should not process XML that failed to compile
* commit 'f2d2c871813656012420faa89080d8e3cda1f308':
  AAPT should not process XML that failed to compile
2014-05-05 21:09:49 +00:00
Adam Lesinski
f2d2c87181 AAPT should not process XML that failed to compile
AAPT would attempt to warn if an unprefixed 'id'
attribute was used in an XML resource file even
if that XML file failed to compile. The result
was undefined behaviour, including crashing the
process.

Change-Id: I1a9464ec937760e8d38bbe1af8d1b5d6b2c105a2
2014-05-05 12:01:21 -07:00
Elliott Hughes
8c2fff2385 am fd955f14: am 6a6979ad: am 86315c45: Merge "Fixes issue causing pseudolocalization of strings in non-translatable resource files."
* commit 'fd955f14d6c87dffd1a20c36ad8001705495f831':
  Fixes issue causing pseudolocalization of strings in non-translatable resource files.
2014-04-30 23:35:39 +00:00
Elliott Hughes
fd955f14d6 am 6a6979ad: am 86315c45: Merge "Fixes issue causing pseudolocalization of strings in non-translatable resource files."
* commit '6a6979ad17dfb492fb85a979e8f8688e4ed973b2':
  Fixes issue causing pseudolocalization of strings in non-translatable resource files.
2014-04-30 21:35:45 +00:00
Igor Viarheichyk
84410b054c Fixes issue causing pseudolocalization of strings
in non-translatable resource files.

Change-Id: Ic8e5effc86226d5be00561ac71bab7695ef90376
2014-04-30 11:56:42 -07:00
Adam Lesinski
9cf4b4a932 Child nodes of <preference-headers> now output proguard keep options.
Bug:13797600
Change-Id: I55c71a2fcf7f9b4bdad684d5c235981c3a8bc1e9
2014-04-25 11:37:23 -07:00
Elliott Hughes
5a63d11902 am 36e64ab9: am cf4d85e4: am 90840ec2: Merge "Fix warning introduced by recent psuedolocalizer change."
* commit '36e64ab902a6932f2711d1dff6ee273610d68e7d':
  Fix warning introduced by recent psuedolocalizer change.
2014-04-18 23:30:27 +00:00
Elliott Hughes
36e64ab902 am cf4d85e4: am 90840ec2: Merge "Fix warning introduced by recent psuedolocalizer change."
* commit 'cf4d85e4786beb98743eac68b71d67e36f76c058':
  Fix warning introduced by recent psuedolocalizer change.
2014-04-18 23:26:16 +00:00
Elliott Hughes
0a1eed394f Fix warning introduced by recent psuedolocalizer change.
Change-Id: I577caf6ca4261b3d044b18bc8c5915012168031d
2014-04-18 16:15:27 -07:00
Elliott Hughes
4b0ee78bfa resolved conflicts for merge of 56ca8219 to master
Change-Id: I62f5804a5c4404eedce09188cda2e3b1bb990b36
2014-04-18 16:07:41 -07:00
Elliott Hughes
56ca821912 resolved conflicts for merge of ec42199a to klp-modular-dev-plus-aosp
Change-Id: I9ecd5d51be4d073ab93dbb0bd60097735e76bf94
2014-04-18 15:56:46 -07:00
Anton Krumin
a2ef5c0d4f Pseudolocalizer improvements.
Fixes accented pseudolocalization and adds RTL pseudolocale.

This change contains following modifications in the pseudolocalization logic:
1) zz_ZZ pseudolocale was removed;
2) en_XA pseudolocale was added for pseudo-accented;
3) ar_XB pseudolocale was added for pseudo-rtl;
4) Pseudo RTL localization functionality was implemented;
5) Text expansion functionality was implemented;
6) Text bracketing was implemented;
7) Couple of issues of previous implementation were fixed.

Change-Id: I9f7f27bed717e39e82717d15c398decffc8bec3c
Signed-off-by: Anton Krumin <antkrumin@google.com>
2014-04-09 16:59:48 -07:00
John Spurlock
0a0454fdcc am 642421aa: am 5c31e487: Merge "Introduce new UI_MODE_TYPE_WATCH and qualifier." into klp-modular-dev
* commit '642421aa7f284817cc1a972a7f9c7a64696a0116':
  Introduce new UI_MODE_TYPE_WATCH and qualifier.
2014-04-04 19:34:11 +00:00
John Spurlock
642421aa7f am 5c31e487: Merge "Introduce new UI_MODE_TYPE_WATCH and qualifier." into klp-modular-dev
* commit '5c31e487c4577e1c47ee7c949325d6a13f0d462e':
  Introduce new UI_MODE_TYPE_WATCH and qualifier.
2014-04-04 19:28:09 +00:00
John Spurlock
6c191299a7 Introduce new UI_MODE_TYPE_WATCH and qualifier.
Default ui mode to watch if we have FEATURE_WATCH.

Bug:13395758
Change-Id: Ie5ff95de60e69e91ad3612c7d2f1fca7f49061bd
2014-04-04 15:21:53 -04:00
Adam Lesinski
587e420ea9 am 004ceaaa: am 55a65509: Merge "Reduce warning verbosity in aapt"
* commit '004ceaaa4d3ddfc66ba3f3635e987c2ddc7f2d09':
  Reduce warning verbosity in aapt
2014-03-27 21:05:06 +00:00
Adam Lesinski
de898ff429 Shared library resource support
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
2014-03-25 12:09:56 -07:00
Adam Lesinski
e119b22146 Reduce warning verbosity in aapt
- Attributed source of problems to the correct file.
- Only verify string localizations against valid
  locales.
Bug:13140015
Change-Id: I9dabc5efa0510649caee8af0c8ebb803d6f48269
2014-03-24 10:50:34 -07:00
Adam Lesinski
a01a9374fd Reduce warning verbosity in aapt
- Attributed source of problems to the correct file.
- Only verify string localizations against valid
  locales.
Bug:13140015
Change-Id: I9dabc5efa0510649caee8af0c8ebb803d6f48269
2014-03-20 18:14:48 -07:00
Narayan Kamath
b5c4e7fd38 resolved conflicts for merge of 92860a74 to master
Change-Id: I3036ef9f1251c756092dc5ee2c4fed8146855e1e
2014-03-10 10:57:05 +00:00
Narayan Kamath
8272c84cb5 am bbf82665: am 6e2fb587: Merge "LP64: Make 9 patches architecture agnostic."
* commit 'bbf826659e8e5d0be683b2459207c495303d53b6':
  LP64: Make 9 patches architecture agnostic.
2014-03-10 10:47:45 +00:00
Narayan Kamath
6381dd4ff2 LP64: Make 9 patches architecture agnostic.
The Res_png_9patch struct had several pointer members
whose size differed between 32 and 64 bit platforms.

These members have been replaced by uint32_t offsets
to serialized data. The serialized form for 9patches
places a Res_png_9patch object at the beginning of
serialized data, followed by int32_t arrays of xDivs,
yDivs and colors.

Note that these offsets are not strictly required,
since they can be computed from the values of numXDivs,
numYDivs & numColors, however they are called in tight
loops so having them computed once is a beneficial.

This change also removed the unused patch_equals function
from aapt's Image.cpp.

Change-Id: I3b9ac8ae5c05510d41377cae4dff1c69b40c2531
2014-03-10 10:00:02 +00:00
Tim Kilbourn
9eaaaf0fe3 resolved conflicts for merge of a81ee86b to master
Change-Id: I7be3a64261d2405eda55b43c02b47657f393c095
2014-03-07 23:04:03 -08:00
Ying Wang
0323098269 am 71364f8c: am f5f4d930: am 74bebf6f: Exclude the host aapt and aidl from PDK build.
* commit '71364f8c1e1bcc84375830dd5904dfe7cdfb5ed6':
  Exclude the host aapt and aidl from PDK build.
2014-03-08 05:46:48 +00:00
Tim Kilbourn
032305fbcf am b559b371: Merge "Dump leanback info in aapt dump badging." into klp-modular-dev
* commit 'b559b37150d24411f0b5ef102ced8d5acf858a0e':
  Dump leanback info in aapt dump badging.
2014-03-08 01:55:00 +00:00
Ying Wang
f5f4d93060 am 74bebf6f: Exclude the host aapt and aidl from PDK build.
* commit '74bebf6faed2d34814ffc3d46664330ea568f7b2':
  Exclude the host aapt and aidl from PDK build.
2014-03-08 01:54:52 +00:00
Tim Kilbourn
b559b37150 Merge "Dump leanback info in aapt dump badging." into klp-modular-dev 2014-03-08 00:55:48 +00:00
Tim Kilbourn
0a5a5d6996 Dump leanback info in aapt dump badging.
Leanback launcher activities are reported, including the banner.

Change-Id: Ifa496736ad3ba4239ec95e166768af895ff4dc53
2014-03-07 16:47:42 -08:00
Ying Wang
74bebf6fae Exclude the host aapt and aidl from PDK build.
Bug: 13028632
Change-Id: I0f774b19be77462d0fa271088a4a5a152729d13c
2014-03-07 15:56:14 -08:00