讓應用程式更臻完善的最佳做法

下列最佳做法可在不犧牲品質的情況下,將應用程式最佳化。

使用基準設定檔

基準設定檔可以在首次啟用後讓程式碼執行速度提高 30%,也可能讓所有使用者互動 (例如啟動應用程式、切換不同畫面或捲動內容) 從首次執行起就更順暢。提升應用程式的速度和回應能力,也有助於增加每日活躍使用者人數,以及提高平均回訪率。

使用啟動設定檔

啟動設定檔與基準設定檔類似,但會在編譯期間執行,以便最佳化 DEX 版面配置,加快應用程式啟動速度。

使用 App Startup 程式庫

使用 App Startup 程式庫時,您可以定義共用單一內容供應器的元件初始化器,而不是針對每個需要初始化的元件定義不同的內容供應器。這麼做可以大幅縮短應用程式的啟動時間。

延遲載入程式庫或停用自動初始化

應用程式使用的程式庫不計其數,有些是啟動時不可或缺的,但也有很多程式庫可以延後到第一個影格繪製後才初始化。對於某些程式庫,您可以選擇停止在啟動時自動執行初始化,或依需求執行初始化。這樣一來,即可將初始化作業延後到有需要時再執行,有助於增進效能。例如,您可以使用按需初始化,只在需要 WorkManager 時叫用此元件。

使用 ViewStub

ViewStub 是一個大小為零的隱藏 View,可用於在執行階段延後加載版面配置資源。它可讓應用程式在啟動時延後加載非必要的檢視畫面。

使用 Jetpack Compose 時,您可以使用狀態來延遲載入部分元件,執行與 ViewStub 類似的行為:

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 圖片」。

此外,請盡量減少啟動期間載入的圖片,並避免載入大型圖片。

使用 Performance API

Android 12 (API 級別 31) 以上版本支援媒體播放用的性能 API。您可以運用這個 API 掌握裝置性能,據此執行相應作業。

優先考量冷啟動追蹤記錄

冷啟動是指應用程式從頭開始啟動,亦即系統程序尚未建立應用程式的程序。一般而言,應用程式在裝置啟動或系統強制停止後,首次啟動應用程式時,會啟動冷啟動。冷啟動速度會大幅降低,因為應用程式和系統必須執行其他啟動類型 (例如暖啟動和熱啟動) 不需要的工作。您可以藉由系統追蹤冷啟動,更有效地監控應用程式效能。