From 3f7ddbba9861c04a3aa6b2b472e649f4834bd6c6 Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Mon, 29 Apr 2019 09:33:50 -0700 Subject: [PATCH] Enable app image startup cache for preopted apps To get performance benefits here for apps that aren't installed through the play store. Bug: 130217075 Bug: 131310042 Test: make (cherry picked from commit 8910722e71f4d8834a6bcdf89a9d8f7822982095) Merged-In: I46dc3e4a588be52f359577ca1f0fd2dcd440c4bf Change-Id: Ia98c4e5447b63f6362a4bd5c617a518784f0ef53 --- dexpreopt/config.go | 2 ++ dexpreopt/dexpreopt.go | 3 +++ 2 files changed, 5 insertions(+) diff --git a/dexpreopt/config.go b/dexpreopt/config.go index f1fa0ff34..3b77042ba 100644 --- a/dexpreopt/config.go +++ b/dexpreopt/config.go @@ -59,6 +59,7 @@ type GlobalConfig struct { NeverAllowStripping bool // whether stripping should not be done - used as build time check to make sure dex files are always available NoDebugInfo bool // don't generate debug info by default + DontResolveStartupStrings bool // don't resolve string literals loaded during application startup. AlwaysSystemServerDebugInfo bool // always generate mini debug info for system server modules (overrides NoDebugInfo=true) NeverSystemServerDebugInfo bool // never generate mini debug info for system server modules (overrides NoDebugInfo=false) AlwaysOtherDebugInfo bool // always generate mini debug info for non-system server modules (overrides NoDebugInfo=true) @@ -301,6 +302,7 @@ func GlobalConfigForTests(ctx android.PathContext) GlobalConfig { GenerateDMFiles: false, NeverAllowStripping: false, NoDebugInfo: false, + DontResolveStartupStrings: false, AlwaysSystemServerDebugInfo: false, NeverSystemServerDebugInfo: false, AlwaysOtherDebugInfo: false, diff --git a/dexpreopt/dexpreopt.go b/dexpreopt/dexpreopt.go index 01ee15ed3..5b658d989 100644 --- a/dexpreopt/dexpreopt.go +++ b/dexpreopt/dexpreopt.go @@ -461,6 +461,9 @@ func dexpreoptCommand(ctx android.PathContext, global GlobalConfig, module Modul appImageInstallPath := pathtools.ReplaceExtension(odexInstallPath, "art") cmd.FlagWithOutput("--app-image-file=", appImagePath). FlagWithArg("--image-format=", "lz4") + if !global.DontResolveStartupStrings { + cmd.FlagWithArg("--resolve-startup-const-strings=", "true") + } rule.Install(appImagePath, appImageInstallPath) }