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