啟動設定檔是基準設定檔的子集。建構系統會使用啟動設定檔,透過改善 APK DEX 檔案中的程式碼版面配置,進一步最佳化所含的類別和方法。使用啟動設定檔後,應用程式啟動速度通常會比單獨使用基準設定檔時快上 15% 到 30%。

需求條件
建議您搭配下列工具使用啟動設定檔:
- Jetpack Macrobenchmark 1.2.0 以上版本
- Android Gradle 外掛程式 8.2 以上版本
- Android Studio Iguana 以上版本
此外,您需要在應用程式中設定下列項目:
- 已啟用 R8。針對發布子版本設定
isMinifyEnabled = true
。 - 已啟用 DEX 版面配置最佳化功能。在應用程式模組的建構檔案
baselineProfile {}
區塊中,設定dexLayoutOptimization = true
。
建立啟動設定檔
使用預設的基準設定檔產生器範本時,Android Studio 會一併建立啟動設定檔和基準設定檔。
建立及產生啟動設定檔的一般步驟與建立基準設定檔的步驟相同。
建立啟動設定檔的預設方式,是使用 Android Studio 中的基準設定檔產生器模組範本。這包括形成基本啟動設定檔的啟動互動。如要為這個啟動設定檔新增更多關鍵使用者歷程 (CUJ),請將應用程式啟動 CUJ 新增至 rule
區塊,並將 includeInStartupProfile
設為 true
。如果是簡單的應用程式,啟動應用程式的 MainActivity
可能就足夠了。如果是較複雜的應用程式,建議您在應用程式中加入最常見的進入點,例如從主畫面啟動應用程式,或啟動至深層連結。
下列程式碼片段顯示基準設定檔產生器 (預設為 BaselineProfileGenerator.kt
檔案),其中包含從主畫面啟動應用程式,並啟動至深層連結。深層連結會直接前往應用程式的新聞動態,而非應用程式的主畫面。
@RunWith(AndroidJUnit4::class)
@LargeTest
class BaselineProfileGenerator {
@get:Rule
val rule = BaselineProfileRule()
@Test
fun generate() {
rule.collect(
packageName = "com.example.app",
includeInStartupProfile = true
) {
// Launch directly into the NEWS_FEED.
startActivityAndWait(Intent().apply {
setPackage(packageName)
setAction("com.example.app.NEWS_FEED")
})
}
}
}
執行為應用程式產生基準設定檔設定,然後在 src/<variant>/generated/baselineProfiles/startup-prof.txt
中找出啟動設定檔規則。
建立啟動設定檔時的考量
啟動設定檔的類別和方法輸出內容受限於第一個 classes.dex 檔案的大小。也就是說,並非所有基準設定檔歷程都應設為啟動設定檔歷程。
如要決定建立啟動設定檔時要涵蓋哪些使用者歷程,請考量大多數使用者啟動應用程式的地點。通常是從啟動器,且在使用者登入後。這也是最基本的基準設定檔歷程。
完成第一個用途後,請按照應用程式啟動程序的使用者漏斗進行。在許多情況下,應用程式啟動漏斗會按照以下清單進行:
- 主要啟動器活動
- 觸發應用程式啟動的通知
- 選用的啟動器活動
從清單頂端開始處理,並在 classes.dex 已滿之前停止。如要涵蓋之後的更多旅程,請將程式碼移出啟動路徑,並新增更多旅程。如要將程式碼移出啟動路徑,請在應用程式啟動期間檢查 Perfetto 追蹤記錄,並尋找執行時間過長的作業。您也可以使用Macrobenchmark,並啟用方法追蹤功能,以便在應用程式啟動期間自動取得完整的呼叫方法檢視畫面。
目前沒有任何建議。
建議登入 Google 帳戶。