第1章 準(zhǔn)備工作
1.1 本章概述
1.1.1 什么是Dalvik虛擬機(jī)
1.1.2 Dalvik虛擬機(jī)的功能
1.1.3 Dalvik虛擬機(jī)與Java虛擬機(jī)的區(qū)別
1.1.4 Dalvik虛擬機(jī)的特性
1.2 Ubuntu Linux系統(tǒng)安裝
1.3 工作目錄設(shè)置
1.4 下載、編譯和運(yùn)行Android內(nèi)核源代碼
1.4.1 下載Android內(nèi)核源代碼
1.4.2 整體編譯Android源代碼
1.4.3 運(yùn)行Android模擬器
1.5 編譯經(jīng)過修改的Android源碼
1.6 開發(fā)**個Android應(yīng)用程序
小結(jié)
第2章 源碼分析輔助工具
2.1 本章概述
2.2 Vim源碼閱讀環(huán)境搭建
2.3 Doxygen工具
2.4 GDBSERVER工具
小結(jié)
第3章 Dex文件及Dalvik字節(jié)碼格式解析
3.1 本章概述
3.2 Dex文件格式
3.2.1 Dex文件中的數(shù)據(jù)結(jié)構(gòu)
3.2.2 Dex文件結(jié)構(gòu)分析
3.3 Dalvik字節(jié)碼介紹
3.3.1 Dalvik字節(jié)碼總體設(shè)計(jì)
3.3.2 Dalvik字節(jié)碼指令格式
3.4 Odex文件簡介
3.4.1 什么是“優(yōu)化文件”
3.4.2 Odex文件結(jié)構(gòu)
3.4.3 Odex文件加速系統(tǒng)運(yùn)行速度
3.4.4 手機(jī)“減負(fù)”問題再討論
小結(jié)
第4章 系統(tǒng)工具
4.1 本章概述
4.2 dexdump工具
4.2.1 dexdump工具簡介
4.2.2 dexdump工具使用方法
4.3 dexdeps工具
4.3.1 dexdeps工具簡介
4.3.2 dexdeps工具使用方法
4.4 dexlist工具
4.4.1 dexlist工具簡介
4.4.2 dexlist工具使用說明
4.5 dexopt工具
4.5.1 dexopt工具簡介
4.5.2 dexopt工具使用方法
4.6 dvz工具
4.6.1 dvz工具簡介
4.6.2 dvz工具使用方法
小結(jié)
第5章 開發(fā)分析工具
5.1 本章概述
5.2 trace文件分析工具
5.2.1 trace文件分析工具簡介
5.2.2 trace文件分析工具使用方法
5.3 Heap Profile工具
5.3.1 Heap Profile工具簡介
5.3.2 Heap Profile工具使用方法
5.4 DDMS工具
5.4.1 啟動
5.4.2 DDMS原理和特性
5.4.3 DDMS具體功能
5.4.4 進(jìn)程監(jiān)控
5.4.5 使用文件瀏覽器
5.4.6 模擬器控制
5.4.7 應(yīng)用程序日志
小結(jié)
第6章 Dalvik虛擬機(jī)執(zhí)行流程詳解
6.1 本章概述
6.2 Dalvik虛擬機(jī)的入口點(diǎn)介紹
6.2.1 Dalvik虛擬機(jī)在x86平臺運(yùn)行的入口點(diǎn)
6.2.2 Dalvik虛擬機(jī)運(yùn)行在ARM平臺的入口點(diǎn)
6.2.3 Dalvik虛擬機(jī)的初始化
6.3 Zygote進(jìn)程
6.4 Dalvik虛擬機(jī)運(yùn)行應(yīng)用程序過程
6.4.1 apk文件生成
6.4.2 Dalvik虛擬機(jī)運(yùn)行應(yīng)用程序的主要流程
小結(jié)