注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)Android性能優(yōu)化之道:從底層原理到一線實(shí)踐

Android性能優(yōu)化之道:從底層原理到一線實(shí)踐

Android性能優(yōu)化之道:從底層原理到一線實(shí)踐

定 價(jià):¥99.00

作 者: 趙子健
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買這本書可以去


ISBN: 9787111773900 出版時(shí)間: 2025-02-01 包裝: 平裝-膠訂
開本: 16開 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  這是一本深度解讀Android性能優(yōu)化底層原理并給出可落地的一線實(shí)踐指導(dǎo)的專業(yè)技術(shù)書。書中不僅原理講解透徹,而且會(huì)給出很多基于讀者實(shí)際工作成績(jī)的實(shí)戰(zhàn)案例。本書共分為11章,其中第1章總體介紹Android性能優(yōu)化的背景、本質(zhì)、方法論和落地方向,第2~10章從原理和實(shí)戰(zhàn)兩個(gè)層面分別對(duì)內(nèi)存優(yōu)化、速度優(yōu)化、穩(wěn)定性優(yōu)化、包體積優(yōu)化及其他優(yōu)化進(jìn)行解讀。最后一章是作者多年優(yōu)化從業(yè)經(jīng)驗(yàn)的總結(jié)。

作者簡(jiǎn)介

  現(xiàn)為字節(jié)跳動(dòng)資深 Android 開發(fā)工程師,負(fù)責(zé)飛書客戶端性能品質(zhì)優(yōu)化工作。熟悉 Android 和 Linux 系統(tǒng)底層原理,擅長(zhǎng)性能優(yōu)化。曾任職于騰訊、阿里巴巴,有豐富的項(xiàng)目性能優(yōu)化和架構(gòu)經(jīng)驗(yàn)。谷歌開發(fā)者社區(qū)深度參與者(多次進(jìn)行技術(shù)分享),谷歌認(rèn)證的國(guó)內(nèi)Android方向的GDE(谷歌開發(fā)者專家,目前國(guó)內(nèi)僅有12位Android方向的谷歌開發(fā)者專家)之一。

圖書目錄

目  錄?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)存申請(qǐng)和釋放 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í)清理數(shù)據(jù) 26
1.3.2 減少數(shù)據(jù)的加載 27
1.3.3 增加內(nèi)存大小 29
第2章 內(nèi)存優(yōu)化實(shí)戰(zhàn) 30
2.1 Java內(nèi)存泄漏檢測(cè) 31
2.1.1 手動(dòng)分析 31
2.1.2 自動(dòng)分析 36
2.2 Native內(nèi)存泄漏檢測(cè) 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 減小線程默認(rèn)的棧
空間大小 70
2.5 默認(rèn)webview內(nèi)存釋放 72
2.5.1 通過(guò)maps文件尋找地址 73
2.5.2 通過(guò)系統(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 任務(wù)調(diào)度 86
3.3.1 進(jìn)程與線程的狀態(tài) 87
3.3.2 進(jìn)程調(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 提升任務(wù)調(diào)度效率 92
第4章 速度與流暢性優(yōu)化實(shí)戰(zhàn) 93
4.1 充分利用CPU閑置時(shí)刻 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)先級(jí) 133
4.7.1 調(diào)整線程優(yōu)先級(jí)的方式 134
4.7.2 需要調(diào)整優(yōu)先級(jí)的線程 135
4.8 線程池優(yōu)化 137
4.8.1 默認(rèn)的線程池創(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)化實(shí)戰(zhàn) 176
6.1 Native Crash監(jiān)控方案 177
6.1.1 異常信號(hào)捕獲 177
6.1.2 獲取Native堆?!?78
6.1.3 使用開源庫(kù) 182
6.2 ANR監(jiān)控方案 188
6.2.1 信號(hào)捕獲檢測(cè)方案 188
6.2.2 AMS接口檢測(cè)方案 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ù)檢測(cè)方法 206
6.6.2 主線程方法插樁 207
第7章 包體積優(yōu)化原理 208
7.1 APK組成分析 208
7.1.1 dex文件 209
7.1.2 資源和so庫(kù)文件 210
7.2 APK包構(gòu)建流程 212
7.2.1 編譯和打包流程 213
7.2.2 Gradle任務(wù) 216
7.3 包體積優(yōu)化方法論 218
第8章 包體積優(yōu)化實(shí)戰(zhàn) 220
8.1 精簡(jiǎn)資源 222
8.1.1 刪除無(wú)用資源 222
8.1.2 刪除重復(fù)圖片 224
8.1.3 混淆文件名 232
8.1.4 使用開源工具 233
8.2 精簡(jiǎn)dex文件 233
8.2.1 刪減無(wú)用的代碼 233
8.2.2 開啟編譯優(yōu)化 236
8.2.3 dex重排 238
8.2.4 移除行號(hào)信息 239
8.3 精簡(jiǎn)so庫(kù) 244
8.3.1 刪除無(wú)用代碼 244
8.3.2 刪除冗余的so文件 245
8.3.3 刪除符號(hào)信息 245
8.4 壓縮dex文件 246
8.5 壓縮so庫(kù) 249
8.5.1 官方方案壓縮so 249
8.5.2 自定義方案壓縮so 249
8.6 動(dòng)態(tài)加載資源文件 252
8.6.1 資源加載原理 253
8.6.2 動(dòng)態(tài)加載資源 260
8.7 動(dòng)態(tài)加載類文件 262
8.7.1 類加載原理 262
8.7.2 動(dòng)態(tài)加載類 267
8.8 動(dòng)態(tài)加載so庫(kù)文件 267
8.8.1 so庫(kù)加載原理 267
8.8.2 動(dòng)態(tài)加載so庫(kù) 270
8.9 動(dòng)態(tài)加載四大組件 271
8.9.1 Activity啟動(dòng)流程 271
8.9.2 啟動(dòng)攔截 285
8.9.3 方法重定向 290
8.9.4 開源插件化框架 291
第9章 其他優(yōu)化 292
9.1 耗電優(yōu)化 293
9.1.1 耗電統(tǒng)計(jì)原理 293
9.1.2 耗電監(jiān)控 301
9.1.3 耗電治理 305
9.2 流量?jī)?yōu)化 306
9.2.1 流量消耗監(jiān)控 306
9.2.2 流量分類 310
9.2.3 流量?jī)?yōu)化 312
9.3 磁盤占用優(yōu)化 313
9.3.1 磁盤監(jiān)控 313
9.3.2 存儲(chǔ)目錄 314
9.3.3 磁盤優(yōu)化 315
9.4 降級(jí)優(yōu)化 316
9.4.1 性能指標(biāo)采集和異常判斷 317
9.4.2 降級(jí)任務(wù)的添加和調(diào)度 318
9.4.3 降級(jí)框架的效果度量 319
9.4.4 方案實(shí)現(xiàn) 320

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.stefanvlieger.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)