啟動設定檔是基準設定檔的子集。建構系統會使用啟動設定檔,改善 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")
})
}
}
}
執行「Generate Baseline Profile for app」(為應用程式產生基準設定檔) 設定,並在 src/<variant>/generated/baselineProfiles/startup-prof.txt
找到啟動設定檔規則。
建立新創公司簡介時的考量事項
建立啟動設定檔時,請考量大多數使用者啟動應用程式的位置,決定要涵蓋哪些使用者歷程。通常是從啟動器登入後。這也是最基本的基準設定檔歷程。
涵蓋第一個用途後,請按照應用程式啟動的使用者漏斗操作。在許多情況下,應用程式啟動漏斗會遵循下列清單:
- 主要啟動器活動
- 會觸發應用程式啟動的通知
- 選用啟動器活動
從清單頂端開始處理,並在 classes.dex 填滿前停止。如要涵蓋更多歷程,請將程式碼移出啟動路徑,並新增更多歷程。如要將程式碼移出啟動路徑,請在應用程式啟動期間檢查 Perfetto 追蹤記錄,並找出長時間執行的作業。您也可以使用巨集基準測試,並啟用方法追蹤,自動且完整地查看應用程式啟動期間的方法呼叫。
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- 建立基準設定檔 {:#create-profile-rules}
- 基準設定檔 {:#baseline-profiles}
- 編寫 Microbenchmark