Android性能優化之道(從底層原理到一線實踐移動開發)

趙子健

  • 出版商: 機械工業
  • 出版日期: 2025-03-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 322
  • ISBN: 711177390X
  • ISBN-13: 9787111773900
  • 相關分類: Android
  • 下單後立即進貨 (約4週~6週)

相關主題

商品描述

本書內容涵蓋內存、速度和流暢性、穩定性、包體積、耗電、磁盤占用、流量、降級這8個方向的性能優化內容。這些內容方向均從原理和實戰兩個維度進行解讀。其中,原理部分直指優化的本質,不僅包括相關基礎知識,還包括性能優化的底層邏輯;實戰部分以指導讀者實操為主要目標,以案例為主要講解形式,深度解讀作者精心總結的各種實戰案例中用到的技術和原理。 本書基於Android 14撰寫,但也會涉及Android 14以外的其他Android版本的源碼。

作者簡介

趙子健 Google開發者專家(GDE)Android方向,擁有10年一線大廠開發經驗。深度參與了飛書、快應用、Lazada等多款知名大型應用的性能優化工作,對覆雜業務場景下的性能調優有豐富的實戰經驗和深入洞見。 熱衷技術分享與傳播,長期活躍於Google DevFest、Google I/O Extended、掘金等技術社區,積極參與各種社區活動,多次受邀進行主題演講和技術分享,深受開發者歡迎。在掘金社區發布的《Android性能優化》小冊,因內容翔實、實用性強,廣受好評。

目錄大綱

前言
引言 如何才能做好性能優化
第1章 內存優化原理
1.1 虛擬內存
1.1.1 為什麽需要虛擬內存
1.1.2 什麽是虛擬內存
1.1.3 ELF文件
1.1.4 虛擬內存申請和釋放
1.1.5 虛擬內存到物理內存
1.2 內存數據的組成
1.2.1 maps文件
1.2.2 Java堆內存
1.2.3 Native內存
1.3 內存優化方法論
1.3.1 及時清理數據
1.3.2 減少數據的加載
1.3.3 增加內存大小
第2章 內存優化實戰
2.1 Java內存泄漏檢測
2.1.1 手動分析
2.1.2 自動分析
2.2 Native內存泄漏檢測
2.2.1 攔截malloc和free函數
2.2.2 獲取Native堆棧
2.2.3 Native堆棧信息還原
2.2.4 開源工具介紹
2.3 Bitmap治理
2.3.1 字節碼操作
2.3.2 超大Bitmap優化
2.3.3 Bitmap泄漏優化
2.4 線程棧優化
2.4.1 線程創建流程
2.4.2 減少線程數量
2.4.3 減小線程默認的棧空間大小
2.5 默認webview內存釋放
2.5.1 通過maps文件尋找地址
2.5.2 通過系統變量尋找地址
第3章 速度與流暢性優化原理
3.1 CPU
3.1.1 CPU的結構
3.1.2 CPU的工作流程
3.1.3 匯編指令
3.2 緩存
3.2.1 緩存的結構
3.2.2 寄存器
3.2.3 高速緩存
3.2.4 主存
3.3 任務調度
3.3.1 進程與線程的狀態
3.3.2 進程調度
3.3.3 協程和線程
3.4 速度與流暢性優化方法論
3.4.1 提升CPU執行效率
3.4.2 提升緩存效率
3.4.3 提升任務調度效率
第4章 速度與流暢性優化實戰
4.1 充分利用CPU閒置時刻
4.1.1 proc文件方案
4.1.2 times函數方案
4.2 減少CPU的等待
4.2.1 鎖等待優化
4.2.2 I/O等待優化
4.3 綁定CPU大核
4.3.1 線程綁核函數
4.3.2 獲取大核序列
4.4 GC抑制
4.4.1 GC的執行流程
4.4.2 抑制GC執行的方案
4.5 緩存策略優化
4.5.1 常用的淘汰策略
4.5.2 LFUCache
4.6 Dex類文件重排序
4.6.1 局部性原理
4.6.2 Redex使用流程
4.7 提升核心線程優先級
4.7.1 調整線程優先級的方式
4.7.2 需要調整優先級的線程
4.8 線程池優化
4.8.1 默認的線程池創建方式
4.8.2 線程池配置解析
4.8.3 線程池類型及創建
4.8.4 線程池監控
第5章 穩定性優化原理
5.1 ANR
5.1.1 ANR的類型
5.1.2 常見的ANR歸因
5.2 Crash
5.2.1 Java Crash
5.2.2 Native Crash
5.3 穩定性優化方法論
第6章 穩定性優化實戰
6.1 Native Crash監控方案
6.1.1 異常信號捕獲
6.1.2 獲取Native堆棧
6.1.3 使用開源庫
6.2 ANR監控方案
6.2.1 信號捕獲檢測方案
6.2.2 AMS接口檢測方案
6.2.3 抓取Trace文件
6.2.4 使用開源框架
6.3 OOM監控方案
6.3.1 Hprof文件結構
6.3.2 Hprof裁剪方案
6.3.3 使用開源框架
6.4 Native Crash分析思路
6.4.1 初步分析
6.4.2 堆棧分析
6.4.3 指令分析
6.5 ANR分析思路
6.5.1 初步分析
6.5.2 性能分析
6.5.3 直接和間接分析
6.6 慢函數監控
6.6.1 慢函數檢測方法
6.6.2 主線程方法插樁
第7章 包體積優化原理
7.1 APK組成分析
7.1.1 dex文件
7.1.2 資源和so庫文件
7.2 APK包構建流程
7.2.1 編譯和打包流程
7.2.2 Gradle任務
7.3 包體積優化方法論
第8章 包體積優化實戰
8.1 精簡資源
8.1.1 刪除無用資源
8.1.2 刪除重覆圖片
8.1.3 混淆文件名
8.1.4 使用開源工具
8.2 精簡dex文件
8.2.1 刪減無用的代碼
8.2.2 開啟編譯優化
8.2.3 dex重排
8.2.4 移除行號信息
8.3 精簡so庫
8.3.1 刪除無用代碼
8.3.2 刪除冗餘的so文件
8.3.3 刪除符號信息
8.4 壓縮dex文件
8.5 壓縮so庫
8.5.1 官方方案壓縮so
8.5.2 自定義方案壓縮so
8.6 動態加載資源文件
8.6.1 資源加載原理
8.6.2 動態加載資源
8.7 動態加載類文件
8.7.1 類加載原理
8.7.2 動態加載類
8.8 動態加載so庫文件
8.8.1 so庫加載原理
8.8.2 動態加載so庫
8.9 動態加載四大組件
8.9.1 Activity啟動流程
8.9.2 啟動攔截
8.9.3 方法重定向
8.9.4 開源插件化框架
第9章 其他優化
9.1 耗電優化
9.1.1 耗電統計原理
9.1.2 耗電監控
9.1.3 耗電治理
9.2 流量優化
9.2.1 流量消耗監控
9.2.2 流量分類
9.2.3 流量優化
9.3 磁盤占用優化
9.3.1 磁盤監控