活動與計畫

Fully Optimized:成效焦點週總結

閱讀時間:3 分鐘

過去一週,我們深入探討並分享最佳做法和指南,協助您打造更快速、更小巧、更穩定的 Android 應用程式。從 R8 最佳化工具和設定檔引導最佳化的基本功能,到 Jetpack Compose 的效能改善,再到提升應用程式效能的新指南,我們介紹了省時省力、成效顯著的工具,協助您打造高效能應用程式。

這篇文章是索引和藍圖,您隨時可以參考這些資源,進行最佳化調整。以下是我們共同旅程的五大重點。

使用 R8 最佳化工具加快應用程式速度

最有效且最不費力的變更,就是完全啟用 R8 最佳化工具。這項工具不只會縮減應用程式大小,還會執行深入的全程式最佳化,從根本上重新編寫程式碼,提高效率。重新檢視保留規則,並將 R8 重新納入工程任務。

我們新更新和擴充的 R8 最佳化工具說明文件可提供協助。

Reddit 啟用 R8 完整模式後,冷啟動速度提升 40%,ANR 錯誤減少 30%。

如要閱讀完整的個案研究,請前往我們的網誌。

image.png

Disney+ 的工程師致力提升應用程式效能,並持續改善使用者體驗。有時,看似微小的變更也可能產生巨大影響。檢查 R8 設定時,團隊發現使用了 -dontoptimize 旗標。移除這個標記並啟用最佳化功能後,Disney+ 團隊發現應用程式效能大幅提升。

image.png

下次有人問你如何提升應用程式效能時,只要提供這篇文章的連結即可。

詳情請參閱第 1 天的網誌文章:使用 R8 縮減、最佳化及快速追蹤應用程式

引導您提升成效

基準設定檔可有效免除 Just in Time 編譯的需求,進而提升啟動速度、捲動、動畫和整體算繪效能。啟動設定檔會以智慧方式排序應用程式的 classes.dex 檔案,讓應用程式啟動時更輕量。

如要進一步瞭解基準設定檔對應用程式效能的重要性,請參閱 Meta 的工程網誌,其中分享了基準設定檔如何將應用程式的各項重要成效指標提升高達 40%。

我們在 Jetpack Compose 1.10 在處理複雜的清單項目時,可暫停組合和可自訂快取視窗等功能,對於維持零捲動卡頓至關重要。請觀看最新一集的 #TheAndroidShow,瞭解更多詳情。

詳情請參閱週三的網誌文章:Deeper Performance Considerations

評估成效,輕鬆簡單

無法衡量,就無從管理。效能等級指南將評估過程分為五個步驟,從容易取得的資料開始,逐步建立進階本機工具。

從等級 1 開始,我們將教您如何使用 Android Vitals 中現成的資料,其中提供 ANR、當機和電池用量過多的現場資料。

我們也會教你如何升級。舉例來說,我們會示範如何使用 Jetpack Macrobenchmark 和新的 UiAutomator 2.4 API,透過本機效能測試 達到第 3 級,準確評估及驗證應用程式效能的任何變化。

詳情請參閱週四的網誌: [Link to Thursday's Blog: Leveling Guide for your Performance Journey]

偵錯效能再升級

進階最佳化不應導致當機報告難以解讀。新功能可協助您安心偵錯 R8 和背景工作:

自動 Logcat 追蹤

從 Android Studio Narwhal 開始,Logcat 視窗會自動對堆疊追蹤進行反模糊處理。這樣一來,您就能立即查看並偵錯可部署於正式環境建構中的任何當機情形。

縮小保留規則範圍

週二,我們揭開了 Keep 規則的神秘面紗,說明如何修正執行階段當機問題,並強調應編寫具體的成員層級規則,而非過於廣泛的萬用字元。由於這個主題很重要,我們也製作了影片。

Android Studio Otter 3 功能推送也提供新的 Lint 檢查,可檢查廣泛的 Keep 規則。

image.png

我們也發布了測試和疑難排解 R8 設定的新指南,協助您正確設定。

詳情請參閱週二的網誌文章: 設定 R8 Keep 規則並排解相關問題

背景工作

我們也分享了指南,說明如何對使用 WorkManager 安排工作時可能遇到的常見情況進行偵錯。

背景工作檢查器會以視覺化方式呈現 WorkManager 工作,並提供圖表檢視畫面,協助您找出排定工作延遲或失敗的原因。此外,我們也更新了背景工作說明文件的到達網頁,重點介紹針對特定用途最佳化的工作專屬 API,協助您更可靠地執行工作。

詳情請參閱週三的網誌文章: 背景工作效能考量

效能最佳化是一項持續進行的工作

如果您本週成功啟用 R8 完整模式,下一步就是使用應用程式效能分數,將效能納入產品藍圖。這套標準化架構可協助您找出最有效的待辦事項,持續提升成效。

我們在週五舉辦了 #AskAndroid Live 問答活動,由工程師回答 R8、設定檔引導最佳化等棘手問題,為這週畫下完美句點。如果錯過,請觀看重播!

感謝你的參與!現在就開始建構,繼續保持這股動能。

繼續閱讀