diff options
author | corysmith <corysmith@google.com> | 2018-07-31 08:30:55 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-31 08:32:58 -0700 |
commit | 8fe0f45852a620a078013310989396caed273342 (patch) | |
tree | f94622e2420cd7ebc3aa21c4e7a57915c6642a57 /src/tools/android/java/com/google/devtools/build/android/Aapt2ResourcePackagingAction.java | |
parent | 66a20633e89497c062b1e10cf7a02a996ab9a855 (diff) |
Add apk converted to proto and all attributes from CompiledResources to ResourcesZip.
Add new proto format for tool attributes stored in the AndroidDataXml for storing them in the resources.zip.
RELNOTES:None
PiperOrigin-RevId: 206765679
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.java | 85 |
1 files changed, 39 insertions, 46 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 6fc5e76419..ac89b36ee3 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 @@ -119,10 +119,7 @@ public class Aapt2ResourcePackagingAction { options.densities, filteredResources, mergedResources), new DensitySpecificManifestProcessor(options.densities, densityManifest)); - profiler.recordEndOf("merging"); - - - profiler.startTask("compile"); + profiler.recordEndOf("merging").startTask("compile"); final ResourceCompiler compiler = ResourceCompiler.create( executorService, @@ -131,37 +128,37 @@ public class Aapt2ResourcePackagingAction { aaptConfigOptions.buildToolsVersion, aaptConfigOptions.generatePseudoLocale); - CompiledResources compiled = - options - .primaryData - .processDataBindings( - options.dataBindingInfoOut, options.packageForR, databindingResourcesRoot) - .compile(compiler, compiledResources) - .processManifest( - manifest -> - AndroidManifestProcessor.with(STD_LOGGER) - .processManifest( - options.applicationId, - options.versionCode, - options.versionName, - manifest, - processedManifest)) - .processManifest( - manifest -> - new DensitySpecificManifestProcessor(options.densities, densityManifest) - .process(manifest)); - profiler.recordEndOf("compile").startTask("link"); - // Write manifestOutput now before the dummy manifest is created. - if (options.manifestOutput != null) { - AndroidResourceOutputs.copyManifestToOutput(compiled, options.manifestOutput); - } - - List<CompiledResources> compiledResourceDeps = - // Last defined dependencies will overwrite previous one, so always place direct - // after transitive. - concat(options.transitiveData.stream(), options.directData.stream()) - .map(DependencyAndroidData::getCompiledSymbols) - .collect(toList()); + CompiledResources compiled = + options + .primaryData + .processDataBindings( + options.dataBindingInfoOut, options.packageForR, databindingResourcesRoot) + .compile(compiler, compiledResources) + .processManifest( + manifest -> + AndroidManifestProcessor.with(STD_LOGGER) + .processManifest( + options.applicationId, + options.versionCode, + options.versionName, + manifest, + processedManifest)) + .processManifest( + manifest -> + new DensitySpecificManifestProcessor(options.densities, densityManifest) + .process(manifest)); + profiler.recordEndOf("compile").startTask("link"); + // Write manifestOutput now before the dummy manifest is created. + if (options.manifestOutput != null) { + AndroidResourceOutputs.copyManifestToOutput(compiled, options.manifestOutput); + } + + List<CompiledResources> compiledResourceDeps = + // Last defined dependencies will overwrite previous one, so always place direct + // after transitive. + concat(options.transitiveData.stream(), options.directData.stream()) + .map(DependencyAndroidData::getCompiledSymbols) + .collect(toList()); List<Path> assetDirs = concat( @@ -171,7 +168,7 @@ public class Aapt2ResourcePackagingAction { options.directAssets.stream()) .flatMap(dep -> dep.assetDirs.stream()) .collect(toList()); - assetDirs.addAll(options.primaryData.assetDirs); + assetDirs.addAll(options.primaryData.assetDirs); final PackagedResources packagedResources = ResourceLinker.create(aaptConfigOptions.aapt2, executorService, linkedOut) @@ -193,18 +190,14 @@ public class Aapt2ResourcePackagingAction { .copyMainDexProguardTo(options.mainDexProguardOutput) .createSourceJar(options.srcJarOutput) .copyRTxtTo(options.rOutput); - profiler.recordEndOf("link"); - if (options.resourcesOutput != null) { - profiler.startTask("package"); + profiler.recordEndOf("link"); + if (options.resourcesOutput != null) { // The compiled resources and the merged resources should be the same. // TODO(corysmith): Decompile or otherwise provide the exact resources in the apk. - ResourcesZip.fromApk( - mergedAndroidData.getResourceDir(), - packagedResources.getApk(), - packagedResources.getResourceIds()) - .writeTo(options.resourcesOutput, /* compress= */ false); - profiler.recordEndOf("package"); - } + packagedResources + .packageWith(mergedAndroidData.getResourceDir()) + .writeTo(options.resourcesOutput, false); } } } +} |