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
繼續閱讀
-
個案研究
在與 Android 開發人員關係團隊合作期間,Reddit 的工程團隊使用應用程式效能分數評估自家應用程式。
Ben Weiss • 4 分鐘可讀完
-
個案研究
TikTok 是全球知名的短片平台,擁有龐大的使用者群和創新功能。
Ben Trengrove, Ajesh Pai • 閱讀時間:2 分鐘
-
個案研究
在瞬息萬變的社群媒體世界中,使用者注意力稍縱即逝。Meta 應用程式 (Facebook 和 Instagram) 是全球最大的社群平台之一,為全球數十億使用者提供服務。
Mayuri Khinvasara Khabya • 4 分鐘可讀完
隨時掌握最新消息
每週透過電子郵件接收最新的 Android 開發洞察資訊。