-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰(zhàn)行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調(diào)優(yōu)實踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
Android性能優(yōu)化之道:從底層原理到一線實踐 版權(quán)信息
- ISBN:9787111773900
- 條形碼:9787111773900 ; 978-7-111-77390-0
- 裝幀:平裝-膠訂
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
Android性能優(yōu)化之道:從底層原理到一線實踐 本書特色
這是Google認證的Android方向開發(fā)專家撰寫的一本專著,源于作者10年大廠的一線開發(fā)經(jīng)驗。全書沒有無用的理論介紹,所有內(nèi)容均從底層原理和一線實踐兩個維度對性能優(yōu)化的方方面面進行深度解讀。本書基于 Android 14 撰寫,提供全部源碼下載(具體下載方式見前言)。
Android性能優(yōu)化之道:從底層原理到一線實踐 內(nèi)容簡介
這是一本深度解讀Android性能優(yōu)化底層原理并給出可落地的一線實踐指導的專業(yè)技術(shù)書。書中不僅原理講解透徹,而且會給出很多基于讀者實際工作成績的實戰(zhàn)案例。本書共分為11章,其中第1章總體介紹Android性能優(yōu)化的背景、本質(zhì)、方法論和落地方向,第2~10章從原理和實戰(zhàn)兩個層面分別對內(nèi)存優(yōu)化、速度優(yōu)化、穩(wěn)定性優(yōu)化、包體積優(yōu)化及其他優(yōu)化進行解讀。*后一章是作者多年優(yōu)化從業(yè)經(jīng)驗的總結(jié)。
Android性能優(yōu)化之道:從底層原理到一線實踐Android性能優(yōu)化之道:從底層原理到一線實踐 前言
前 言
為何寫這本書
Android 性能優(yōu)化的重要性體現(xiàn)在能為程序帶來更大的價值及幫助 Android 開發(fā)者增強職業(yè)競爭力這兩個方向上。
性能優(yōu)化可以提升程序的穩(wěn)定性、運行速度和流暢性,從而提高用戶滿意度,增加用戶的留存率,促進業(yè)務增長。對于大中型公司來說,每個程序都會有專門的性能品質(zhì)團隊來負責優(yōu)化性能,由此可見性能優(yōu)化對提升程序價值的重要性。
對于Android開發(fā)者來說,掌握性能優(yōu)化技術(shù)可增強職業(yè)競爭力,并有更好的職場表現(xiàn)。在平時的工作中,大多數(shù)人只關(guān)注基本的業(yè)務需求,很少有人關(guān)注業(yè)務需求之上的體驗需求,所以開發(fā)者若是能具備很強的性能優(yōu)化能力,就可以通過產(chǎn)品為業(yè)務帶來更多的額外價值,那么自然就能獲得更高的認可。另外,在面試中,性能優(yōu)化也是必考內(nèi)容,它是開發(fā)者高階技術(shù)實力的體現(xiàn),擅長性能優(yōu)化的開發(fā)者更容易,在面試中脫穎而出,從而提升面試的成
功率。
Android性能優(yōu)化之道:從底層原理到一線實踐 目錄
目 錄?Contents
前 言
引言 如何才能做好性能優(yōu)化 1
第1章 內(nèi)存優(yōu)化原理 8
1.1 虛擬內(nèi)存 9
1.1.1 為什么需要虛擬內(nèi)存 9
1.1.2 什么是虛擬內(nèi)存 10
1.1.3 ELF文件 11
1.1.4 虛擬內(nèi)存申請和釋放 14
1.1.5 虛擬內(nèi)存到物理內(nèi)存 16
1.2 內(nèi)存數(shù)據(jù)的組成 17
1.2.1 maps文件 17
1.2.2 Java堆內(nèi)存 18
1.2.3 Native內(nèi)存 26
1.3 內(nèi)存優(yōu)化方法論 26
1.3.1 及時清理數(shù)據(jù) 26
1.3.2 減少數(shù)據(jù)的加載 27
1.3.3 增加內(nèi)存大小 29
第2章 內(nèi)存優(yōu)化實戰(zhàn) 30
2.1 Java內(nèi)存泄漏檢測 31
2.1.1 手動分析 31
2.1.2 自動分析 36
2.2 Native內(nèi)存泄漏檢測 40
2.2.1 攔截malloc和free函數(shù) 40
2.2.2 獲取Native堆棧 50
2.2.3 Native堆棧信息還原 51
2.2.4 開源工具介紹 55
2.3 Bitmap治理 55
2.3.1 字節(jié)碼操作 56
2.3.2 超大Bitmap優(yōu)化 61
2.3.3 Bitmap泄漏優(yōu)化 65
2.4 線程棧優(yōu)化 66
2.4.1 線程創(chuàng)建流程 67
2.4.2 減少線程數(shù)量 69
2.4.3 減小線程默認的棧
空間大小 70
2.5 默認webview內(nèi)存釋放 72
2.5.1 通過maps文件尋找地址 73
2.5.2 通過系統(tǒng)變量尋找地址 75
第3章 速度與流暢性優(yōu)化原理 81
3.1 CPU 81
3.1.1 CPU的結(jié)構(gòu) 82
3.1.2 CPU的工作流程 82
3.1.3 匯編指令 84
3.2 緩存 84
3.2.1 緩存的結(jié)構(gòu) 84
3.2.2 寄存器 85
3.2.3 高速緩存 86
3.2.4 主存 86
3.3 任務調(diào)度 86
3.3.1 進程與線程的狀態(tài) 87
3.3.2 進程調(diào)度 88
3.3.3 協(xié)程和線程 89
3.4 速度與流暢性優(yōu)化方法論 90
3.4.1 提升CPU執(zhí)行效率 90
3.4.2 提升緩存效率 92
3.4.3 提升任務調(diào)度效率 92
第4章 速度與流暢性優(yōu)化實戰(zhàn) 93
4.1 充分利用CPU閑置時刻 94
4.1.1 proc文件方案 94
4.1.2 times函數(shù)方案 98
4.2 減少CPU的等待 100
4.2.1 鎖等待優(yōu)化 100
4.2.2 I/O等待優(yōu)化 108
4.3 綁定CPU大核 110
4.3.1 線程綁核函數(shù) 111
4.3.2 獲取大核序列 111
4.4 GC抑制 113
4.4.1 GC的執(zhí)行流程 114
4.4.2 抑制GC執(zhí)行的方案 120
4.5 緩存策略優(yōu)化 126
4.5.1 常用的淘汰策略 127
4.5.2 LFUCache 128
4.6 Dex類文件重排序 131
4.6.1 局部性原理 131
4.6.2 Redex使用流程 132
4.7 提升核心線程優(yōu)先級 133
4.7.1 調(diào)整線程優(yōu)先級的方式 134
4.7.2 需要調(diào)整優(yōu)先級的線程 135
4.8 線程池優(yōu)化 137
4.8.1 默認的線程池創(chuàng)建方式 137
4.8.2 線程池配置解析 139
4.8.3 線程池類型及創(chuàng)建 141
4.8.4 線程池監(jiān)控 147
第5章 穩(wěn)定性優(yōu)化原理 152
5.1 ANR 153
5.1.1 ANR的類型 153
5.1.2 常見的ANR歸因 168
5.2 Crash 169
5.2.1 Java Crash 169
5.2.2 Native Crash 172
5.3 穩(wěn)定性優(yōu)化方法論 174
第6章 穩(wěn)定性優(yōu)化實戰(zhàn) 176
6.1 Native Crash監(jiān)控方案 177
6.1.1 異常信號捕獲 177
6.1.2 獲取Native堆棧 178
6.1.3 使用開源庫 182
6.2 ANR監(jiān)控方案 188
6.2.1 信號捕獲檢測方案 188
6.2.2 AMS接口檢測方案 191
6.2.3 抓取Trace文件 192
6.2.4 使用開源框架 193
6.3 OOM監(jiān)控方案 193
6.3.1 Hprof文件結(jié)構(gòu) 194
6.3.2 Hprof裁剪方案 197
6.3.3 使用開源框架 198
6.4 Native Crash分析思路 198
6.4.1 初步分析 199
6.4.2 堆棧分析 200
6.4.3 指令分析 200
6.5 ANR分析思路 201
6.5.1 初步分析 202
6.5.2 性能分析 203
6.5.3 直接和間接分析 205
6.6 慢函數(shù)監(jiān)控 206
6.6.1 慢函數(shù)檢測方法 206
6.6.2 主線程方法插樁 207
第7章 包體積優(yōu)化原理 208
7.1 APK組成分析 208
7.1.1 dex文件 209
7.1.2 資源和so庫文件 210
7.2 APK包構(gòu)建流程 212
7.2.1 編譯和打包流程 213
7.2.2 Gradle任務 216
7.3 包體積優(yōu)化方法論 218
第8章 包體積優(yōu)化實戰(zhàn) 220
8.1 精簡資源 222
8.1.1 刪除無用資源 222
8.1.2 刪除重復圖片 224
8.1.3 混淆文件名 232
8.1.4 使用開源工具 233
8.2 精簡dex文件 233
8.2.1 刪減無用的代碼 233
8.2.2 開啟編譯優(yōu)化 236
8.2.3 dex重排 238
8.2.4 移除行號信息 239
8.3 精簡so庫 244
8.3.1 刪除無用代碼 244
8.3.2 刪除冗余的so文件 245
8.3.3 刪除符號信息 245
8.4 壓縮dex文件 246
8.5 壓縮so庫 249
8.5.1 官方方案壓縮so 249
8.5.2 自定義方案壓縮so 249
8.6 動態(tài)加載資源文件 252
8.6.1 資源加載原理 253
8.6.2 動態(tài)加載資源 260
8.7 動態(tài)加載類文件 262
8.7.1 類加載原理 262
8.7.2 動態(tài)加載類 267
8.8 動態(tài)加載so庫文件 267
8.8.1 so庫加載原理 267
8.8.2 動態(tài)加載so庫 270
8.9 動態(tài)加載四大組件 271
8.9.1 Activity啟動流程 271
8.9.2 啟動攔截 285
8.9.3 方法重定向 290
8.9.4 開源插件化框架 291
第9章 其他優(yōu)化 292
9.1 耗電優(yōu)化 293
9.1.1 耗電統(tǒng)計原理 293
9.1.2 耗電監(jiān)控 301
9.1.3 耗電治理 305
9.2 流量優(yōu)化 306
9.2.1 流量消耗監(jiān)控 306
9.2.2 流量分類 310
9.2.3 流量優(yōu)化 312
9.3 磁盤占用優(yōu)化 313
9.3.1 磁盤監(jiān)控 313
9.3.2 存儲目錄 314
9.3.3 磁盤優(yōu)化 315
9.4 降級優(yōu)化 316
9.4.1 性能指標采集和異常判斷 317
9.4.2 降級任務的添加和調(diào)度 318
9.4.3 降級框架的效果度量 319
9.4.4 方案實現(xiàn) 320
Android性能優(yōu)化之道:從底層原理到一線實踐 作者簡介
現(xiàn)為字節(jié)跳動資深 Android 開發(fā)工程師,負責飛書客戶端性能品質(zhì)優(yōu)化工作。熟悉 Android 和 Linux 系統(tǒng)底層原理,擅長性能優(yōu)化。曾任職于騰訊、阿里巴巴,有豐富的項目性能優(yōu)化和架構(gòu)經(jīng)驗。谷歌開發(fā)者社區(qū)深度參與者(多次進行技術(shù)分享),谷歌認證的國內(nèi)Android方向的GDE(谷歌開發(fā)者專家,目前國內(nèi)僅有12位Android方向的谷歌開發(fā)者專家)之一。
- >
李白與唐代文化
- >
有舍有得是人生
- >
名家?guī)阕x魯迅:故事新編
- >
巴金-再思錄
- >
山海經(jīng)
- >
史學評論
- >
小考拉的故事-套裝共3冊
- >
名家?guī)阕x魯迅:朝花夕拾