Jetpack Compose 內建優異效能。請按照最佳做法設定應用程式,避免常見問題,並最佳化 Compose 應用程式的效能。
Android 技能
前往 GitHub 查看Jetpack Compose 效能
使用 Jetpack Compose 效能 Android 技能,診斷及最佳化 Android 專案中的 Jetpack Compose UI 效能。
如要透過 Android CLI 安裝技能,請執行:
android skills add jetpack-compose-performance評估 Jetpack Compose 基準
為了驗證 Jetpack Compose 相較於 View 的效能,我們使用 Hero 基準測試,也就是著重於重要、實際使用者歷程的基準測試,例如冷啟動應用程式,或捲動含有圖片的清單或格線。我們使用開放原始碼 Pokedex 應用程式進行這些基準測試,比較其檢視畫面和 Compose 實作。
這些基準測試顯示,Compose 1.9 以上版本在捲動時的卡頓情形,與 View 的效能相當。
如需其他指標和方法論,請參閱主打基準。
核心概念
以下是 Compose 效能的幾個重要概念:
- 階段:瞭解組合、版面配置和繪圖階段,對於最佳化 Compose 更新 UI 的方式至關重要。
- 基準設定檔:這些設定檔會預先編譯重要程式碼,加快應用程式啟動速度,並提供更流暢的互動體驗。
- 穩定性:瞭解 Compose 如何在重組期間比較參數,以便略過不必要的工作,而不必進行耗費資源的等式檢查。
正確設定應用程式
如果應用程式效能不佳,可能表示設定有問題。第一步是查看下列設定選項:
- 使用 R8 在版本模式中建構:嘗試在版本模式中執行應用程式。偵錯模式有助於找出許多問題,但會影響效能,而且可能難以找出其他問題。您也應使用 R8 編譯器啟用最佳化和縮減功能,確保發布子版本高效能且有效率。
- 使用基準設定檔:基準設定檔會預先編譯關鍵使用者歷程的程式碼,藉此提升效能。Compose 包含預設設定檔,但理想情況下,您也應建立應用程式專屬設定檔。參閱 Android 一般效能說明文件,進一步瞭解基準設定檔
工具
熟悉一系列工具,協助您評估及分析 Compose 應用程式的效能。
最佳做法
使用 Compose 開發應用程式時,請留意下列最佳做法:
- 避免昂貴的計算作業:使用
remember快取昂貴計算作業的結果。 - 協助延遲版面配置:為延遲版面配置提供穩定的
key和contentType參數,盡量減少不必要的重組,並啟用版位重複使用功能。 - 限制不必要的重組:讀取快速變化的狀態時,請使用
computedStateOf(Compose 1.13 以上版本) 或derivedStateOf限制重組。 - 延遲狀態讀取:將狀態讀取包裝在 lambda 函式中,盡可能延遲狀態讀取。
- 使用 lambda 修飾符變更狀態:針對經常變更的狀態變數,使用
Modifier.offset { ... }等 lambda 修飾符。 - 避免反向寫入:請勿在可組合項中寫入已讀取的狀態。
詳情請參閱最佳做法指南。
觀看次數
如果您使用的是檢視畫面而非 Compose,請參閱「改善版面配置效能」專屬指南。
其他資源
- 應用程式效能指南:探索最佳做法、程式庫和工具,提升 Android 應用程式效能。
- 檢查效能:檢查應用程式效能。
- 基準測試:對應用程式效能進行基準測試。
- 應用程式啟動:改善應用程式啟動程序。
- 基準設定檔:瞭解基準設定檔。