aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com
diff options
context:
space:
mode:
authorGravatar corysmith <corysmith@google.com>2017-09-11 20:32:04 +0200
committerGravatar Philipp Wollermann <philwo@google.com>2017-09-12 14:05:11 +0200
commit9e845f6970a59e200b55aa5aa4d05051e064821f (patch)
tree2b222b4bdd6ccf1aeef63d1e1155c779c7ae4488 /src/tools/android/java/com
parent1dce09721f8361240bbf056fd508f1ac5fdcfd32 (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.java21
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);
}