diff options
author | 2017-11-22 16:19:37 -0800 | |
---|---|---|
committer | 2017-11-29 05:05:07 +0000 | |
commit | 3bc7ffa59b8277b3a36eb9e16192583b3b9a93ea (patch) | |
tree | 1a768f402d17a3181a18177e17935dbd1d3c60b2 /java/app_builder.go | |
parent | 0875c52de753b858b74a9ac285626536bee9cb57 (diff) |
Replace aapt support with aapt2
Use aapt2 instead of aapt to compile Android app resources.
Also generate all files into srcjars instead of individual
sources.
Test: m checkbuild
Change-Id: I5a67991a0daf0017e8159b46fcff7d5564a91468
Diffstat (limited to 'java/app_builder.go')
-rw-r--r-- | java/app_builder.go | 92 |
1 files changed, 16 insertions, 76 deletions
diff --git a/java/app_builder.go b/java/app_builder.go index ed7abce6d..82574aeff 100644 --- a/java/app_builder.go +++ b/java/app_builder.go @@ -27,31 +27,6 @@ import ( ) var ( - aaptCreateResourceJavaFile = pctx.AndroidStaticRule("aaptCreateResourceJavaFile", - blueprint.RuleParams{ - Command: `rm -rf "$javaDir" && mkdir -p "$javaDir" && ` + - `$aaptCmd package -m $aaptFlags -P $publicResourcesFile -G $proguardOptionsFile ` + - `-J $javaDir || ( rm -rf "$javaDir/*"; exit 41 ) && ` + - `find $javaDir -name "*.java" > $javaFileList`, - CommandDeps: []string{"$aaptCmd"}, - }, - "aaptFlags", "publicResourcesFile", "proguardOptionsFile", "javaDir", "javaFileList") - - aaptCreateAssetsPackage = pctx.AndroidStaticRule("aaptCreateAssetsPackage", - blueprint.RuleParams{ - Command: `rm -f $out && $aaptCmd package $aaptFlags -F $out`, - CommandDeps: []string{"$aaptCmd"}, - }, - "aaptFlags", "publicResourcesFile", "proguardOptionsFile", "javaDir", "javaFileList") - - aaptAddResources = pctx.AndroidStaticRule("aaptAddResources", - blueprint.RuleParams{ - // TODO: add-jni-shared-libs-to-package - Command: `cp -f $in $out.tmp && $aaptCmd package -u $aaptFlags -F $out.tmp && mv $out.tmp $out`, - CommandDeps: []string{"$aaptCmd"}, - }, - "aaptFlags") - signapk = pctx.AndroidStaticRule("signapk", blueprint.RuleParams{ Command: `java -jar $signapkCmd $certificates $in $out`, @@ -75,63 +50,30 @@ func init() { pctx.HostJavaToolVariable("signapkCmd", "signapk.jar") } -func CreateResourceJavaFiles(ctx android.ModuleContext, flags []string, - deps android.Paths) (android.Path, android.Path, android.Path) { - javaDir := android.PathForModuleGen(ctx, "R") - javaFileList := android.PathForModuleOut(ctx, "R.filelist") - publicResourcesFile := android.PathForModuleOut(ctx, "public_resources.xml") - proguardOptionsFile := android.PathForModuleOut(ctx, "proguard.options") - - ctx.Build(pctx, android.BuildParams{ - Rule: aaptCreateResourceJavaFile, - Description: "aapt create R.java", - Outputs: android.WritablePaths{publicResourcesFile, proguardOptionsFile, javaFileList}, - Implicits: deps, - Args: map[string]string{ - "aaptFlags": strings.Join(flags, " "), - "publicResourcesFile": publicResourcesFile.String(), - "proguardOptionsFile": proguardOptionsFile.String(), - "javaDir": javaDir.String(), - "javaFileList": javaFileList.String(), - }, +var combineApk = pctx.AndroidStaticRule("combineApk", + blueprint.RuleParams{ + Command: `${config.MergeZipsCmd} $out $in`, + CommandDeps: []string{"${config.MergeZipsCmd}"}, }) - return publicResourcesFile, proguardOptionsFile, javaFileList -} +func CreateAppPackage(ctx android.ModuleContext, outputFile android.WritablePath, + resJarFile, dexJarFile android.Path, certificates []string) { -func CreateExportPackage(ctx android.ModuleContext, flags []string, deps android.Paths) android.ModuleOutPath { - outputFile := android.PathForModuleOut(ctx, "package-export.apk") + // TODO(ccross): JNI libs - ctx.Build(pctx, android.BuildParams{ - Rule: aaptCreateAssetsPackage, - Description: "aapt export package", - Output: outputFile, - Implicits: deps, - Args: map[string]string{ - "aaptFlags": strings.Join(flags, " "), - }, - }) - - return outputFile -} + unsignedApk := android.PathForModuleOut(ctx, "unsigned.apk") -func CreateAppPackage(ctx android.ModuleContext, flags []string, jarFile android.Path, - certificates []string) android.Path { - - resourceApk := android.PathForModuleOut(ctx, "resources.apk") + inputs := android.Paths{resJarFile} + if dexJarFile != nil { + inputs = append(inputs, dexJarFile) + } ctx.Build(pctx, android.BuildParams{ - Rule: aaptAddResources, - Description: "aapt package", - Output: resourceApk, - Input: jarFile, - Args: map[string]string{ - "aaptFlags": strings.Join(flags, " "), - }, + Rule: combineApk, + Inputs: inputs, + Output: unsignedApk, }) - outputFile := android.PathForModuleOut(ctx, "package.apk") - var certificateArgs []string for _, c := range certificates { certificateArgs = append(certificateArgs, c+".x509.pem", c+".pk8") @@ -141,11 +83,9 @@ func CreateAppPackage(ctx android.ModuleContext, flags []string, jarFile android Rule: signapk, Description: "signapk", Output: outputFile, - Input: resourceApk, + Input: unsignedApk, Args: map[string]string{ "certificates": strings.Join(certificateArgs, " "), }, }) - - return outputFile } |