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
繼續閱讀
-
個案研究
Karrot 是一款以社群為導向的超區域點對點市集應用程式,使用者可與其他已驗證的使用者買賣和交易商品。該平台於 2015 年在韓國推出,之後擴展至全球市場,目前已累積超過 4,300 萬名註冊使用者。
Thomas Ezan, Tracy Agyemang • 閱讀時間:2 分鐘
-
個案研究
在瞬息萬變的社群媒體世界中,使用者注意力稍縱即逝。Meta 應用程式 (Facebook 和 Instagram) 是全球最大的社群平台之一,為全球數十億使用者提供服務。
Mayuri Khinvasara Khabya, Tracy Agyemang • 4 分鐘可讀完
-
個案研究
為穿戴式裝置建構 Android 應用程式時,螢幕關閉後才是真正的工作開始。
Breana Tate, Tracy Agyemang • 4 分鐘可讀完
隨時掌握最新消息
每週透過電子郵件接收最新的 Android 開發洞察資訊。