內容簡介
提升APP品質與效能,打造良好使用者體驗
【內容簡介】
本書內容改編自第 14 屆 iThome 鐵人賽 Mobile Development 組佳作系列文章《Android app 效能優化》。本書用48個具體且實用的方法來提升 Android app 的效能。由於效能是影響 App 品質的一個重要因素,一款 App 的效能表現直接影響到使用者體驗。不論你是 Android 新手還是資深開發者,這本書都會帶領你掌握 App 效能改善的技巧,使你的 App 更流暢、反應更迅速,從而獲得更多使用者的認可與好評。
本書將深入地探討了如何從不同角度和層面來提升 App 的效能。從基礎效能概念開始,涵蓋了 Layout 的編排、記憶體使用、背景任務管理、效能監控及撰寫效能測試等範疇。透過範例詳細解析效能問題發生的原因,並提供具體的解決策略。書中不僅教你如何觀察相關指標,更重要的是引領讀者學會如何避免常見的效能陷阱。
【目標讀者】
→希望提升App品質的開發新手
→覺得App反應緩慢,需要解決效能問題的開發者
→想要進一步提升App效能的開發者
【內容簡介】
本書內容改編自第 14 屆 iThome 鐵人賽 Mobile Development 組佳作系列文章《Android app 效能優化》。本書用48個具體且實用的方法來提升 Android app 的效能。由於效能是影響 App 品質的一個重要因素,一款 App 的效能表現直接影響到使用者體驗。不論你是 Android 新手還是資深開發者,這本書都會帶領你掌握 App 效能改善的技巧,使你的 App 更流暢、反應更迅速,從而獲得更多使用者的認可與好評。
本書將深入地探討了如何從不同角度和層面來提升 App 的效能。從基礎效能概念開始,涵蓋了 Layout 的編排、記憶體使用、背景任務管理、效能監控及撰寫效能測試等範疇。透過範例詳細解析效能問題發生的原因,並提供具體的解決策略。書中不僅教你如何觀察相關指標,更重要的是引領讀者學會如何避免常見的效能陷阱。
【目標讀者】
→希望提升App品質的開發新手
→覺得App反應緩慢,需要解決效能問題的開發者
→想要進一步提升App效能的開發者
作者簡介
陳瑞忠(Evan)
一位Android開發者,同時擁有多年的Web開發經驗,熱衷於研究Android相關的知識與技術,經常在Medium上分享技術文章,偶爾也擔任講者與大家交流心得。近期也在線上教學平台上開了8堂Android課程,希望能夠幫助更多的人加入APP開發的領域。
iThome 鐵人賽獲獎
2022 Mobile Development 組佳作:
Android app 效能優化
2020 Mobile Development 組佳作:
Android TDD 測試驅動開發
2019 Software Development 組佳作:
Android animation 30天上手
Medium:https://medium.com/@evanchen76
一位Android開發者,同時擁有多年的Web開發經驗,熱衷於研究Android相關的知識與技術,經常在Medium上分享技術文章,偶爾也擔任講者與大家交流心得。近期也在線上教學平台上開了8堂Android課程,希望能夠幫助更多的人加入APP開發的領域。
iThome 鐵人賽獲獎
2022 Mobile Development 組佳作:
Android app 效能優化
2020 Mobile Development 組佳作:
Android TDD 測試驅動開發
2019 Software Development 組佳作:
Android animation 30天上手
Medium:https://medium.com/@evanchen76
內容目錄
CHAPTER 01 效能基本概念
1.1 選擇合適的資料結構
1.2 延遲初始化與延遲載入
1.3 使用快取 Cache
1.4 使用單例模式 Singleton Pattern
1.5 使用物件池 Object Pool
1.6 Kotlin Collection 的效能考量
1.7 避免頻繁建立物件
CHAPTER 02 避免 ANR(Application Not Responding)
2.1 在背景執行緒處理耗時工作
2.2 使用執行緒池 Thread Pool
2.3 使用 StrictMode 找出在主執行緒的異常請求
CHAPTER 03 Android 基本效能概念
3.1 了解 Activity 生命週期及改善效能
3.2 了解 Fragment 生命週期及改善效能
3.3 使用 RecyclerView 與 Diff
3.4 縮短 App 的啟動時間
3.5 精簡 App 的大小
3.6 提升圖片資源的效能改善
CHAPTER 04 背景任務管理與省電策略
4.1 Android 的省電策略:Doze、Hibernation 和 Standby Buckets
4.2 使用 WorkManager 執行背景任務
4.3 使用 AlarmManager 在特定時間執行背景任務
4.4 使用 Foreground service 前景服務
4.5 背景任務小結
CHAPTER 05 Layout 效能改善
5.1 使用 ConstraintLayout 減少 View 的階層
5.2 使用 Include 重用 Layout
5.3 使用 Merge 減少 Layout 階層
5.4 使用 ViewStub 延遲 View 的載入
5.5 檢測版面配置 - 使用 Layout Inspector
5.6 減少畫面的重複繪製
5.7 檢測畫面的重複繪製
5.8 檢測 GPU Rendering
CHAPTER 06 記憶體效能改善
6.1 避免 Memory leak 記憶體洩漏
6.2 正確使用 Application context 與 Activity context
6.3 使用 WeakReference 弱引用
6.4 使用 LeakCanary 檢測記憶體洩漏
6.5 使用 Profiler 找出記憶體的異常使用
CHAPTER 07 網路請求的效能改善
7.1 使用成熟的 Open Source 函式庫
7.2 透過快取及資料載入策略來減少網路請求
7.3 使用 Network Inspector 監看網路使用狀況
CHAPTER 08 UI 狀態管理與效能
8.1 使用 onSaveInstanceState 保存資料
8.2 使用 ViewModel 保存資料
CHAPTER 09 儲存資料以改善資源請求
9.1 DataStore 與 SharedPreferences 的效能改善
9.2 使用 Room 資料庫的效能改善
9.3 資料儲存小結
CHAPTER 10 效能監控管理工具
10.1 使用 Lint 找出潛在的效能問題
10.2 使用 Google Play Vitals 監控 App 的效能
10.3 Firebase Performance Monitoring
CHAPTER 11 撰寫效能測試
11.1 撰寫 Microbenchmark 效能測試
11.2 撰寫 Macrobenchmark 效能測試
CHAPTER 12 從 UX 改善主觀效能感受
12.1 提升 App 主觀效能感受的 UX 設計策略
12.2 使用 Splash Screen 改善 App 的啟動體驗
12.3 改善 Activity 頁面切換動畫與預載資訊
CHAPTER 13 總結
1.1 選擇合適的資料結構
1.2 延遲初始化與延遲載入
1.3 使用快取 Cache
1.4 使用單例模式 Singleton Pattern
1.5 使用物件池 Object Pool
1.6 Kotlin Collection 的效能考量
1.7 避免頻繁建立物件
CHAPTER 02 避免 ANR(Application Not Responding)
2.1 在背景執行緒處理耗時工作
2.2 使用執行緒池 Thread Pool
2.3 使用 StrictMode 找出在主執行緒的異常請求
CHAPTER 03 Android 基本效能概念
3.1 了解 Activity 生命週期及改善效能
3.2 了解 Fragment 生命週期及改善效能
3.3 使用 RecyclerView 與 Diff
3.4 縮短 App 的啟動時間
3.5 精簡 App 的大小
3.6 提升圖片資源的效能改善
CHAPTER 04 背景任務管理與省電策略
4.1 Android 的省電策略:Doze、Hibernation 和 Standby Buckets
4.2 使用 WorkManager 執行背景任務
4.3 使用 AlarmManager 在特定時間執行背景任務
4.4 使用 Foreground service 前景服務
4.5 背景任務小結
CHAPTER 05 Layout 效能改善
5.1 使用 ConstraintLayout 減少 View 的階層
5.2 使用 Include 重用 Layout
5.3 使用 Merge 減少 Layout 階層
5.4 使用 ViewStub 延遲 View 的載入
5.5 檢測版面配置 - 使用 Layout Inspector
5.6 減少畫面的重複繪製
5.7 檢測畫面的重複繪製
5.8 檢測 GPU Rendering
CHAPTER 06 記憶體效能改善
6.1 避免 Memory leak 記憶體洩漏
6.2 正確使用 Application context 與 Activity context
6.3 使用 WeakReference 弱引用
6.4 使用 LeakCanary 檢測記憶體洩漏
6.5 使用 Profiler 找出記憶體的異常使用
CHAPTER 07 網路請求的效能改善
7.1 使用成熟的 Open Source 函式庫
7.2 透過快取及資料載入策略來減少網路請求
7.3 使用 Network Inspector 監看網路使用狀況
CHAPTER 08 UI 狀態管理與效能
8.1 使用 onSaveInstanceState 保存資料
8.2 使用 ViewModel 保存資料
CHAPTER 09 儲存資料以改善資源請求
9.1 DataStore 與 SharedPreferences 的效能改善
9.2 使用 Room 資料庫的效能改善
9.3 資料儲存小結
CHAPTER 10 效能監控管理工具
10.1 使用 Lint 找出潛在的效能問題
10.2 使用 Google Play Vitals 監控 App 的效能
10.3 Firebase Performance Monitoring
CHAPTER 11 撰寫效能測試
11.1 撰寫 Microbenchmark 效能測試
11.2 撰寫 Macrobenchmark 效能測試
CHAPTER 12 從 UX 改善主觀效能感受
12.1 提升 App 主觀效能感受的 UX 設計策略
12.2 使用 Splash Screen 改善 App 的啟動體驗
12.3 改善 Activity 頁面切換動畫與預載資訊
CHAPTER 13 總結
ISBN: 9786263335981