59e04c6f92da584b322c87072f18e6cab4de4c60 |
|
05-Feb-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Switch to protobuf for intermediate format Without needing to conform to the runtime data format, it is much easier to add new features such as debugging symbols and carrying over product data to link time. This also simplifies the runtime format parser and serializer, which will change much less frequently than the protobuf intermediate format. Change-Id: I209787bbf087db0a58a534cb8511c51d21133e00
/frameworks/base/tools/aapt2/Main.cpp
|
1ab598f46c3ff520a67f9d80194847741f3467ab |
|
14-Aug-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Separate out the various steps An early refactor. Some ideas became clearer as development continued. Now the various phases are much clearer and more easily reusable. Also added a ton of tests! Change-Id: Ic8f0a70c8222370352e63533b329c40457c0903e
/frameworks/base/tools/aapt2/Main.cpp
|
6cc479b76e9e2e8858434302e1ef2d514ed1b0ec |
|
13-Jun-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Remove the need for specifying package name in compile phase The compile phase doesn't use the AndroidManifest, so we had to specify the package name on the command line. We can omit the package name, since we don't resolve external references in the compile phase. Packages that reference the current package will be encoded with no package name. When loaded by the link phase, the package name will be supplied and all the references with no package name will use that one. Change-Id: I9fe4902b747b06899b45c968f30ba1aa05c5cd69
/frameworks/base/tools/aapt2/Main.cpp
|
a1ad4a812a87642ad259ff4478159e8cc8194680 |
|
08-Jun-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Proguard rules generation added. Change-Id: Ifbe79516cd9a1ade471e211a259301c63b62ac67
/frameworks/base/tools/aapt2/Main.cpp
|
8c831ca87bb7c8699b2a5cb34b8d35deedf9ce4e |
|
21-May-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Add manifest merging Now that AAPT2 is library-aware, it needs to take care of all library related work, including merging manifests. The logic was taken from the current Java ManifestMerger. Change-Id: Id93f713f27ae8617922bf89e325e45be9f863c06
/frameworks/base/tools/aapt2/Main.cpp
|
75f3a55cc569a9b61f540a85d9828e91bdca5047 |
|
03-Jun-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Change xml file parsing to DOM based We modify the XML of layouts and AndroidManifest enough that it warrants we operate on the tree in memory. These files are never very large so this should be fine. Change-Id: I5d597abdb3fca2a203cf7c0b40fcd926aecb3137
/frameworks/base/tools/aapt2/Main.cpp
|
39c353a6caada777348c14f6dc9abee2d4d9a3be |
|
15-May-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Fix layout versioning Change-Id: I37190cf8a1f0a81c068aeb2b5326b3b3080f75a5
/frameworks/base/tools/aapt2/Main.cpp
|
d13fb249865703901b77f48c5fed1864f06e1c63 |
|
13-May-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Debug: Dump only targetted style Change-Id: Id7c5a4b5d0880520e1fea05e5a31d398946c5f05
/frameworks/base/tools/aapt2/Main.cpp
|
bdaa092a193d8ddccbd9ad8434be97878e6ded59 |
|
09-May-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: inferred style parent processing Change-Id: I8fbc4feef16b6039cf4c526fcfb767dc75a9c131
/frameworks/base/tools/aapt2/Main.cpp
|
330edcdf1316ed599fe0eb16a64330821fd92f18 |
|
05-May-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Support static lib referencing static lib When a static library A references static library B, and app C references both A and B, we get the following symbol merging, symbols from library B get imported twice. We must only check that symbol references to library B are valid when building library A. We should only merge all the symbols when building final app C. Change-Id: I23cba33b0901dcbb5328d9c9dfaa6a979c073c36
/frameworks/base/tools/aapt2/Main.cpp
|
6d8e4c48f94f36963a25e357ff960ee519cf0e1b |
|
01-May-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Add option to generate static library Difference between normal app and static library is that the R file uses non-final fields, and the extra chunks added by AAPT2 remain in the final APK. Change-Id: I61416387ca9bb3c21857ff7cfab5847ac3edf57a
/frameworks/base/tools/aapt2/Main.cpp
|
24aad163bc88cb10d2275385e9afc3de7f342d65 |
|
25-Apr-2015 |
Adam Lesinski <adamlesinski@google.com> |
Add namespace handling in attribute values Previously, you could only reference namespace prefixes in attribute names: <View xmlns:appcompat="http://schemas.android.com/apk/res/android.support.v7.appcompat" appcompat:name="hey" ... Now you can also reference them in resource names within an attribute value: ... android:text="@appcompat:string/confirm" ... Which will be treated as "@android.support.v7.appcompat:string/confirm". Change-Id: Ib076e867a990c80cf877a704eb77cd1ef0b23b52
/frameworks/base/tools/aapt2/Main.cpp
|
d5c4f8723c2b2c85b588fa07a5d4e7afb671d257 |
|
21-Apr-2015 |
Adam Lesinski <adamlesinski@google.com> |
Properly mangle file names Change-Id: I49c0f82e8c06f056198eb64b8369d83403b74321
/frameworks/base/tools/aapt2/Main.cpp
|
5886a92eb6dde5a406a62926f2914a908ca18d35 |
|
16-Apr-2015 |
Adam Lesinski <adamlesinski@google.com> |
Fix up the command line, add flags. Change-Id: I420bd0212fc7541668bd095b88295564d3d11f6c
/frameworks/base/tools/aapt2/Main.cpp
|
769de98f2dd41bfe39a1c9f76aefd1ad58942733 |
|
11-Apr-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Add library support Change-Id: I307f56d9631784ab29ee4156d94886f9b2f25b30
/frameworks/base/tools/aapt2/Main.cpp
|
c7e2432dec68431d4dd9a8466f47a5761197d00a |
|
11-Apr-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Create Makefile Makefile that uses zip for assembling the final APK. This is temporary and helps speed up the rest of development. Has to add a new 'manifest' phase that simply compiles the AndroidManifest.xml. Manifests are handled differently and must be validated. Change-Id: I0d8255b3ad0d0b0a322683077e3331ca93e37fa0
/frameworks/base/tools/aapt2/Main.cpp
|
4d3a987694f6f6b95d8a0f1542618223ce253e6d |
|
10-Apr-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Adding basic binding support This is incomplete. Still requires: - filling in layout information in the resulting .bind.xml - processing elements with <view class=""/> - processing imports Change-Id: Ie5d4c5e6435591bbed3248129a548736244894eb
/frameworks/base/tools/aapt2/Main.cpp
|
98aa3ad6e46e3b0270785c8b3f9798e37e8af140 |
|
06-Apr-2015 |
Adam Lesinski <adamlesinski@google.com> |
Add PNG and 9-patch support Change-Id: I9ecdfdf82b82d59084490da518e167e256afd5f2
/frameworks/base/tools/aapt2/Main.cpp
|
ca2fc353c2b07e24e297fdc8426c7abd601d908b |
|
03-Apr-2015 |
Adam Lesinski <adamlesinski@google.com> |
Fix windows build of AAPT2 Change-Id: Ib8e1a4322510b582e9600a08d3118842c9abc73c
/frameworks/base/tools/aapt2/Main.cpp
|
6f6ceb7e1456698b1f33e04536bfb3227f9fcfcb |
|
14-Nov-2014 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2 First checking of AAPT2. The individual phases of AAPT2 work, but there are some missing pieces. For early testing we are missing: - Need to properly mark file references and include them in package - Need to package into zip Final AAPT for apps we are missing: - Need to crush PNGs - Need to parse 9-patches - Need to validate all of AndroidManifest.xml - Need to write align method to align resource tables for splits. Final AAPT for apps + system we are missing: - Need to handle overlays - Need to store comments for R file - Need to handle --shared-lib (dynamic references too). New AAPT features coming: - Need to import compiled libraries - Name mangling - R file generation for library code Change-Id: I95f8a63581b81a1f424ae6fb2c373c883b72c18d
/frameworks/base/tools/aapt2/Main.cpp
|