Android套用性能最佳化實踐

《Android套用性能最佳化實踐》是2017年機械工業出版社出版的圖書。

基本介紹

  • 中文名:Android套用性能最佳化實踐
  • 出版時間:2017年2月
  • 出版社:機械工業出版社
  • ISBN:9787111556169
內容簡介,圖書目錄,

內容簡介

本書旨在用騰訊的億級用戶App的開發經驗幫助你打造高質量的Android套用。
從WinCE時代開始,作者從事移動套用開發10餘年,現擔任騰訊音樂Android平台的開發總監,主導並參於過多個用戶規模上億的Android套用開發工作,對Android套用開發有深刻的認識,特別在架構設計、性能最佳化等方面有豐富的實戰經驗。
本書從用戶體驗的角度,將性能問題總結為4類:
(1)快:流暢的操作體驗
(2)穩:穩定
(3)省:省電、省流量
(4)小:安裝包要儘可能小
導致出現這4類問題的原因可能是卡頓、記憶體使用不合理、代碼質量差、代碼邏輯不優秀、安裝包過大等。本書從繪製(UI)、記憶體、存儲、穩定性、耗電以及安裝包6個方面深入講解了性能最佳化具體涉及的技術以及最佳化方案,同時講解了多種性能最佳化工具的使用。此外,還提供了典型的案例,幫助讀者理解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

相關詞條

熱門詞條

聯絡我們