summaryrefslogtreecommitdiff
path: root/java/aar.go
diff options
context:
space:
mode:
author Colin Cross <ccross@android.com> 2019-03-19 16:03:11 -0700
committer Colin Cross <ccross@android.com> 2019-03-19 23:33:47 +0000
commite560c4aabc9ef65ad10f6d795f56f2a1fbd8b3db (patch)
tree495f88e3db5e8aa9511a451a11bc2ec6f6c83353 /java/aar.go
parent1b7a4b00742fe7bcd22ae04e1b9eae2c01b3677c (diff)
Support package_splits
Pass the package_splits list from the property to aapt2 as --split arguments, sign the extra outputs, install them, and add them as extra output files for SourceFileProducer. Bug: 127921149 Test: TestAppSplits Change-Id: Id94a53ae6a8a68ec81e98abba2fefc9c23feaa7a
Diffstat (limited to 'java/aar.go')
-rw-r--r--java/aar.go29
1 files changed, 27 insertions, 2 deletions
diff --git a/java/aar.go b/java/aar.go
index 3f13e59c1..29578e218 100644
--- a/java/aar.go
+++ b/java/aar.go
@@ -83,9 +83,18 @@ type aapt struct {
useEmbeddedDex bool
usesNonSdkApis bool
+ splitNames []string
+ splits []split
+
aaptProperties aaptProperties
}
+type split struct {
+ name string
+ suffix string
+ path android.Path
+}
+
func (a *aapt) ExportPackage() android.Path {
return a.exportPackage
}
@@ -248,8 +257,23 @@ func (a *aapt) buildActions(ctx android.ModuleContext, sdkContext sdkContext, ex
compiledOverlay = append(compiledOverlay, aapt2Compile(ctx, dir.dir, dir.files).Paths()...)
}
+ var splitPackages android.WritablePaths
+ var splits []split
+
+ for _, s := range a.splitNames {
+ suffix := strings.Replace(s, ",", "_", -1)
+ path := android.PathForModuleOut(ctx, "package_"+suffix+".apk")
+ linkFlags = append(linkFlags, "--split", path.String()+":"+s)
+ splitPackages = append(splitPackages, path)
+ splits = append(splits, split{
+ name: s,
+ suffix: suffix,
+ path: path,
+ })
+ }
+
aapt2Link(ctx, packageRes, srcJar, proguardOptionsFile, rTxt, extraPackages,
- linkFlags, linkDeps, compiledRes, compiledOverlay)
+ linkFlags, linkDeps, compiledRes, compiledOverlay, splitPackages)
a.aaptSrcJar = srcJar
a.exportPackage = packageRes
@@ -258,6 +282,7 @@ func (a *aapt) buildActions(ctx android.ModuleContext, sdkContext sdkContext, ex
a.rroDirs = rroDirs
a.extraAaptPackagesFile = extraPackages
a.rTxt = rTxt
+ a.splits = splits
}
// aaptLibs collects libraries from dependencies and sdk_version and converts them into paths
@@ -564,7 +589,7 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
overlayRes := append(android.Paths{flata}, transitiveStaticLibs...)
aapt2Link(ctx, a.exportPackage, srcJar, proguardOptionsFile, rTxt, a.extraAaptPackagesFile,
- linkFlags, linkDeps, nil, overlayRes)
+ linkFlags, linkDeps, nil, overlayRes, nil)
}
var _ Dependency = (*AARImport)(nil)