7 Commits

Author SHA1 Message Date
Adam Lesinski
d0f492db03 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
2017-04-10 11:59:18 -07:00
Adam Lesinski
06460ef0d7 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
2017-03-20 16:53:46 -07:00
Adam Lesinski
d48944a745 AAPT2: Rename strip phase to optimize
- Allow resource deduping, version collapsing, and sparse resource
  encoding.

Test: manual
Change-Id: Ia4aa892ab5b06ba1d5ea4a6efb51b00bc3a980c4
2017-02-22 11:41:55 -08:00
Adam Lesinski
c8f71aa67e Add ResTable_sparseTypeEntry support
Benchmarks on bullhead-userdebug show that there is a negligent
performance impact when using sparse entries on a 30% loaded
sparse type of 1000 resources.

Benchmark                                             Time           CPU Iterations
-----------------------------------------------------------------------------------
BM_SparseEntryGetResourceSparseLarge                255 ns        254 ns    2751408
BM_SparseEntryGetResourceNotSparseLarge             254 ns        254 ns    2756534

Bug: 27381711
Test: make libandroidfw_tests aapt2_tests
Change-Id: I051ea22f2f6b2bc3696e446adc9e2a34be18009f
2017-02-15 12:40:02 -08:00
Pierre Lecesne
fa131d5312 Only compress files that were already compressed in the original APK.
Also fix a log message.

Test: Manually. Unit tests pass.

Change-Id: Iea236bbcfbe1a0a0894ce1bfce09c19208c5a0bc
2017-02-03 19:49:37 +00:00
Pierre Lecesne
2599aa4dfd Add a method LoadedApk::WriteToArchive.
Test: Manually.

Change-Id: I61717204e58ca2bbfba9a52c7aecf27882a853f8
2017-02-02 21:35:21 +00:00
Pierre Lecesne
ff759e6a6e Moving the LoadedApk class to its own file.
Test: Unit tests pass.

Change-Id: Id706f9ad1f3406bb73a60a33139a04745d5d72c0
2017-02-01 00:31:55 +00:00