Android性能優化入門與實戰
張世欣(拭心)
買這商品的人也買了...
-
$480$379 -
$948$901 -
$354$336 -
$690$587 -
$714$678 -
$880$660 -
$850$638 -
$1,200$948 -
$893$848 -
$534$507 -
$458Effective C (中文版)
-
$600$474 -
$659$626 -
$505Android 系統性能優化:卡頓、穩定性與續航
-
$1,000$900 -
$880$695 -
$580$458 -
$650$507 -
$620$490 -
$539$512 -
$600$570 -
$414$393 -
$450$351 -
$720$562 -
$720$562
相關主題
商品描述
隨著因特網用戶滲透率的提升,中國移動因特網進入了平穩發展階段。在存量市場下,企業能否提供更優質的用戶體驗,成為影響其用戶規模的重要因素,因此,“豐富的性能優化經驗”等描述在高級職位的要求中頻繁出現。很多人對性能優化感興趣,因其不僅有技術挑戰,在面試中也經常被提及。然而,對於沒有經驗的人來說,這個概念比較空泛,既不清楚其具體涵蓋內容,也擔心自己是否能掌握到足夠的深度。如果你有同樣的困惑,那麽這本書能給你答案。讀完本書之後,你會豁然開朗,對性能優化胸有成竹。
這是一本針對Android App性能優化的書,首先描述從事性能優化測試相關工作需要具備的能力,然後介紹性能優化和性能測試的組成環節,最後深入地講解內存、流暢性和啟動優化的具體方案。
本書適合想要或正在從事Android開發工作的讀者,特別是從事Android性能測試和優化相關工作的讀者閱讀。
作者簡介
张世欣(网名:拭心)
毕业于西安电子科技大学计算机专业,目前在喜马拉雅担任 Android 技术专家,曾就职于字节跳动基础架构组。在应用性能优化、性能分析工具、跨端技术等方面有丰富的开发实践经验。
坚持在社区分享内容,博客访问量达到百万人次,获得谷歌开发者专家、CSDN 博客专家和 InfoQ 签约作者等认证。
目錄大綱
第 1篇 市場需要什麽樣的Android開發者
第 1章 Android開發者需要具備的能力 2
1.1 初中級開發者需要具備的能力 2
1.2 高級開發者需要具備的能力 3
1.3 資深開發者需要具備的能力 4
1.4 性能技術專家需要具備的能力 5
1.5 小結 6
思考題 6
第 2章 優秀的開發者具備的素質 7
2.1 好的學習能力是什麽樣的 8
2.2 好的溝通能力是什麽樣的 11
2.3 好的工作思維是什麽樣的 12
2.4 小結 13
思考題 14
第 2篇 認識性能優化和性能測試
第3章 性能優化 16
3.1 性能優化的5個環節 16
3.2 性能優化如何進行 18
3.2.1 瑞士奶酪模型 18
3.2.2 釐清目標和現狀 19
3.2.3 搭建監控系統 21
3.2.4 發現問題,定位原因 26
3.2.5 設計優化方案,考慮得與失 28
3.2.6 上線驗證效果 30
3.3 小結 30
思考題 31
第4章 性能測試 32
4.1 性能測試的4個環節 32
4.2 性能測試實踐 33
4.2.1 測試CPU 33
4.2.2 測試GPU 35
4.2.3 測試FPS 35
4.2.4 測試文件讀寫情況 38
4.3 小結 39
思考題 39
第3篇 專項優化
第5章 內存優化 42
5.1 為什麽要做內存優化 42
5.1.1 虛擬內存不足導致App崩潰 42
5.1.2 物理內存不足導致App後台存活時間短 44
5.1.3 GC對應用啟動、流暢性的影響 45
5.1.4 小結 46
5.2 線上內存監控 46
5.2.1 內存不足導致的崩潰如何監控 46
5.2.2 後台被強制“殺掉”的問題如何監控 49
5.2.3 GC對流暢性的影響如何監控 53
5.2.4 小結 54
5.3 線下內存測試 54
5.3.1 獲取App的內存指標 55
5.3.2 獲取進程的內存空間數據 57
5.3.3 分析內存使用詳情 59
5.4 內存優化 61
5.4.1 Java 內存問題分析、定位 61
5.4.2 Native 內存問題分析、定位 71
5.4.3 圖片內存問題分析、定位 83
5.4.4 減少內存問題的有效方法 105
5.5 小結 111
思考題 112
第6章 流暢度優化 113
6.1 為什麽要做流暢度優化 113
6.2 線上流暢度監控 113
6.2.1 FPS和掉幀數 113
6.2.2 主線程卡頓監控 130
6.2.3 線程運行情況監控 141
6.3 線下流暢度分析 143
6.3.1 使用開發者選項分析卡頓問題 143
6.3.2 使用 Android Studio Profiler 分析卡頓問題 146
6.3.3 使用 Systrace 分析卡頓 149
6.4 流暢度優化如何進行 152
6.4.1 增加繪制相關線程的運行時間 152
6.4.2 減少主線程非繪制任務耗時 160
6.4.3 減少繪制任務耗時 175
6.5 小結 176
思考題 177
第7章 啟動優化 178
7.1 為什麽要做啟動優化 178
7.2 啟動監控 178
7.2.1 App 的啟動流程 179
7.2.2 啟動監控如何進行 185
7.3 線下分析 190
7.4 啟動優化如何進行 194
7.4.1 綁定大核提升啟動速度 194
7.4.2 通過框架管理啟動任務 198
7.4.3 減少 ContentProvider 初始化耗時 202
7.4.4 減少 .so 文件加載耗時 203
7.4.5 延遲子進程創建 204
7.4.6 低端機啟動邏輯降級 205
7.5 小結 205
思考題 206