diff --git a/dexpreopt/config.go b/dexpreopt/config.go index 2a929c536..720f79e28 100644 --- a/dexpreopt/config.go +++ b/dexpreopt/config.go @@ -30,6 +30,8 @@ type GlobalConfig struct { OnlyPreoptBootImageAndSystemServer bool // only preopt jars in the boot image or system server + UseArtImage bool // use the art image (use other boot class path dex files without image) + GenerateApexImage bool // generate an extra boot image only containing jars from the runtime apex UseApexImage bool // use the apex image by default diff --git a/java/dexpreopt.go b/java/dexpreopt.go index da6866031..5faec0817 100644 --- a/java/dexpreopt.go +++ b/java/dexpreopt.go @@ -106,8 +106,18 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Mo global := dexpreoptGlobalConfig(ctx) bootImage := defaultBootImageConfig(ctx) + dexFiles := bootImage.dexPathsDeps.Paths() + dexLocations := bootImage.dexLocationsDeps + if global.UseArtImage { + bootImage = artBootImageConfig(ctx) + } if global.UseApexImage { bootImage = frameworkJZBootImageConfig(ctx) + dexFiles = bootImage.dexPathsDeps.Paths() + dexLocations = bootImage.dexLocationsDeps + if global.UseArtImage { + bootImage = artJZBootImageConfig(ctx) + } } var archs []android.ArchType @@ -178,8 +188,8 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Mo DexPreoptImagesDeps: imagesDeps, DexPreoptImageLocations: bootImage.imageLocations, - PreoptBootClassPathDexFiles: bootImage.dexPathsDeps.Paths(), - PreoptBootClassPathDexLocations: bootImage.dexLocationsDeps, + PreoptBootClassPathDexFiles: dexFiles, + PreoptBootClassPathDexLocations: dexLocations, PreoptExtractedApk: false,