c9a2926e661df75ba2517da166bf3b561fd678ec |
02-Mar-2018 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Allow to inline XML into custom attribute Previously, doing something like <parent xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:aapt="http://schemas.android.com/aapt"> <aapt:attr name="app:foo"> <child /> </aapt:attr> </parent> would result in something like: <parent xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:aapt="http://schemas.android.com/aapt" foo="@generated_name" /> while it should result in: <parent xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:aapt="http://schemas.android.com/aapt" app:foo="@generated_name" /> Bug: 36809755 Test: make aapt2_tests Change-Id: I72ea4b402e196ca05b53b788e4768a265190a0dc
nlineXmlFormatParser.cpp
nlineXmlFormatParser_test.cpp
|
93190b79d11d874199cfe7258526a48cfc8399fc |
03-Nov-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Better debugging output Test: make aapt2_tests Change-Id: I7778b773201381538dc1f2e376abee4eb33e44c0
nlineXmlFormatParser.cpp
|
7b6b02bd13aea90b938c3ab3b1eaa3fb5043f931 |
31-Oct-2017 |
Michael Wachenschwanz <mwachens@google.com> |
AAPT2: Allow for nested inline xmls Add recursion to InlineXmlFormatParser::Consume for handling nested aapt:attr Change-Id: Iabf98945b4f5ef22a3b8fdc4ca2bac092a377629 Fixes: 64385167 Test: make aapt2_tests
nlineXmlFormatParser.cpp
nlineXmlFormatParser_test.cpp
|
461c80573b0ef0447f8757f1c32ae9e9be85c9b8 |
27-Oct-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Fix issue where generated XML would be tagged with UNKNOWN type CompiledFiles with UNKNOWN type are copied through, leading to protobuf outputs in the final APK. Test: make aapt2_tests Change-Id: Ia0c464caa3951ff27436d1d50c2a8555bc89302b
nlineXmlFormatParser.cpp
nlineXmlFormatParser_test.cpp
|
4670805ea441edb8b280f9312571e7799f1284cf |
29-Sep-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Move format related files under same directory Test: make aapt2_tests Change-Id: Id72cdfc12ba3add294048e60c55f2461344464bf
ngChunkFilter.cpp
|
08e76846b680316b1cf09dd156726e7b5d27e7ed |
03-Oct-2017 |
Yunlian Jiang <yunlian@google.com> |
Merge "Replace strcpy with memcpy." am: bb115bac41 am: 16951dcb54 am: 23f6dca5fd am: 61879522fe Change-Id: Iaf1e0edbb3902714621492d6dd53458c1ad50b01
|
61879522fe1ee10e4d09ffb530dff17d5b4fef65 |
03-Oct-2017 |
Yunlian Jiang <yunlian@google.com> |
Merge "Replace strcpy with memcpy." am: bb115bac41 am: 16951dcb54 am: 23f6dca5fd Change-Id: I446973c3b96f253e3c3fc2dfda7647cd3e625916
|
16951dcb54463244216147baaa0ebef6a01e6c5f |
03-Oct-2017 |
Yunlian Jiang <yunlian@google.com> |
Merge "Replace strcpy with memcpy." am: bb115bac41 Change-Id: I28c118a609d999fe1ef6bd126557e63076f452c6
|
d3ffa844f5a07756009f019e13806e253d1bb119 |
28-Sep-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Cleanup Visitors for XML and Values Test: make aapt2_tests Change-Id: Ib61f64c155a380115610edeaf2d65e60258a2426
seudolocaleGenerator.cpp
|
d32ae10f4cdcff2351c9f34ce477089111093d32 |
13-Sep-2017 |
Yunlian Jiang <yunlian@google.com> |
Replace strcpy with memcpy. This fixes the warning Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. As a side effect, it sliences the warning frameworks/base/tools/aapt/Images.cpp:1270:50: warning: Potential leak of memory pointed to by field 'data' [clang-analyzer-unix.Malloc] frameworks/base/tools/aapt2/compile/Png.cpp:562:42: warning: Potential leak of memory pointed to by field 'data' [clang-analyzer-unix.Malloc]. Bug: None Test: The warning is gone. Change-Id: I25f68ff85bea7069c21549c7deb7920d1877069e
ng.cpp
|
5c33fb5408d6c02dc2c73f53d89d1494fe04f208 |
09-Aug-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Change XmlDom to exclude Namespace as a node In preparation for exporting an XML proto format for UAM to consume, this change brings the XML DOM API more in line with other APIs that do not make the Namespace a separate node. Treating Namespace declarations as just properties of an Element node makes the implementation of algorithms much simpler, as the constraints that Namespace nodes have only one child are now built in and traversing to find Element nodes is much simpler. Also made a bunch of quality of life improvements, like formatting and comment style. Test: make aapt2_tests Bug: 65645766 Change-Id: Ib97ff1c4252b7907e2cc1f13a448dc4ca3b809a4 Merged-In: Ib97ff1c4252b7907e2cc1f13a448dc4ca3b809a4
nlineXmlFormatParser.cpp
nlineXmlFormatParser.h
nlineXmlFormatParser_test.cpp
|
1ef0fa9d7242b1926543bc49e35905d1be02a781 |
16-Aug-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Fixup namespace implementation A few pieces were missing in the namespace mangling implementation. Namespace aware libraries now work, along with R class generation. Bug: 64706588 Test: make AaptTestNamespace_App Change-Id: I12f78d6aa909e782c0faf7ceaa36058f2e6c864a
nlineXmlFormatParser.cpp
|
6b372991296c9f2bd6f8f8847dcd23d50970d06d |
09-Aug-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Change XmlDom to exclude Namespace as a node In preparation for exporting an XML proto format for UAM to consume, this change brings the XML DOM API more in line with other APIs that do not make the Namespace a separate node. Treating Namespace declarations as just properties of an Element node makes the implementation of algorithms much simpler, as the constraints that Namespace nodes have only one child are now built in and traversing to find Element nodes is much simpler. Also made a bunch of quality of life improvements, like formatting and comment style. Test: make aapt2_tests Change-Id: Ib97ff1c4252b7907e2cc1f13a448dc4ca3b809a4
nlineXmlFormatParser.cpp
nlineXmlFormatParser.h
nlineXmlFormatParser_test.cpp
|
5b6ee115489ce93dafce57d7f5ac33564cd6ef52 |
29-Jul-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Ensure style strings are always first in StringPool Move the styled strings to a separate section of the StringPool so that sorting can never mess up the order of Styles. Bug: 63570514 Test: make aapt2_tests Change-Id: Id2ce1355b92be1bb31ce0daa7e54ae9b5b6c2ffe
seudolocaleGenerator.cpp
seudolocaleGenerator_test.cpp
|
060b53d0287f9e685fb5b49b52a864ef85315a22 |
29-Jul-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Ensure style strings are always first in StringPool Move the styled strings to a separate section of the StringPool so that sorting can never mess up the order of Styles. Bug: 63570514 Test: make aapt2_tests Change-Id: Id2ce1355b92be1bb31ce0daa7e54ae9b5b6c2ffe
seudolocaleGenerator.cpp
seudolocaleGenerator_test.cpp
|
4fb6516a55604bfbae2e8b1411e1bdd27df1866f |
07-Jul-2017 |
Igor Viarheichyk <viarheichyk@google.com> |
Improved word break for BiDi pseudolocalizer. Characted sequences \n and \t are now treated as word separators by BiDi pseudolocalizer. This solves issues when text rendering engine breaks a line in the middle of a text chunk marked with RLM+RLO and PDF+RLM sequences. Bug:34064580 Change-Id: I52e6018785fae25479fa167440f24c534b0e3253 Fixes:34064580 Test: make aapt2_tests Test: Run aapt2_tests binary
seudolocalizer.cpp
seudolocalizer_test.cpp
|
a45893a5c51cc26f1fd63ec1aa4c39f55911c85b |
31-May-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Clean up tests a bit Since the latest gtest has fixed support for explicit bool operators, remvoe AAPT_ASSERT_* and AAPT_EXPECT_*. Also switch to use NotNull() matchers, which are more legible. Test: make aapt2_tests Change-Id: Idce199ca9d567d70f7aae275fee15e04bb914c9e
dAssigner_test.cpp
|
60d9c2fd55ef8e64ab3f39980b78389cd1317ee5 |
18-May-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: improve some error messages Test: manual Change-Id: I11c96f8c825ffd43b7f68cb24f2c0746d75845f5
ngChunkFilter.cpp
ngCrunch.cpp
|
cc73e990e5381adfa605ccacad431231d9269893 |
13-May-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Ignore trailing data after IEND chunk in PNG libpng seems to do the same, so our chunk filter should not care what comes after. Bug: 38169876 Test: manual Change-Id: I020ddfe29ac3eb4d5ef9ace5611c6f6497de443d
ng.h
ngChunkFilter.cpp
ngCrunch.cpp
|
d0f492db038c6210c1138865d816bfb134376538 |
04-Apr-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Share split functionality between link and optimize Generating splits should be possible to do from the optimize command. This means that a lot of infrastructure around split APKs can be shared by both the optimize and link phase. Bug: 35925830 Change-Id: Ia88b9e4bff300a56353b2f7a4a2547c8eb43a299 Test: manual
ompile.cpp
|
8049f3da712ea9c3154b57ce2276c97e749d1f2c |
01-Apr-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Fix pseudolocalization (again) Pseudolocalization didn't properly handle spans in strings like "<small><small>Hello</small></small>". The spans would be identical and when doing range checks only one of them would be updated. Switched to a more robust way of extracting the relevant chunks of a styled string. This uses a stack, which is more in line with the real representation in XML. Bug: 34088357 Test: make aapt2_tests Change-Id: Ia4e4501713e688c96a89e26e4e2b1384f4cd3889
seudolocaleGenerator.cpp
seudolocaleGenerator_test.cpp
|
06460ef0d7072114ea3280e1650f77f55e7223f4 |
15-Mar-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Fix up file IO This also enables an AAPT behavior that CTS tests have come to depend on. Small files that compress negatively (get larger) are stored uncompressed. Some CTS tests assume this and try to open these files by mmapping them, which is only possible if they are uncompressed. Bug: 35461578 Test: make aapt2_tests Change-Id: Id622a6150fe72477ad65d67d1bad897a8ee2ffb9
ompile.cpp
ng.cpp
ng.h
ngChunkFilter.cpp
ngCrunch.cpp
|
ceb9b2f80f853059233cdd29057f39a5960a74ae |
16-Feb-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Shared library support Test: make aapt2_tests Change-Id: I98dddf1367e6c0ac425bb20be46e6ff05f4f2f45
dAssigner.h
|
7542162cb1b1fd2ce8a26dd7f3fedc8de8160d38 |
07-Jan-2017 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Fix pseudolocalization to respect <xliff:g> The XLIFF 'g' tag specifies content that should NOT be translated. AAPT2's pseudolocalization process should respect it. Bug:34064599 Test: make libandroidfw_tests Change-Id: Ice437d7f0ff246730ee04896fd035e2d846148fb
seudolocaleGenerator.cpp
seudolocaleGenerator_test.cpp
|
d5083f6f6b9bc76bbe64052bcec639eee752a321 |
17-Jan-2017 |
Adam Lesinski <adamlesinski@google.com> |
Move StringPiece to libandroidfw libandroidfw needs to make use of StringPiece, so move it to libandroidfw and update all code referencing StringPiece in aapt2. Test: make libandroidfw_tests libaapt2_tests Change-Id: I68d7f0fc7c651b048d9d1f5e7971f10ef5349fa1
ompile.cpp
dAssigner.h
inePatch.cpp
ng.cpp
ng.h
ngChunkFilter.cpp
seudolocaleGenerator.cpp
seudolocalizer.cpp
seudolocalizer.h
seudolocalizer_test.cpp
|
383db5ebcc3a4a615faf249bf4f126f42e80b82e |
22-Jun-2016 |
Tamas Berghammer <tberghammer@google.com> |
Update package names to work with the proto3 compiler Bug: b/28974522 Change-Id: I5f3adf4946ee4ba1e09e4f40afe83c151405972a
ompile.cpp
ng.cpp
ng.h
|
ce5e56e243d262a9b65459c3bd0bb9eaadd40628 |
22-Oct-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Rename to match new style Use Google3 naming style to match new projects' and open source google projects' style. Preferred to do this in a massive CL so as to avoid style inconsistencies that plague legacy code bases. This is a relatively NEW code base, may as well keep it up to date. Test: name/style refactor - existing tests pass Change-Id: Ie80ecb78d46ec53efdfca2336bb57d96cbb7fb87
ompile.cpp
dAssigner.cpp
dAssigner.h
dAssigner_test.cpp
mage.h
nlineXmlFormatParser.cpp
nlineXmlFormatParser.h
nlineXmlFormatParser_test.cpp
inePatch.cpp
inePatch_test.cpp
ng.cpp
ng.h
ngChunkFilter.cpp
ngCrunch.cpp
seudolocaleGenerator.cpp
seudolocaleGenerator.h
seudolocaleGenerator_test.cpp
seudolocalizer.cpp
seudolocalizer.h
seudolocalizer_test.cpp
mlIdCollector.cpp
mlIdCollector.h
mlIdCollector_test.cpp
|
dfaecafbe9fb7c5800191edfe3aa5d5938705204 |
21-Oct-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Fail compile on bad output file/dir Test: manual Change-Id: I2578e32c52430a62df942822ddf6bd3f06357bce
ompile.cpp
|
cacb28f2d60858106e2819cc7d95a65e8bda890b |
19-Oct-2016 |
Adam Lesinski <adamlesinski@google.com> |
Use Google3 style guide with .clang-format Test: style change only, builds ok Change-Id: I885180e24cb2e7b58cfb4967c3bcb40058ce4078
ompile.cpp
dAssigner.cpp
dAssigner.h
dAssigner_test.cpp
mage.h
nlineXmlFormatParser.cpp
nlineXmlFormatParser.h
nlineXmlFormatParser_test.cpp
inePatch.cpp
inePatch_test.cpp
ng.cpp
ng.h
ngChunkFilter.cpp
ngCrunch.cpp
seudolocaleGenerator.cpp
seudolocaleGenerator.h
seudolocaleGenerator_test.cpp
seudolocalizer.cpp
seudolocalizer.h
seudolocalizer_test.cpp
mlIdCollector.cpp
mlIdCollector.h
mlIdCollector_test.cpp
|
edba94106473b8d7b3aa8a4805d2e45497084755 |
05-Oct-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Ensure PNG endianness in 9-patch serialization 9-patch serialization requires PNG endianness Bug:31942900 Test: manual + added serialization test to libaapt2_tests Change-Id: Iea521718f88e80d3fa7a8723a47584973738748a
inePatch.cpp
inePatch_test.cpp
|
21efb6827cede06c2ab708de6cdb64d052dddcce |
15-Sep-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Refactor PngCrunching PngCrunching now has a slightly better heuristic of choosing to encode an image as a palette or RGB. For small images, RGB compresses much better than a palette. The original PNG is used as-is (minus some optional chunks being stripped) if the resulting crunched PNG is larger than the original. 9-patch handling is abstracted away from PNGs, paving the way for other 9-patches, like WebP. TODO: handle PNGs with 9-patch chunks already present, which should just be passed through. This will allow for 3rd party tools to generate 9-patches. TODO: implement cheap transparency: when one color is used to represent transparent, and all other colors are opaque. Bug:30053276 Change-Id: I5167f53b91d1efa462d9f03d6b9108d9b541c0c1
ompile.cpp
mage.h
inePatch.cpp
inePatch_test.cpp
ng.h
ngChunkFilter.cpp
ngCrunch.cpp
|
5eeaaddffd23d8d85aeb321e3ceea626e42cf9de |
25-Aug-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Add Inline Complex XML support See: https://developer.android.com/guide/topics/resources/complex-xml-resources.html Change-Id: I8274c85e25cabf90423141c228697e873167d136
ompile.cpp
nlineXmlFormatParser.cpp
nlineXmlFormatParser.h
nlineXmlFormatParser_test.cpp
|
e42bc0587f82b42c466c1fc6baefc7113021fc4f |
15-Aug-2016 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "Fix clang-tidy warnings in aapt and aapt2."
|
1d740812e657e92e5370b4162991a7e43ec43221 |
15-Aug-2016 |
TreeHugger Robot <treehugger-gerrit@google.com> |
Merge "AAPT2: Expose split support to command line"
|
470f8fcb5c0c59b28b5f73ee011a797b05085da7 |
15-Aug-2016 |
Chih-Hung Hsieh <chh@google.com> |
Fix clang-tidy warnings in aapt and aapt2. * Add explicit keyword to conversion constructors. * Add NOLINT(implicit) comments for implicit conversion constructors. Bug: 28341362 * Use const reference type for read-only parameters. Bug: 30407689 * Add NOLINT to suppress wrong clang-tidy warnings on macros. Test: build with WITH_TIDY=1 Change-Id: Ibfafb23d9be463b4072745a51a6d9f1812dcac45
ng.h
seudolocalizer.h
|
36c73a595910e96f3552f938eeb81d46356067a1 |
11-Aug-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Expose split support to command line Bug:30445078 Change-Id: If4b8530dba71b9059b8e62c04757da99c1119d22
mlIdCollector.cpp
|
9b8528fee4eed35b8e887ded0851d08eb2b10db6 |
10-Aug-2016 |
Chih-Hung Hsieh <chh@google.com> |
Fix clang-tidy warnings in aapt and aapt2. * Add explicit keyword to conversion constructors. * Add NOLINT(implicit) comments for implicit conversion constructors. Bug: 28341362 * Use const reference type for read-only parameters. Bug: 30407689 * Use const reference type to avoid unnecessary copy. Bug: 30413862 Test: build with WITH_TIDY=1 Change-Id: Id6d21961f313a1ad92b15a37fdaa5be9e8ab48e1
dAssigner.cpp
|
58a20a6482a56a262fd83a617482641e3a981db1 |
26-Jul-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Change accepted notation for resource names in tests Previously the way to name resources in tests was to use reference notation (@[package:][type/]name). Now we use name notation (no @). Change-Id: I68f0a36562d89cc78c582d128f370d9556c58707
dAssigner_test.cpp
seudolocaleGenerator_test.cpp
mlIdCollector_test.cpp
|
bf0bd0f9ac1ffa0231cff0f6591dede48b3c6d52 |
02-Jun-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Add support to specify stable IDs The --stable-ids flag allows the user to specify a file containing a list of resource name and resource ID pairs in the form of: package:type/name = 0xPPTTEEEE This assigns the given resource the specified ID. It helps ensure that when adding or removing resources, IDs are assigned in a stable fashion. If a package, type, or name is not found, no error or warning is raised. Change-Id: Ibc2f4e05cc924be255fedd862d835cb5b18d7584
dAssigner.cpp
dAssigner.h
dAssigner_test.cpp
|
d0f116b619feede0cfdb647157ce5ab4d50a1c46 |
09-Jul-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Remove usage of u16string For legacy reasons, we kept around the use of UTF-16 internally in AAPT2. We don't need this and this CL removes all instances of std::u16string and StringPiece16. The only places still needed are when interacting with the ResTable APIs that only operate in UTF16. Change-Id: I492475b84bb9014fa13bf992cff447ee7a5fe588
ompile.cpp
dAssigner.cpp
dAssigner_test.cpp
ng.cpp
seudolocaleGenerator.cpp
seudolocaleGenerator_test.cpp
seudolocalizer.cpp
seudolocalizer.h
seudolocalizer_test.cpp
mlIdCollector_test.cpp
|
fb6312fe93a8544e6a95d1c619c8cea3940cbe1a |
28-Jun-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Add version collapsing When an app specifies (or imports) resources with various configurations for different SDK versions, specifying a minSdk will make many of those resources unreachable. Version collapsing will prune out the resources specified for SDK versions less than the minSdk. If, however, there is no exact matching resource for the minSdk version, the next smallest SDK version is kept. Change-Id: Ic7bcab6c59d65c97c67c8767358abb57cdec60a4
ompile.cpp
|
b2106687e1fa781d6470ae6374122cf34468846f |
23-Jun-2016 |
Adam Lesinski <adamlesinski@google.com> |
Fix pseudolocalizer at end of string The accent pseudolocalizer would incorrectly process the byte after the end of the string, which would end up inserting null characters into the resulting output. Change-Id: I5cdabd6b0272d94073f06e180b8cbe7abafa3888
seudolocalizer.cpp
seudolocalizer_test.cpp
|
33e74b7ece4972b6e37ab92e061b99acabf87bc3 |
11-May-2016 |
Adam Lesinski <adamlesinski@google.com> |
Merge "AAPT2: Add diff command" into nyc-mr1-dev am: 1a1461058e am: 894f96a117 * commit '894f96a117a9ba942b9486317f6852c7472443a6': AAPT2: Add diff command Change-Id: Ic53915ac3c04d151f55c159a170d46da7a1f6c17
|
d53e3bed1ca4a14b2a86d53eaef6969bd043176e |
03-May-2016 |
Chih-Hung Hsieh <chh@google.com> |
Fix google-explicit-constructor warnings. Bug: 28341362 Change-Id: I080090d50f1a368a4e7c1a0732297bb6a295e34f
mlIdCollector.cpp
|
458b877488c12ea4336d8fc00a95d9c0298bd6d0 |
25-Apr-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Add diff command Adds the diff command and various small fixes to issues discovered when diffing old AAPT built APKs with new AAPT2 built APKS. Bug:22775504 Change-Id: I682a7fe1cf4b3efa7cbd5d18b333cf2d1046fe1b
seudolocaleGenerator.cpp
|
803c7c807969bea1f1c50f348832f5b60ad05d8e |
07-Apr-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Enable windows build and make sure it builds Mingw32 4.8 is kind of picky with macros and some complicated template stuff. Luckily there was another way to represent the SFINAE code that works on all platforms. Yay! Change-Id: Idc2e38f47bfdc57b394550bfa0f53cc0b825df25
seudolocaleGenerator.cpp
|
64587af8179affd38ee26543b748f2d63b7f67bb |
19-Feb-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Support building, linking, and merging static libraries Android static libraries are like APKs but they contain much more debugging and source information. We need to treat them differently in 3 ways: 1) When building a static library, we skip things like ID assignment and product/config stripping. Source information is emitted as well. 2) When building a static library and linking against another static library, we don't want to merge, we want to simply reference. 3) When building an app that uses static libraries, we want to merge the static library under the same package with or without mangling. Bug:25958912 Change-Id: I425e032857936a3e83173c1edc2a6cdc6020b842
ompile.cpp
|
144c5eabe52f61e9afc08c461142878d10f5e443 |
01-Mar-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Fix segfault when showing error in 9-patch Change-Id: I8f457212efc27480758a7157455d98b5e316f772
ng.cpp
|
355f285ffd000f6cfe76680eb22d010546d124bb |
14-Feb-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Implement density stripping and initial Split support When a preferred density is supplied, the closest matching densities will be selected, the rest stripped from the APK. Split support will be enabled in a later CL. Command line support is still needed, but the foundation is ready. Bug:25958912 Change-Id: I56d599806b4ec4ffa24e17aad48d47130ca05c08
ompile.cpp
|
e4bb9eb5af5b0899dc0921d5580220b20e15bd5a |
13-Feb-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Introduce notion of 'product' to ResourceTable This allows us to preserve the various product definitions during the compile phase, and allows us to select the product in the link phase. This allows compiled files to remain product-independent, so that they do not need to be recompiled when switching targets. Bug:25958912 Change-Id: Iaa7eed25c834b67a39cdc9be43613e8b5ab6cdd7
ompile.cpp
seudolocaleGenerator.cpp
|
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
ompile.cpp
dAssigner.cpp
|
52364f7ae31716d7827ea8f8566f4a28bd30a921 |
11-Jan-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Variety of small fixes to get the build working - Add option to rename package in AndroidManifest.xml - Support default versionName and versionCode - Accept True and False as valid booleans Change-Id: I400e350b9dcd0fd1c197d1929144299c7823617d
ompile.cpp
|
979ccb2e6f3f1f7f00a448eb440a85daf033dc9e |
11-Jan-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Warn when positional arguments exist and --legacy is on This is normally an error, but old AAPT didn't check for it correctly, so many projects violate this. With --legacy, this becomes a warning. Change-Id: I23647e029930e11b719591cd38609e1b43247e20
ompile.cpp
|
7751afc796842bbb24bfbb19bd0fee4a7b7c8a4e |
07-Jan-2016 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Fix product support Previously the default product wasn't tried if 'default' wasn't specified on the command line. Also adds support for multiple products. Change-Id: I1e4872b34bb8d609b6444841a4e7e4dbb3bbb76b
ompile.cpp
|
198ce1a5e6fbe2cb84263e427032e9715e27379f |
07-Jan-2016 |
Adam Lesinski <adamlesinski@google.com> |
Merge "AAPT2: Port AAPT pseudolocalization to AAPT2"
|
393b5f0d6130d3848dd82075986a5cf40c09ce44 |
17-Dec-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Port AAPT pseudolocalization to AAPT2 Pseudolocalization happens at the compile phase. Pseudolocalized values are weak, such that manually specified values will take precedence. Change-Id: I5e064ce0d270c9f4f9022f75aecedab9d45bc980
ompile.cpp
seudolocaleGenerator.cpp
seudolocaleGenerator.h
seudolocaleGenerator_test.cpp
seudolocalizer.cpp
seudolocalizer.h
seudolocalizer_test.cpp
|
1b1f1b14eef5f73a82c1bb7cefd63ded5a9f6ebb |
22-Dec-2015 |
Dan Willemsen <dwillemsen@google.com> |
AAPT2: Fix compiler error in 32-bit host test We now default host native tests to build both 32-bit and 64-bit versions. The 32-bit version of libaapt2_test was broken because it was comparing an unsigned int to the result from std::count(std::vector), which is a signed int. The 64-bit version compiled fine, since std::count(std::vector) returns a long. Change-Id: I786fcd8a54d9f78b76b19ef82ab8dda6f5c42197
mlIdCollector_test.cpp
|
a40e972fdaa68fc486ff90a319195515819068b2 |
25-Nov-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Support compiling a res/ directory and output to zip This allows us to compile an entire directory and output to a single file. This is important to support generated resources in the make build, since we may not know what resources get generated. The link step will accept the zip and read the contents of it as if they were passed in on the command line. Change-Id: If1a51b0abe772350c24074353eb4989953c2e0cb
ompile.cpp
|
467f171315f9c2037fcd3eb5edcfabc40671bf7b |
17-Nov-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Fail compiling when private symbols are referenced Also moved some XML specific stuff into its own directory, and refactored ReferenceLinker a bit. Change-Id: I912247a82023c1bbf72dc191fbdaf62858cbec0c
ompile.cpp
mlIdCollector.cpp
mlIdCollector.h
mlIdCollector_test.cpp
|
83f2255f69729e0e97539e96e5e6161843e85823 |
07-Nov-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Disambiguate merging of resources Merging local app resources is slightly different than merging resources from a static library. Local app resources may not have a package name set, but we do take interest in the ID set for the package (should be 0x0 or match the ID of the app we're building). Static library resources have an explicit package name defined for them, so we only merge resources from that package. Change-Id: I95e559ae94cc1df6972e77a347b1b37a93674c4d
ompile.cpp
|
9f22204c3a9ddac4f92573c9ab098e6cf3ed1cb4 |
04-Nov-2015 |
Adam Lesinski <adamlesinski@google.com> |
AAPT2: Fix small issue with detecting translatable resources Change-Id: Idd21b5de4d20be06c6f8c8eb5a22ccd68afc4927
ompile.cpp
|
9ba47d813075fcb05c5e1532c137c93b394631cb |
13-Oct-2015 |
Adam Lesinski <adamlesinski@google.com> |
Filter products during compile phase Unfortunately there is no good way to deal with products in the link phase. Products are like preprocessor defines in that they are processed early and change the composition of the compiled unit. Change-Id: I6d5e15ef60d29df8e83e059ba857c09333993779
ompile.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
ompile.cpp
dAssigner.cpp
dAssigner.h
dAssigner_test.cpp
ng.cpp
ng.h
mlIdCollector.cpp
mlIdCollector.h
mlIdCollector_test.cpp
|