diff options
author | corysmith <corysmith@google.com> | 2018-08-13 13:03:01 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-08-13 13:05:00 -0700 |
commit | 9b9904aa3c97f9f2aa72a23d928770e0a141c983 (patch) | |
tree | b515736793510c8f596afb28ffc53ced9ba2398b /src/tools/android/java/com/google/devtools/build/android/Aapt2ResourceShrinkingAction.java | |
parent | 7e2d4dc0c13aa9438c4d25d324cae43d890608ae (diff) |
Correctly manage the ProtoApk lifecycle by ensuring it is closed when finished.
Move finding used resources to ProtoResourceUsageAnalyzer for correctness and memory improvements.
New report format: now records the kept resource along with the resource that keep it, as well maintaining the root status for each resource.
Example line: {number/foo[isRoot: false] = 0x07f...} => [{array/foos[isRoot: true] = 0x...}...]
RELNOTES: None
PiperOrigin-RevId: 208529350
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/Aapt2ResourceShrinkingAction.java')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/Aapt2ResourceShrinkingAction.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourceShrinkingAction.java b/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourceShrinkingAction.java index e9fa1cb338..828981afa5 100644 --- a/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourceShrinkingAction.java +++ b/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourceShrinkingAction.java @@ -20,6 +20,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.devtools.build.android.ResourceShrinkerAction.Options; +import com.google.devtools.build.android.ResourcesZip.ShrunkProtoApk; import com.google.devtools.build.android.aapt2.Aapt2ConfigOptions; import com.google.devtools.build.android.aapt2.CompiledResources; import com.google.devtools.build.android.aapt2.ResourceCompiler; @@ -108,19 +109,22 @@ public class Aapt2ResourceShrinkingAction { .collect(toSet()); if (aapt2ShrinkOptions.useProtoApk) { - resourcesZip - .shrinkUsingProto( + try (final ShrunkProtoApk shrunk = + resourcesZip.shrinkUsingProto( packages, options.shrunkJar, options.proguardMapping, options.log, - scopedTmp.subDirectoryOf("shrunk-resources")) - .writeBinaryTo(linker, options.shrunkApk, aapt2ConfigOptions.resourceTableAsProto) - .writeReportTo(options.log) - .writeResourcesToZip(options.shrunkResources); - if (options.rTxtOutput != null) { - // Fufill the contract -- however, we do not generate an R.txt from the shrunk resources. - Files.copy(options.rTxt, options.rTxtOutput); + scopedTmp.subDirectoryOf("shrunk-resources"))) { + shrunk + .writeBinaryTo(linker, options.shrunkApk, aapt2ConfigOptions.resourceTableAsProto) + .writeReportTo(options.log) + .writeResourcesToZip(options.shrunkResources); + if (options.rTxtOutput != null) { + // Fufill the contract -- however, we do not generate an R.txt from the shrunk + // resources. + Files.copy(options.rTxt, options.rTxtOutput); + } } } else { final ResourceCompiler resourceCompiler = |