全書一共7章,在簡單介紹了AndroidStudio的使用指南後,分別從繪製(UI)、記憶體、存儲、穩定性、耗電以及安裝包6個方面最佳化,從系統上深入分析繪製和記憶體的原理,一步步深入了解導致性能問題的本質原因,同時講述了多種性能最佳化工具的使用,通過分析典型案例,得到有效的最佳化方案,從而實現更高質量的套用。書中所講述的內容均基於Android6.0系統。
基本介紹
- 書名:Android套用性能最佳化最佳實踐
- 又名:移動開發
- 作者:羅彧成 著
- 譯者:無
- ISBN:978-7-111-55616-9
- 類別:計算機
- 頁數:207
- 定價:59元
- 出版社:機械工業出版社
- 出版時間:2017-03
- 裝幀:平裝
- 開本:16
基本信息
作者:羅彧成 著 |
ISBN(書號):978-7-111-55616-9 |
叢書名:移動開發 |
出版日期:2017-03 |
版次:1/1 |
開本:16 |
定價:¥59.00 |
內容簡介
內容簡介 本書旨在幫助你打造高質量(良好用戶體驗)的Android 套用。 作者從WinCE時代便開始從事移動套用開發,至今已10餘年,現擔任騰訊音樂Android平台的開發總監,主導並參於過多個用戶規模上億的Android套用開發工作,對Android套用開發有深刻的認識,特別在架構設計、性能最佳化等方面有豐富的實戰經驗。 |
目錄
第1章 Android Studio使用指南 1
1.1 Android Studio的優勢 1
1.2 Android Studio使用入門 2
1.2.1 Android Studio安裝 2
1.2.2 創建一個Android Studio工程 3
1.2.3 從Eclipse項目遷移到Android Studio 5
1.3 Android Studio實用技巧 7
1.3.1 代碼管理 7
1.3.2 代碼編輯技巧 8
1.3.3 調試技巧 10
1.4 本章小結 11
第2章 繪製最佳化 12
2.1 Android系統顯示原理 13
2.1.1 繪製原理 13
2.1.2 刷新機制 16
2.1.3 卡頓的根本原因 20
2.2 性能分析工具 21
2.2.1 卡頓檢測工具 22
2.2.2 TraceView 23
2.2.3 Systrace UI性能分析 26
2.3 布局最佳化 29
2.3.1 常用布局最佳化工具 30
2.3.2 布局最佳化方法 34
2.4 避免過度繪製 43
2.4.1 過度繪製檢測工具 44
2.4.2 如何避免過度繪製 44
2.4.3 案例:無過度繪製View的實現 45
2.5 啟動最佳化 49
2.5.1 套用啟動流程 49
2.5.2 啟動耗時監測 52
2.5.3 啟動最佳化方案 56
2.6 合理的刷新機制 58
2.6.1 減少刷新次數 58
2.6.2 避免後台執行緒影響 59
2.6.3 縮小刷新區域 59
2.7 提升動畫性能 60
2.7.1 幀動畫 60
2.7.2 補間動畫 60
2.7.3 屬性動畫 62
2.7.4 硬體加速 63
2.8 卡頓監控方案與實現 66
2.8.1 監控原理 67
2.8.2 代碼實現 68
2.9 本章小結 79
第3章 記憶體最佳化 80
3.1 Android記憶體管理機制 81
3.1.1 Java對象生命周期 81
3.1.2 記憶體分配 82
3.1.3 記憶體回收機制 84
3.1.4 GC類型 86
3.2 最佳化記憶體的意義 87
3.3 記憶體分析工具 90
3.3.1 Memory Monitor 90
3.3.2 Heap Viewer 91
3.3.3 Allocation Tracker 94
3.4 避免記憶體泄漏 96
3.4.1 記憶體泄漏定義 97
3.4.2 使用MAT查找記憶體泄漏 97
3.4.3 常見記憶體泄漏場景 103
3.4.4 記憶體泄漏監控 106
3.5 最佳化記憶體空間 109
3.5.1 對象引用 109
3.5.2 減少不必要的記憶體開銷 110
3.5.3 使用最優的數據類型 112
3.5.4 圖片記憶體最佳化 117
3.6 圖片管理模組設計與實現 120
3.6.1 實現異步載入功能 121
3.6.2 實現三重快取 130
3.6.3 開源圖片組件 140
3.7 本章小結 142
第4章 存儲最佳化 144
4.1 存儲方式 144
4.1.1 SharedPreferences 145
4.1.2 檔案存儲 145
4.1.3 SQLite(需要擴展) 146
4.1.4 ContentProvider 147
4.2 序列化 147
4.2.1 Serializable與Parcelable 148
4.2.2 Gson實現JSON的序列化和反序列化 148
4.2.3 Nano Proto Buffers 149
4.2.4 FlatBuffers 149
4.2.5 小結 150
4.3 SharedPreferences最佳化 150
4.4 資料庫使用及最佳化 151
4.4.1 資料庫實現 152
4.4.2 資料庫最佳化 157
4.5 本章小結 161
第5章 穩定性最佳化 162
5.1 提高代碼質量 162
5.1.1 代碼審查 163
5.1.2 代碼靜態掃描工具 166
5.2 Crash監控 168
5.2.1 Java層Crash監控 168
5.2.2 Native層Crash監控 171
5.2.3 Crash上報機制 173
5.3 ANR剖析 173
5.3.1 ANR介紹 173
5.3.2 ANR分析 174
5.3.3 ANR監控 176
5.4 提高后台進程存活率 178
5.4.1 套用進程優先權 178
5.4.2 利用SyncAdapter提高進程優先權 180
5.5 本章小結 183
第6章 耗電最佳化 184
6.1 耗電檢測工具 184
6.2 三大模組省電最佳化 187
6.2.1 顯示 187
6.2.2 網路 188
6.2.3 CPU 189
6.3 套用常用最佳化方案 191
6.3.1 計算最佳化 191
6.3.2 避免WakeLock使用不當 192
6.3.3 使用Job Scheduler 193
6.4 Doze模式 197
6.4.1 Doze模式介紹 197
6.4.2 Doze模式套用策略 198
6.4.3 測試Doze模式套用工作狀態 199
6.5 本章小結 199
第7章 安裝包大小最佳化 200
7.1 套用裝包的構成 200
7.2 減少安裝包大小的常用方案 203
7.2.1 代碼混淆 203
7.2.2 資源最佳化 204
7.2.3 其他最佳化 206
7.3 本章小結 207
結束語 208