From 93d0bffafeac5a9c96b5921d5c48d3d78594e68b Mon Sep 17 00:00:00 2001 From: Jared Duke Date: Mon, 2 May 2022 15:23:53 -0700 Subject: [PATCH] Enable R8 full mode by default for apps This provides significant size savings over the default compatibility mode, roughly ~20MB in aggregate for a recent Pixel build. Targets can opt out using `proguard_compatibility = true`. Future work will enable for all targets, not just apps, but this incremental change yields the most benefit. Bug: 215530220 Test: m + presubmit Change-Id: I52a9b27ebe71835849e200e23ae2a250eaf1bbe1 --- java/app.go | 1 + java/dex.go | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/java/app.go b/java/app.go index d9272e4fc..78d560fc1 100755 --- a/java/app.go +++ b/java/app.go @@ -1030,6 +1030,7 @@ func AndroidAppFactory() android.Module { module.Module.dexProperties.Optimize.EnabledByDefault = true module.Module.dexProperties.Optimize.Shrink = proptools.BoolPtr(true) + module.Module.dexProperties.Optimize.Proguard_compatibility = proptools.BoolPtr(false) module.Module.properties.Instrument = true module.Module.properties.Supports_static_instrumentation = true diff --git a/java/dex.go b/java/dex.go index 7e7da00fd..7dd14bded 100644 --- a/java/dex.go +++ b/java/dex.go @@ -45,8 +45,8 @@ type DexProperties struct { // Whether to continue building even if warnings are emitted. Defaults to true. Ignore_warnings *bool - // If true, runs R8 in Proguard compatibility mode (default). - // Otherwise, runs R8 in full mode. + // If true, runs R8 in Proguard compatibility mode, otherwise runs R8 in full mode. + // Defaults to false for apps, true for libraries and tests. Proguard_compatibility *bool // If true, optimize for size by removing unused code. Defaults to true for apps,