Android性能優(yōu)化入門與實戰(zhàn)
定 價:59.9 元
- 作者:張世欣(拭心)
- 出版時間:2024/4/1
- ISBN:9787115630421
- 出 版 社:人民郵電出版社
- 中圖法分類:TN929.53
- 頁碼:206
- 紙張:
- 版次:01
- 開本:16開
隨著互聯(lián)網(wǎng)用戶滲透率的提升,中國移動互聯(lián)網(wǎng)進入了平穩(wěn)發(fā)展階段。在存量市場下,企業(yè)能否提供更優(yōu)質(zhì)的用戶體驗,成為影響其用戶規(guī)模的重要因素,因此,“豐富的性能優(yōu)化經(jīng)驗”等描述在高級職位的要求中頻繁出現(xiàn)。很多人對性能優(yōu)化感興趣,因其不僅有技術(shù)挑戰(zhàn),在面試中也經(jīng)常被提及。然而,對于沒有經(jīng)驗的人來說,這個概念比較空泛,既不清楚其具體涵蓋內(nèi)容,也擔心自己是否能掌握到足夠的深度。如果你有同樣的困惑,那么這本書能給你答案。讀完本書之后,你會豁然開朗,對性能優(yōu)化胸有成竹。
這是一本針對Android App性能優(yōu)化的書,首先描述從事性能優(yōu)化測試相關(guān)工作需要具備的能力,然后介紹性能優(yōu)化和性能測試的組成環(huán)節(jié),最后深入地講解內(nèi)存、流暢性和啟動優(yōu)化的具體方案。
本書適合想要或正在從事Android開發(fā)工作的讀者,特別是從事Android性能測試和優(yōu)化相關(guān)工作的讀者閱讀。
多年Android App優(yōu)化經(jīng)驗總結(jié);
全面剖析Android App性能優(yōu)化技術(shù);
詳盡的代碼拿來就用;
全面講解為什么優(yōu)化、如何優(yōu)化;
深入剖析安卓性能優(yōu)化的理論、環(huán)節(jié)及關(guān)鍵技術(shù)(內(nèi)存優(yōu)化、流暢度優(yōu)化、啟動優(yōu)化)。
張世欣(網(wǎng)名:拭心)
畢業(yè)于西安電子科技大學計算機專業(yè),目前在喜馬拉雅擔任 Android 技術(shù)專家,曾就職于字節(jié)跳動基礎(chǔ)架構(gòu)組。在應(yīng)用性能優(yōu)化、性能分析工具、跨端技術(shù)等方面有豐富的開發(fā)實踐經(jīng)驗。
堅持在社區(qū)分享內(nèi)容,博客訪問量達到百萬人次,獲得谷歌開發(fā)者專家、CSDN 博客專家和 InfoQ 簽約作者等認證。
第 1篇 市場需要什么樣的Android開發(fā)者
第 1章 Android開發(fā)者需要具備的能力 2
1.1 初中級開發(fā)者需要具備的能力 2
1.2 高級開發(fā)者需要具備的能力 3
1.3 資深開發(fā)者需要具備的能力 4
1.4 性能技術(shù)專家需要具備的能力 5
1.5 小結(jié) 6
思考題 6
第 2章 優(yōu)秀的開發(fā)者具備的素質(zhì) 7
2.1 好的學習能力是什么樣的 8
2.2 好的溝通能力是什么樣的 11
2.3 好的工作思維是什么樣的 12
2.4 小結(jié) 13
思考題 14
第 2篇 認識性能優(yōu)化和性能測試
第3章 性能優(yōu)化 16
3.1 性能優(yōu)化的5個環(huán)節(jié) 16
3.2 性能優(yōu)化如何進行 18
3.2.1 瑞士奶酪模型 18
3.2.2 厘清目標和現(xiàn)狀 19
3.2.3 搭建監(jiān)控系統(tǒng) 21
3.2.4 發(fā)現(xiàn)問題,定位原因 26
3.2.5 設(shè)計優(yōu)化方案,考慮得與失 28
3.2.6 上線驗證效果 30
3.3 小結(jié) 30
思考題 31
第4章 性能測試 32
4.1 性能測試的4個環(huán)節(jié) 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 小結(jié) 39
思考題 39
第3篇 專項優(yōu)化
第5章 內(nèi)存優(yōu)化 42
5.1 為什么要做內(nèi)存優(yōu)化 42
5.1.1 虛擬內(nèi)存不足導致App崩潰 42
5.1.2 物理內(nèi)存不足導致App后臺存活時間短 44
5.1.3 GC對應(yīng)用啟動、流暢性的影響 45
5.1.4 小結(jié) 46
5.2 線上內(nèi)存監(jiān)控 46
5.2.1 內(nèi)存不足導致的崩潰如何監(jiān)控 46
5.2.2 后臺被強制“殺掉”的問題如何監(jiān)控 49
5.2.3 GC對流暢性的影響如何監(jiān)控 53
5.2.4 小結(jié) 54
5.3 線下內(nèi)存測試 54
5.3.1 獲取App的內(nèi)存指標 55
5.3.2 獲取進程的內(nèi)存空間數(shù)據(jù) 57
5.3.3 分析內(nèi)存使用詳情 59
5.4 內(nèi)存優(yōu)化 61
5.4.1 Java 內(nèi)存問題分析、定位 61
5.4.2 Native 內(nèi)存問題分析、定位 71
5.4.3 圖片內(nèi)存問題分析、定位 83
5.4.4 減少內(nèi)存問題的有效方法 105
5.5 小結(jié) 111
思考題 112
第6章 流暢度優(yōu)化 113
6.1 為什么要做流暢度優(yōu)化 113
6.2 線上流暢度監(jiān)控 113
6.2.1 FPS和掉幀數(shù) 113
6.2.2 主線程卡頓監(jiān)控 130
6.2.3 線程運行情況監(jiān)控 141
6.3 線下流暢度分析 143
6.3.1 使用開發(fā)者選項分析卡頓問題 143
6.3.2 使用 Android Studio Profiler 分析卡頓問題 146
6.3.3 使用 Systrace 分析卡頓 149
6.4 流暢度優(yōu)化如何進行 152
6.4.1 增加繪制相關(guān)線程的運行時間 152
6.4.2 減少主線程非繪制任務(wù)耗時 160
6.4.3 減少繪制任務(wù)耗時 175
6.5 小結(jié) 176
思考題 177
第7章 啟動優(yōu)化 178
7.1 為什么要做啟動優(yōu)化 178
7.2 啟動監(jiān)控 178
7.2.1 App 的啟動流程 179
7.2.2 啟動監(jiān)控如何進行 185
7.3 線下分析 190
7.4 啟動優(yōu)化如何進行 194
7.4.1 綁定大核提升啟動速度 194
7.4.2 通過框架管理啟動任務(wù) 198
7.4.3 減少 ContentProvider 初始化耗時 202
7.4.4 減少 .so 文件加載耗時 203
7.4.5 延遲子進程創(chuàng)建 204
7.4.6 低端機啟動邏輯降級 205
7.5 小結(jié) 205
思考題 206