summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/dexpreopt.go11
-rw-r--r--java/dexpreopt_bootjars.go17
-rw-r--r--java/dexpreopt_config.go10
3 files changed, 21 insertions, 17 deletions
diff --git a/java/dexpreopt.go b/java/dexpreopt.go
index 479dec60b..1192d929e 100644
--- a/java/dexpreopt.go
+++ b/java/dexpreopt.go
@@ -101,10 +101,6 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Mo
global := dexpreoptGlobalConfig(ctx)
bootImage := defaultBootImageConfig(ctx)
- defaultBootImage := bootImage
- if global.UseApexImage {
- bootImage = apexBootImageConfig(ctx)
- }
var archs []android.ArchType
for _, a := range ctx.MultiTargets() {
@@ -174,11 +170,8 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Mo
DexPreoptImagesDeps: imagesDeps,
DexPreoptImageLocations: bootImage.imageLocations,
- // We use the dex paths and dex locations of the default boot image, as it
- // contains the full dexpreopt boot classpath. Other images may just contain a subset of
- // the dexpreopt boot classpath.
- PreoptBootClassPathDexFiles: defaultBootImage.dexPathsDeps.Paths(),
- PreoptBootClassPathDexLocations: defaultBootImage.dexLocationsDeps,
+ PreoptBootClassPathDexFiles: bootImage.dexPathsDeps.Paths(),
+ PreoptBootClassPathDexLocations: bootImage.dexLocationsDeps,
PreoptExtractedApk: false,
diff --git a/java/dexpreopt_bootjars.go b/java/dexpreopt_bootjars.go
index 1d363c963..571453102 100644
--- a/java/dexpreopt_bootjars.go
+++ b/java/dexpreopt_bootjars.go
@@ -220,16 +220,19 @@ func (d *dexpreoptBootJars) GenerateBuildActions(ctx android.SingletonContext) {
return
}
- // Always create the default boot image first, to get a unique profile rule for all images.
- d.defaultBootImage = buildBootImage(ctx, defaultBootImageConfig(ctx))
+ // Default boot image is either the framework one, or the JIT-zygote one.
+ // The boot image that is created first is used to get a unique profile rule for all images.
+ if global.GenerateApexImage {
+ d.defaultBootImage = buildBootImage(ctx, apexBootImageConfig(ctx))
+ d.otherImages = append(d.otherImages, buildBootImage(ctx, frameworkBootImageConfig(ctx)))
+ } else {
+ d.defaultBootImage = buildBootImage(ctx, frameworkBootImageConfig(ctx))
+ }
+
+ // Create the ART boot image.
if !skipDexpreoptArtBootJars(ctx) {
- // Create boot image for the ART apex (build artifacts are accessed via the global boot image config).
d.otherImages = append(d.otherImages, buildBootImage(ctx, artBootImageConfig(ctx)))
}
- if global.GenerateApexImage {
- // Create boot images for the JIT-zygote experiment.
- d.otherImages = append(d.otherImages, buildBootImage(ctx, apexBootImageConfig(ctx)))
- }
dumpOatRules(ctx, d.defaultBootImage)
}
diff --git a/java/dexpreopt_config.go b/java/dexpreopt_config.go
index 91e0dfbdd..d578b67e7 100644
--- a/java/dexpreopt_config.go
+++ b/java/dexpreopt_config.go
@@ -234,7 +234,7 @@ func artBootImageConfig(ctx android.PathContext) bootImageConfig {
return *genBootImageConfigs(ctx)[artBootImageName]
}
-func defaultBootImageConfig(ctx android.PathContext) bootImageConfig {
+func frameworkBootImageConfig(ctx android.PathContext) bootImageConfig {
return *genBootImageConfigs(ctx)[frameworkBootImageName]
}
@@ -242,6 +242,14 @@ func apexBootImageConfig(ctx android.PathContext) bootImageConfig {
return *genBootImageConfigs(ctx)[apexBootImageName]
}
+func defaultBootImageConfig(ctx android.PathContext) bootImageConfig {
+ if dexpreoptGlobalConfig(ctx).UseApexImage {
+ return apexBootImageConfig(ctx)
+ } else {
+ return frameworkBootImageConfig(ctx)
+ }
+}
+
func defaultBootclasspath(ctx android.PathContext) []string {
return ctx.Config().OnceStringSlice(defaultBootclasspathKey, func() []string {
global := dexpreoptGlobalConfig(ctx)