History log of /frameworks/base/tools/aapt2/Main.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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