And related:
- The aapt tool now sets a resource configurations sdk level to match any configs
that have been set (for example if you specify density your sdk level will be
at least 4).
- New option to modify the targetPackage attribute of instrumentation.
- Clean up of aapt options help.
- Fix of UI type values to leave 0 for "unspecified".
- Make the UI mode config APIs public.
Fix bug where applications defining a minSdkVersion were experiencing
transient errors from memory corruption in aapt.
Change-Id: I839d5eda7388baac6133e735fa59f9799ca2822d
android:minSdkVersion wasn't being correctly scanned because the
namespace was incorrect. This fixes that problem so packages aren't
generated as UTF-8 when minSdkVersion is less than 7.
Change-Id: I8f45d47ea886915da6a4770f6e111e6085d61bee
StringBlock instances containing UTF-8 strings use a cache to convert
into UTF-16, but using that cache and then using a JNI call to NewString
causes the UTF-8 string as well as two copies of the UTF-16 string to
be held in memory. Getting the UTF-8 string directly from the StringPool
eliminates one copy of the UTF-16 string being held in memory.
This is part 1. Part 2 will include ResXMLParser optimizations.
Change-Id: Ibd4509a485db746d59cd4b9501f544877139276c
The second argument to the getNavHiddenName can be NULL, so use a direct
reference to the class to get the enum values instead of the argument.
Change-Id: I0444572c23cb4de9e7da15a8310a49cf4619bb15
Was using argument that is set default to NULL as a shortcut to an
enum's value. Change it to reference to class directly to avoid a null
pointer dereference.
Change-Id: I16b8ee15af4f095f027113131d574b70768994b0
The device mode is now called ui mode. Furthermore is the order of
precedence for the resources now in such a way that the ui mode needs
to be specified after the orientation and before the density.
The ui mode can be set, like it is done for the locale, as follows:
IActivityManager am = ActivityManagerNative.getDefault();
Configuration config = am.getConfiguration();
config.uiMode = Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;
am.updateConfiguration(config);
To allow users to disable the car mode and set the night mode the IUiModeManager
interface is used.
The automatic night mode switching will be added in a separate change.
This option allows resources only present in overlays to be
added automatically instead of being declared through <add-resource>
Change-Id: Iff782311056f6a045193e57d204f7d3413e11b26
It allows you to force override the manifest
package listed in the AndroidManifest.xml when
creating an APK file.
Change-Id: I7eac7943c4e56610b65728ae54773a273634fd9d
Merge commit '3c05f1fbac2ce35483f61dbd5d5bfb6341da6d9c'
* commit '3c05f1fbac2ce35483f61dbd5d5bfb6341da6d9c':
Add instrumentation as a source tag for proguard keep options.
Merge commit '6f9e2c648c0588a2eedef2746c9750ed9c6945be' into eclair-plus-aosp
* commit '6f9e2c648c0588a2eedef2746c9750ed9c6945be':
Find layout classes in all "layout-*" dirs.
Merge commit 'b5fb50a133c6fc7fc93d6241912dd9ec24de6ace' into eclair-plus-aosp
* commit 'b5fb50a133c6fc7fc93d6241912dd9ec24de6ace':
Add instrumentation as a source tag for proguard keep options.
Merge commit 'b4f41119044e5ec7f7b76ed4ac02b5cfbaeb474d'
* commit 'b4f41119044e5ec7f7b76ed4ac02b5cfbaeb474d':
Only output proguard keep for nonempty attribute name in the AndroidManifest.xml.
Merge commit 'a1d08886ec8549878ad16c19754a3239706fb61b' into eclair-plus-aosp
* commit 'a1d08886ec8549878ad16c19754a3239706fb61b':
Only output proguard keep for nonempty attribute name in the AndroidManifest.xml.
Remove option to force UTF-8 encoding which could corrupt packages meant
for systems before API level 7. Added switch to allow encoding for UTF-16
which will allow API 7 and later to encode resources in UTF-16.
Change-Id: I70d0bddb0dfd12dcbd08c95f613dcfe896ae680b
Merge commit 'b5ef7ee1644b099498ddd29c1d051e7ee26ccfd3' into eclair-mr2-plus-aosp
* commit 'b5ef7ee1644b099498ddd29c1d051e7ee26ccfd3':
Default to UTF8 resources when packaging with aapt
This change makes it so with API level 7 and above all resources will be
packaged in UTF-8 format. Any minSdkVersion level that is named will also
have resources packaged in UTF-8, because it is assumed that previous
releases will only be rebuilt with their proper integer number and only
future releases will temporarily have names.
Change-Id: If5d1ee5e48fbaf31798816b068ac44b14a93121b
Merge commit 'e6c0e99334bc2f47e5d36db253ac8f166047c03b' into eclair-mr2-plus-aosp
* commit 'e6c0e99334bc2f47e5d36db253ac8f166047c03b':
Optional use of UTF-8 strings in resource bundles
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
The StringPool indicates the length of a string with a 16-bit
integer. If the length of the string is greater than 0x7FFF,
it splits it into two 16-bit integers with the first one
having the high bit set.
The length calculation has a small bug that masks off the
19 bits instead of the first 15 bits as intended.
This is needed to add library support to the SDK.
The goal is to have libraries and main project use the same
package for the R/Manifest classes to that they can share code
and resources.
BUG 2293994
Change-Id: Ie4cdb5a3bdabe1760a91316fd8969e4f53344bf9
Merge commit '617262d8f57362536ddc00a070c1c0994741de44' into eclair-plus-aosp
* commit '617262d8f57362536ddc00a070c1c0994741de44':
add "junk path" -k option to aapt (DO NOT MERGE)
Adds a "junk path" option to aapt so that you can do:
aapt add -k archive.zip path/to/some.file
and have the file stored in the zip under the name "some.file"
(without the path). Needed so that we can use 'aapt add' in place of
'zip -j' when building jar files, which will lead to smaller
incremental OTAs.
(This is a cherry-pick of a change already submitted to eclair-mr2;
the change was approved for mr1.)
Adds a "junk path" option to aapt so that you can do:
aapt add -k archive.zip path/to/some.file
and have the file stored in the zip under the name "some.file"
(without the path). Needed so that we can use 'aapt add' in place of
'zip -j' when building jar files, which will lead to smaller
incremental OTAs.
Merge commit 'f1871e273e1bf49d72a7f2ef51a4ef377d8f3112' into eclair-plus-aosp
* commit 'f1871e273e1bf49d72a7f2ef51a4ef377d8f3112':
Fix issue with printing gles version in aapt dump badging option
If the name attribute for uses-feature or uses-permission is empty
the error value is still empty indicating error and preventing the
else part from being checked as it should be.
Merge commit '7fc39b26fc4ec9df7d147ff34ebba90556cdb4da' into eclair-plus-aosp
* commit '7fc39b26fc4ec9df7d147ff34ebba90556cdb4da':
Implement issue #1780928: Need support hiding nav keys.