blob: 9899f803b339e9a5f9963471a32305f07e05fe20 [file] [log] [blame] [view]
Adam Lesinski0368ebf2016-07-26 12:55:51 -07001# Android Asset Packaging Tool 2.0 (AAPT2) release notes
2
Adam Lesinski06460ef2017-03-14 18:52:13 -07003## Version 2.11
4### `aapt2 link ...`
5- Adds the ability to specify assets directories with the -A parameter. Assets work just like
6 assets in the original AAPT. It is not recommended to package assets with aapt2, however,
7 since the resulting APK is post-processed by other tools anyways. Assets do not get processed
8 by AAPT2, just copied, so incremental building gets slower if they are included early on.
9
Adam Lesinskif34b6f42017-03-03 16:33:26 -080010## Version 2.10
11### `aapt2 link ...`
12- Add ability to specify package ID to compile with for regular apps (not shared or static libs).
13 This package ID is limited to the range 0x7f-0xff inclusive. Specified with the --package-id
14 flag.
15- Fixed issue with <plurals> resources being stripped for locales and other configuration.
16- Fixed issue with escaping strings in XML resources.
17
Adam Lesinskid48944a2017-02-21 14:22:30 -080018## Version 2.9
19### `aapt2 link ...`
20- Added sparse resource type encoding, which encodes resource entries that are sparse with
21 a binary search tree representation. Only available when minSdkVersion >= API O or resource
22 qualifier of resource types is >= v26 (or whatever API level O becomes). Enabled with
23 `--enable-sparse-encoding` flag.
24### `aapt2 optimize ...`
25- Adds an optimization pass that supports:
26 - stripping out any density assets that do not match the `--target-densities` list of
27 densities.
28 - resource deduping when the resources are dominated and identical (already happens during
29 `link` phase but this covers apps built with `aapt`).
30 - new sparse resource type encoding with the `--enable-sparse-encoding` flag if possible
31 (minSdkVersion >= O or resource qualifier >= v26).
32
Adam Lesinskiceb9b2f2017-02-16 12:05:42 -080033## Version 2.8
34### `aapt2 link ...`
35- Adds shared library support. Build a shared library with the `--shared-lib` flag.
36 Build a client of a shared library by simply including it via `-I`.
37
Adam Lesinski75421622017-01-06 15:20:04 -080038## Version 2.7
Adam Lesinskiceb9b2f2017-02-16 12:05:42 -080039### `aapt2 compile ...`
Adam Lesinski75421622017-01-06 15:20:04 -080040- Fixes bug where psuedolocalization auto-translated strings marked 'translateable="false"'.
41
Adam Lesinski86d67df2017-01-31 13:47:27 -080042## Version 2.6
43### `aapt2`
44- Support legacy `configVarying` resource type.
45- Support `<bag>` tag and treat as `<style>` regardless of type.
46- Add `<feature-group>` manifest tag verification.
47- Add `<meta-data>` tag support to `<instrumentation>`.
48
Yuichi Araki4d35cca2017-01-18 20:42:17 +090049## Version 2.5
50### `aapt2 link ...`
51- Transition XML versioning: Adds a new flag `--no-version-transitions` to disable automatic
52 versioning of Transition XML resources.
53
Adam Lesinski5119e512016-12-05 19:48:20 -080054## Version 2.4
55### `aapt2 link ...`
56- Supports `<meta-data>` tags in `<manifest>`.
57
Adam Lesinskic0c36632016-10-19 18:37:53 -070058## Version 2.3
59### `aapt2`
60- Support new `font` resource type.
61
Adam Lesinski5cb05302016-09-06 17:34:06 -070062## Version 2.2
63### `aapt2 compile ...`
64- Added support for inline complex XML resources. See
65 https://developer.android.com/guide/topics/resources/complex-xml-resources.html
Alexandria Cornwall77788eb2016-09-06 15:16:49 -070066### `aapt link ...`
67- Duplicate resource filtering: removes duplicate resources in dominated configurations
68 that are always identical when selected at runtime. This can be disabled with
69 `--no-resource-deduping`.
Adam Lesinski5cb05302016-09-06 17:34:06 -070070
Adam Lesinski36c73a52016-08-11 13:39:24 -070071## Version 2.1
72### `aapt2 link ...`
73- Configuration Split APK support: supports splitting resources that match a set of
74 configurations to a separate APK which can be loaded alongside the base APK on
75 API 21+ devices. This is done using the flag
76 `--split path/to/split.apk:<config1>[,<config2>,...]`.
77- SDK version resource filtering: Resources with an SDK version qualifier that is unreachable
78 at runtime due to the minimum SDK level declared by the AndroidManifest.xml are stripped.
79
Adam Lesinski0368ebf2016-07-26 12:55:51 -070080## Version 2.0
81### `aapt2 compile ...`
82- Pseudo-localization: generates pseudolocalized versions of default strings when the
83 `--pseudo-localize` option is specified.
84- Legacy mode: treats some class of errors as warnings in order to be more compatible
85 with AAPT when `--legacy` is specified.
86- Compile directory: treats the input file as a directory when `--dir` is
87 specified. This will emit a zip of compiled files, one for each file in the directory.
88 The directory must follow the Android resource directory structure
89 (res/values-[qualifiers]/file.ext).
90
91### `aapt2 link ...`
92- Automatic attribute versioning: adds version qualifiers to resources that use attributes
93 introduced in a later SDK level. This can be disabled with `--no-auto-version`.
94- Min SDK resource filtering: removes resources that can't possibly be selected at runtime due
95 to the application's minimum supported SDK level.