aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java
diff options
context:
space:
mode:
authorGravatar corysmith <corysmith@google.com>2017-09-22 02:02:35 +0200
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-09-22 12:16:02 +0200
commit54c86b4c6f29f4b0d52e1db702d30c10f3ac8b56 (patch)
tree08141e8298a2eadae818e7d8cce1198280e3c1be /src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java
parent87c70eef9cae2c2bb652ecc0baa16adb90a21eab (diff)
Action for resource shrinking with aapt2
Introduces the ResourcesZip class to more easily handle processing merged resources. RELNOTES: None PiperOrigin-RevId: 169622715
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java52
1 files changed, 25 insertions, 27 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java b/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java
index 4b53f88423..2ddcdc9acc 100644
--- a/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java
+++ b/src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java
@@ -23,6 +23,7 @@ import com.google.devtools.build.android.AndroidResourceMerger.MergingException;
import com.google.devtools.build.android.AndroidResourceProcessingAction.Options;
import com.google.devtools.build.android.aapt2.Aapt2ConfigOptions;
import com.google.devtools.build.android.aapt2.CompiledResources;
+import com.google.devtools.build.android.aapt2.PackagedResources;
import com.google.devtools.build.android.aapt2.ResourceCompiler;
import com.google.devtools.build.android.aapt2.ResourceLinker;
import com.google.devtools.build.android.aapt2.StaticLibrary;
@@ -84,13 +85,9 @@ public class Aapt2ResourcePackagingAction {
final Path densityManifest = tmp.resolve("manifest-filtered/AndroidManifest.xml");
final Path processedManifest = tmp.resolve("manifest-processed/AndroidManifest.xml");
- final Path dummyManifest = tmp.resolve("manifest-aapt-dummy/AndroidManifest.xml");
final Path databindingResourcesRoot =
Files.createDirectories(tmp.resolve("android_data_binding_resources"));
- final Path databindingMetaData =
- Files.createDirectories(tmp.resolve("android_data_binding_metadata"));
final Path compiledResources = Files.createDirectories(tmp.resolve("compiled"));
- final Path staticLinkedOut = Files.createDirectories(tmp.resolve("static-linked"));
final Path linkedOut = Files.createDirectories(tmp.resolve("linked"));
profiler.recordEndOf("setup").startTask("merging");
@@ -157,30 +154,31 @@ public class Aapt2ResourcePackagingAction {
.map(DependencyAndroidData::getStaticLibrary)
.collect(toList());
- ResourceLinker.create(aaptConfigOptions.aapt2, linkedOut)
- .profileUsing(profiler)
- .dependencies(ImmutableList.of(StaticLibrary.from(aaptConfigOptions.androidJar)))
- .include(dependencies)
- .buildVersion(aaptConfigOptions.buildToolsVersion)
- .filterToDensity(densitiesToFilter)
- .link(compiled)
- .copyPackageTo(options.packagePath)
- .copyProguardTo(options.proguardOutput)
- .copyMainDexProguardTo(options.mainDexProguardOutput)
- .createSourceJar(options.srcJarOutput)
- .copyRTxtTo(options.rOutput);
+ final PackagedResources packagedResources =
+ ResourceLinker.create(aaptConfigOptions.aapt2, linkedOut)
+ .profileUsing(profiler)
+ .dependencies(ImmutableList.of(StaticLibrary.from(aaptConfigOptions.androidJar)))
+ .include(dependencies)
+ .buildVersion(aaptConfigOptions.buildToolsVersion)
+ .filterToDensity(densitiesToFilter)
+ .link(compiled)
+ .copyPackageTo(options.packagePath)
+ .copyProguardTo(options.proguardOutput)
+ .copyMainDexProguardTo(options.mainDexProguardOutput)
+ .createSourceJar(options.srcJarOutput)
+ .copyRTxtTo(options.rOutput);
profiler.recordEndOf("link");
- }
- if (options.resourcesOutput != null) {
- profiler.startTask("package");
- // The compiled resources and the merged resources should be the same.
- // TODO(corysmith): Decompile or otherwise provide the exact resources in the apk.
- AndroidResourceOutputs.createResourcesZip(
- mergedAndroidData.getResourceDir(),
- mergedAndroidData.getAssetDir(),
- options.resourcesOutput,
- false /* compress */);
- profiler.recordEndOf("package");
+ if (options.resourcesOutput != null) {
+ profiler.startTask("package");
+ // The compiled resources and the merged resources should be the same.
+ // TODO(corysmith): Decompile or otherwise provide the exact resources in the apk.
+ ResourcesZip.from(
+ mergedAndroidData.getResourceDir(),
+ mergedAndroidData.getAssetDir(),
+ packagedResources.resourceIds())
+ .writeTo(options.resourcesOutput, false /* compress */);
+ profiler.recordEndOf("package");
+ }
}
} catch (MergingException e) {
logger.severe("Merging exception: " + e.getMessage());