Monzo 是英國的數位銀行,擁有 1,500 萬名客戶,且人數持續增加。隨著應用程式規模擴大,工程團隊發現應用程式啟動時間是需要改善的重要領域,但擔心這需要大幅變更程式碼集。
Monzo 全面啟用 R8 最佳化功能後,應用程式無回應 (ANR) 發生率大幅降低 35%。這項簡單的變更證明,有效的最佳化不一定需要複雜的工程作業。
使用 R8 完整模式,全面提升效能
Monzo 認為 R8 完整模式是值得嘗試的簡單修正方式,結果也確實有效,全面提升了效能:
- 啟動可靠性:冷啟動時間縮短 30%,暖啟動時間縮短 24%,熱啟動時間縮短 14%。
- 啟動速度:P50 啟動時間縮短 11%,P90 啟動時間縮短 12%。
- 效率:應用程式整體大小縮減 9%。
- 穩定性:ANR 減少 35%。
只要進行一項變更,就能啟用最佳化功能
許多 Android 應用程式使用過時的預設設定檔,導致 R8 最佳化工具的大部分功能無法運作。Monzo 為了提升效能,主要變更是將 proguard-android.txt 預設檔案替換為 proguard-android-optimize.txt。這項變更會移除 -dontoptimize 指令,讓 R8 正常運作。
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}完成這項變更後,建議您查看 Keep 設定檔。這些檔案會指示 R8 哪些程式碼部分不應更動 (通常是因為這些部分是由外部程式庫動態呼叫)。整理不必要的 Keep 規則,R8 就能發揮更大作用。
使用基準設定檔改善捲動效能
為進一步提升使用者體驗,Monzo 導入了基準設定檔,特別針對主動態消息的捲動和算繪效能進行最佳化。這項策略可確保最常見的使用者歷程 (開啟應用程式和捲動動態消息) 獲得充分最佳化。這對轉譯作業產生重大影響:P90 捲動效能提升 71%,P95 捲動效能則提升 87%。現在,應用程式的捲動效果比以往更流暢。
Monzo 將這項功能納入發布程序,以便持續維持這些改善。Neumayer 說明:「我們會在每個工作天 (執行夜間版本前) 觸發基準設定檔產生作業,並在完成後提交最新變更。」
掌握 Modern Android Development 最新資訊
Monzo 的經驗顯示,只要隨時掌握 Android 建構工具的最新建議,就能發揮無限可能。雖然舊版應用程式通常難以處理複雜的反射用法,但 Monzo 發現,只要妥善記錄 Keep 規則,轉換過程就會很簡單。Neumayer 表示:「我們一律會新增註解,說明保留規則的用途,這樣就能知道何時可以安全移除規則。」
Neumayer 對其他團隊有何建議?定期根據現行標準檢查做法:「查看 Google 針對應用程式效能提供的最新建議,並確認您是否遵循所有最新建議。」
如要開始使用並進一步瞭解 R8,請前往 https://d.android.com/r8
-
個案研究Grab 是東南亞首屈一指的超級應用程式,透過單一應用程式為八個國家/地區的數百萬名使用者提供外送、交通和金融服務。
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • 閱讀時間:5 分鐘 -
個案研究WhatsApp 是全球最大的訊息平台,為全球數十億使用者提供服務。WhatsApp 是不同地區使用者預設的通訊工具,透過私密、可靠且安全的訊息服務,將使用者連結在一起。
Niharika Arora, Tracy Agyemang, Mayank Jain • 閱讀時間:8 分鐘 -
個案研究Tinder 的使命是讓每一代單身人士都能輕鬆有趣地認識新朋友,進而促成並激發真實的人際關係。
每週透過電子郵件接收最新的 Android 開發洞察資訊。