diff options
author | 2017-09-11 20:32:04 +0200 | |
---|---|---|
committer | 2017-09-12 14:05:11 +0200 | |
commit | 9e845f6970a59e200b55aa5aa4d05051e064821f (patch) | |
tree | 2b222b4bdd6ccf1aeef63d1e1155c779c7ae4488 /src/tools/android/java/com | |
parent | 1dce09721f8361240bbf056fd508f1ac5fdcfd32 (diff) |
Add multiple density processing to aapt2 using the optimize command.
RELNOTES: None
PiperOrigin-RevId: 168259422
Diffstat (limited to 'src/tools/android/java/com')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceLinker.java | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceLinker.java b/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceLinker.java index 97c993ec93..8c26b5b8b8 100644 --- a/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceLinker.java +++ b/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceLinker.java @@ -26,6 +26,7 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.List; +import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; @@ -157,7 +158,7 @@ public class ResourceLinker { .whenVersionIsAtLeast(new Revision(23)) .thenAdd("--no-version-vectors") .add("--no-static-lib-packages") - .when(logger.getLevel() == Level.FINE) + .when(Objects.equals(logger.getLevel(), Level.FINE)) .thenAdd("-v") .add("--manifest", compiled.getManifest()) .add("--auto-add-overlay") @@ -183,8 +184,24 @@ public class ResourceLinker { .add("-o", outPath) .execute(String.format("Linking %s", compiled.getManifest()))); profiler.recordEndOf("fulllink"); + profiler.startTask("optimize"); + if (densities.size() < 2) { + return PackagedResources.of( + outPath, rTxt, proguardConfig, mainDexProguard, javaSourceDirectory); + } + final Path optimized = workingDirectory.resolve("optimized.apk"); + logger.finer( + new AaptCommandBuilder(aapt2) + .forBuildToolsVersion(buildToolsVersion) + .forVariantType(VariantType.DEFAULT) + .add("optimize") + .add("--target-densities", densities.stream().collect(Collectors.joining(","))) + .add("-o", optimized) + .add(outPath.toString()) + .execute(String.format("Optimizing %s", compiled.getManifest()))); + profiler.recordEndOf("optimize"); return PackagedResources.of( - outPath, rTxt, proguardConfig, mainDexProguard, javaSourceDirectory); + optimized, rTxt, proguardConfig, mainDexProguard, javaSourceDirectory); } catch (IOException e) { throw new LinkError(e); } |