Preopt APEX system server jars.
The path to the artifacts will in the form of /system/framework/oat/<arch>/<encoded-jar-path>@classes.{odex,vdex,art}, where <encoded-jar-path> is the path to the jar file with "/" replaced by "@". For example, /system/framework/oat/x86_64/apex@com.android.art@javalib@service-art.jar@classes.odex There will be a follow-up CL to update ART runtime to recognize artifacts in that path. Test: m com.android.art Bug: 194150908 Change-Id: Ic89fd63c4b1cd565684cead83fc91dae3bc97a4c
This commit is contained in:
13
java/java.go
13
java/java.go
@@ -487,7 +487,7 @@ func shouldUncompressDex(ctx android.ModuleContext, dexpreopter *dexpreopter) bo
|
||||
}
|
||||
|
||||
// Store uncompressed dex files that are preopted on /system.
|
||||
if !dexpreopter.dexpreoptDisabled(ctx) && (ctx.Host() || !odexOnSystemOther(ctx, dexpreopter.installPath)) {
|
||||
if !dexpreopter.dexpreoptDisabled(ctx) && (ctx.Host() || !dexpreopter.odexOnSystemOther(ctx, dexpreopter.installPath)) {
|
||||
return true
|
||||
}
|
||||
if ctx.Config().UncompressPrivAppDex() &&
|
||||
@@ -508,7 +508,8 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
}
|
||||
|
||||
j.checkSdkVersions(ctx)
|
||||
j.dexpreopter.installPath = android.PathForModuleInstall(ctx, "framework", j.Stem()+".jar")
|
||||
j.dexpreopter.installPath = j.dexpreopter.getInstallPath(
|
||||
ctx, android.PathForModuleInstall(ctx, "framework", j.Stem()+".jar"))
|
||||
j.dexpreopter.isSDKLibrary = j.deviceProperties.IsSDKLibrary
|
||||
if j.dexProperties.Uncompress_dex == nil {
|
||||
// If the value was not force-set by the user, use reasonable default based on the module.
|
||||
@@ -1368,7 +1369,8 @@ func (j *Import) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
|
||||
// Dex compilation
|
||||
|
||||
j.dexpreopter.installPath = android.PathForModuleInstall(ctx, "framework", jarName)
|
||||
j.dexpreopter.installPath = j.dexpreopter.getInstallPath(
|
||||
ctx, android.PathForModuleInstall(ctx, "framework", jarName))
|
||||
if j.dexProperties.Uncompress_dex == nil {
|
||||
// If the value was not force-set by the user, use reasonable default based on the module.
|
||||
j.dexProperties.Uncompress_dex = proptools.BoolPtr(shouldUncompressDex(ctx, &j.dexpreopter))
|
||||
@@ -1509,7 +1511,7 @@ func (j *Import) IsInstallable() bool {
|
||||
return Bool(j.properties.Installable)
|
||||
}
|
||||
|
||||
var _ dexpreopterInterface = (*Import)(nil)
|
||||
var _ DexpreopterInterface = (*Import)(nil)
|
||||
|
||||
// java_import imports one or more `.jar` files into the build graph as if they were built by a java_library module.
|
||||
//
|
||||
@@ -1622,7 +1624,8 @@ func (j *DexImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
j.hideApexVariantFromMake = true
|
||||
}
|
||||
|
||||
j.dexpreopter.installPath = android.PathForModuleInstall(ctx, "framework", j.Stem()+".jar")
|
||||
j.dexpreopter.installPath = j.dexpreopter.getInstallPath(
|
||||
ctx, android.PathForModuleInstall(ctx, "framework", j.Stem()+".jar"))
|
||||
j.dexpreopter.uncompressedDex = shouldUncompressDex(ctx, &j.dexpreopter)
|
||||
|
||||
inputJar := ctx.ExpandSource(j.properties.Jars[0], "jars")
|
||||
|
Reference in New Issue
Block a user