diff options
author | 2017-11-21 10:48:16 -0800 | |
---|---|---|
committer | 2017-11-21 10:50:20 -0800 | |
commit | 59d2ece50d7998e355afff8fd7cabd4215fc070d (patch) | |
tree | 4fb6faa733c951e4a5ad83b11e239feaec52950f /src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java | |
parent | 1c2d2bd3b1c3b5d9929b6cac90c3b73fceca41ef (diff) |
Add option to enable resource cycle shrinking.
This will instruct AAPT2 to produce conditional keep rules to allow for more aggressive code and resource shrinking.
RELNOTES[NEW]: Add --experimental_android_resource_cycle_shrinking option to allow for more aggressive code and resource shrinking.
PiperOrigin-RevId: 176530749
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java index e378f54fba..70ef13b9aa 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java @@ -585,6 +585,7 @@ public final class ApplicationManifest { boolean crunchPng, Artifact proguardCfg, @Nullable Artifact mainDexProguardCfg, + boolean conditionalKeepRules, Artifact manifestOut, Artifact mergedResources, @Nullable Artifact dataBindingInfoZip, @@ -623,6 +624,11 @@ public final class ApplicationManifest { boolean skipParsingAction = targetAaptVersion == AndroidAaptVersion.AAPT2 && androidConfiguration.skipParsingAction(); + if (conditionalKeepRules && targetAaptVersion != AndroidAaptVersion.AAPT2) { + throw ruleContext.throwWithRuleError( + "resource cycle shrinking can only be enabled for builds with aapt2"); + } + ResourceContainer processed = new AndroidResourcesProcessorBuilder(ruleContext) .setLibrary(false) @@ -638,6 +644,7 @@ public final class ApplicationManifest { .withDependencies(resourceDeps) .setProguardOut(proguardCfg) .setMainDexProguardOut(mainDexProguardCfg) + .conditionalKeepRules(conditionalKeepRules) .setDataBindingInfoZip(dataBindingInfoZip) .setApplicationId(manifestValues.get("applicationId")) .setVersionCode(manifestValues.get("versionCode")) |