Android 效能最佳化

請按照本節的說明操作,確保 Android 裝置盡量減少資源用量並提升效能。此外,請善用「評估效能」一文所述的許多測試和工具,盡可能發揮 Android 的效用。

APK 快取

本文說明如何設計 APK 快取解決方案,以便在支援 A/B 分區的裝置上快速安裝預先載入的應用程式。對於採用 A/B 分區的新裝置,OEM 可以在 APK 快取中放置預先載入的應用程式和熱門應用程式,這些快取儲存在 B 分區 (通常為空白),不會影響任何使用者可見的資料空間。

啟動時間

Android 8.0 支援多項元件改良功能,可縮短啟動時間。本文提供合作夥伴指引,協助改善特定 Android 裝置的啟動時間。

健康狀態

Android 9 包含 android.hardware.health HAL 2.0,這是從 health@1.0 HAL 升級的主要版本。這個新 HAL 可更清楚地分隔架構和供應商程式碼,讓供應商在健康資訊報告中享有更大的自訂自由度,並提供更多裝置健康資訊 (不只是電池)。

記憶體不足終止工具

使用者空間 lmkd 程序會實作相同功能,但會使用現有的核心機制偵測及估算記憶體壓力。這項服務會使用核心產生的 vmpressure 事件,取得記憶體壓力層級的通知。

設定檔引導最佳化

Android 建構系統支援對具有藍圖建構規則的原生 Android 模組,使用 Clang 的設定檔引導最佳化 (PGO)。

R8 程式碼和資源最佳化

Android 建構系統會使用 R8 編譯器,從 DEX 目標 (android_app、android_test 和可安裝的 java_library 模組) 縮減、最佳化及移除未使用的程式碼和資源。在靜態程式庫 (android_library 和靜態 java_library) 中,Soong 會使用 optimize 區塊附加及匯出消費者保留規則。

如要進一步瞭解如何設定 R8 最佳化和保留規則,請參閱「使用 R8 最佳化平台程式碼和資源」。

工作快照

工作快照是 Android 8.0 導入的基礎架構,可結合「最近使用的項目」縮圖的螢幕截圖,以及 Window Manager 儲存的 Surface。「近期」縮圖代表「近期」檢視畫面中工作的最後狀態。

預寫記錄

Android 9 推出 SQLiteDatabase 的特殊模式,稱為「相容性 WAL」(預先寫入記錄),可讓資料庫使用 journal_mode=WAL,同時保留每個資料庫最多一個連線的行為。

NPU 管理員

Android 17 以上版本支援神經處理單元 (NPU) 管理工具,可協調資源分配、優先處理工作負載,以及追蹤執行狀態,以維持系統穩定性並提升裝置效能。