只要採用下列最佳做法,即可在不犧牲品質的前提下,充分提升應用程式效能。
使用基準設定檔
基準設定檔可以在首次啟用後讓程式碼執行速度提高 30%,也能讓所有使用者互動從首次執行起就更順暢,例如啟動應用程式、切換不同畫面或捲動內容等互動。提升應用程式的速度和回應能力,也有助於增加每日活躍使用人數,並提高平均回訪率。
使用啟動設定檔
啟動設定檔與基準設定檔類似,但會在編譯時間執行,將 DEX 版面配置最佳化,進而加快應用程式啟動速度。
使用 App Startup 程式庫
使用 App Startup 程式庫時,您可以定義共用單一內容供應器的元件初始化器,不必為每個需要初始化的元件定義不同的內容供應器。這麼做可大幅縮短應用程式啟動時間。
延遲載入程式庫或停用自動初始化
應用程式使用的程式庫不計其數,有些或許必須在啟動時使用,但不少程式庫也能延後到第一個影格繪製後才初始化。對於某些程式庫,您可以選擇停止在啟動時自動執行初始化,或依需求執行初始化。這樣一來,即可將初始化作業延後到有需要時再執行,協助增進效能。舉例來說,您可以使用隨選初始化,只在需要 WorkManager 時叫用此元件。
在可組合函式中使用狀態
狀態是指任何可能隨時間變化的資料,決定了 UI 顯示的內容或行為。由於 Compose 是宣告式,因此除非 UI 明確觀察並回應狀態變更,否則畫面不會自動更新。
建議使用條件式組合,延遲載入啟動時不會立即顯示的 UI 部分,例如錯誤畫面、選用詳細資料或次要分頁標籤。只要將耗用大量資源的元件包裝在簡單的狀態檢查中,即可避免在關鍵啟動視窗期間執行元件的組合邏輯,讓初始版面配置保持輕量。
var shouldLoad by remember {mutableStateOf(false)}
if (shouldLoad) {
MyComposable()
}
修改 shouldLoad,在條件式區塊中載入可組合函式:
LaunchedEffect(Unit) {
shouldLoad = true
}
這會觸發重新組合,其中包含第一個程式碼片段中條件式區塊內的程式碼。詳情請參閱「可組合項中的狀態」。
最佳化啟動畫面
啟動畫面是應用程式啟動程序的重要部分,使用精心設計的啟動畫面有助於提升應用程式的整體啟動體驗。Android 12 (API 級別 31) 以上版本包含可提升效能的啟動畫面。詳情請參閱「啟動畫面」。
使用可擴充的圖片類型
建議您使用向量圖形製作圖片。如果不可行,再使用 WebP 圖片。WebP 是一種圖片格式,可對網路圖片提供效果卓越的有損和無損壓縮檔案。您可以使用 Android Studio,將現有的 BMP、JPG、PNG 或靜態 GIF 圖片轉換為 WebP 格式。詳情請參閱「建立 WebP 圖片」。
此外,請盡量減少啟動期間載入的圖片,並避免載入大型圖片。
使用效能 API
Android 12 (API 級別 31) 以上版本支援媒體播放用的效能 API。您可以運用這個 API 掌握裝置性能,據此執行相應作業。
優先考量冷啟動追蹤記錄
冷啟動是指應用程式從頭開始啟動,亦即系統程序尚未建立應用程式的程序。一般而言,若是在裝置開機或系統強制停止後首次啟動應用程式,就會執行冷啟動。比起暖啟動和熱啟動等其他啟動類型,冷啟動的速度緩慢許多,因為應用程式和系統需要執行更多作業。您可以利用系統追蹤冷啟動,更有效監控應用程式效能。
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- 應用程式啟動分析與最佳化
- 應用程式啟動時間
- 凍結影格