diff options
Diffstat (limited to 'java/dexpreopt.go')
-rw-r--r-- | java/dexpreopt.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/java/dexpreopt.go b/java/dexpreopt.go index 4c0a0a155..9db9b1b46 100644 --- a/java/dexpreopt.go +++ b/java/dexpreopt.go @@ -282,6 +282,17 @@ func (d *Dexpreopter) DexpreoptPrebuiltApexSystemServerJars(ctx android.ModuleCo d.installPath = android.PathForModuleInPartitionInstall(ctx, "", strings.TrimPrefix(dexpreopt.GetSystemServerDexLocation(ctx, dc, libraryName), "/")) // generate the rules for creating the .odex and .vdex files for this system server jar dexJarFile := di.PrebuiltExportPath(ApexRootRelativePathToJavaLib(libraryName)) + + d.inputProfilePathOnHost = nil // reset: TODO(spandandas): Make dexpreopter stateless + if android.InList(libraryName, di.GetDexpreoptProfileGuidedExportedModuleNames()) { + // Set the profile path to guide optimization + prof := di.PrebuiltExportPath(ApexRootRelativePathToJavaLib(libraryName) + ".prof") + if prof == nil { + ctx.ModuleErrorf("Could not find a .prof file in this prebuilt apex") + } + d.inputProfilePathOnHost = prof + } + d.dexpreopt(ctx, libraryName, dexJarFile) } @@ -354,6 +365,7 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, libName string, dexJa var profileClassListing android.OptionalPath var profileBootListing android.OptionalPath profileIsTextListing := false + if d.inputProfilePathOnHost != nil { profileClassListing = android.OptionalPathForPath(d.inputProfilePathOnHost) } else if BoolDefault(d.dexpreoptProperties.Dex_preopt.Profile_guided, true) && !forPrebuiltApex(ctx) { |