《Android Dalvik虚拟机结构及机制剖析 Dalvik虚拟机各模块机制分析 第2卷》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:吴艳霞,张国印编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302361084
  • 页数:164 页
图书介绍:本书在第1卷的基础上,采用情景分析的方式对Android Dalvik虚拟机的源代码进行了有针对性的分析,围绕类加载、解释器、即时编译、本地方法调用、内存管理及反射机制等功能模块展开分析,主要帮助读者从微观上更深入地理解Dalvik虚拟机中各功能模块的实现原理及运行机制。

第1章 类加载模块的原理及实现 1

1.1 类加载机制概述 1

1.2 类加载机制整体工作流程介绍 2

1.3 Dex文件的优化与验证 3

1.3.1 Dex文件优化验证的原理与实现 3

1.3.2 Odex文件结构分析 4

1.3.3 函数执行流程 6

1.4 Dex文件的解析 12

1.4.1 DexFile数据结构简析 12

1.4.2 Dex文件解析流程概述 13

1.4.3 函数执行流程 14

1.5 运行时环境数据加载 20

1.5.1 ClassObject数据结构简析 21

1.5.2 类加载整体流程概述 23

1.5.3 函数执行流程 24

1.6 类加载机制与解释器交互示例 31

小结 33

第2章 内存管理的原理及实现 34

2.1 内存管理初探 34

2.2 内存分配过程分析 36

2.2.1 关键数据结构 36

2.2.2 关键函数 37

2.2.3 内存分配流程 44

2.3 垃圾回收过程分析 46

2.3.1 垃圾收集算法 46

2.3.2 关键数据结构 48

2.3.3 关键函数 49

2.3.4 垃圾回收流程 53

小结 54

第3章 JNI模块的原理及实现 55

3.1 何时使用JNI 55

3.2 JNI编程示例 56

3.2.1 加载动态链接库 56

3.2.2 声明本地函数 56

3.2.3 实现本地函数 56

3.2.4 实现JNI Onload函数 59

3.3 JNI机制环境的建立 60

3.3.1 AndroidRuntime类的start方法 61

3.3.2 JNI_CreateJavaVM()函数 63

3.4 Java调用C执行流程分析 67

3.4.1 解释器栈帧结构体 67

3.4.2 关键函数 69

3.4.3 Java调用C执行流程 76

3.5 C调用Java执行流程分析 78

3.5.1 本地调用接口函数结构体 78

3.5.2 关键函数 79

3.5.3 C调用Java执行流程 85

小结 87

第4章 反射机制模块的原理及实现 88

4.1 概述 88

4.2 反射机制实现代码示例 89

4.3 反射机制API分析 92

4.3.1 反射机制API分析概述 92

4.3.2 代理模式API分析 94

4.3.3 元数据注释机制API分析 94

4.4 反射机制的“三层”实现体系 95

4.4.1 类反射机制在Dalvik虚拟机内部的实现 95

4.4.2 三层结构实例展示 96

4.5 反射机制实现分析 97

4.5.1 Class类详细分析 97

4.5.2 Constructor类详细分析 101

4.5.3 Method类详细分析 102

4.5.4 Field类详细分析 102

4.5.5 反射机制对Proxy类和Annotation类功能上的支持 104

4.5.6 核心函数详细分析 104

4.6 模块内部函数调用关系 113

4.6.1 反射机制本地方法接口对反射机制实际执行函数的调用 113

4.6.2 反射机制实际执行函数内部对各个功能点函数的调用 113

小结 115

第5章 解释器模块的原理及实现 116

5.1 概述 116

5.2 解释器执行原理 116

5.3 Portable解释器实现分析 118

5.3.1 字节码解析原理 118

5.3.2 字节码指令解释流程 121

5.3.3 一个解释程序的例子 123

5.4 Fast解释器C实现分析 126

5.4.1 字节码解析原理 126

5.4.2 字节码指令解释流程 127

5.5 Fast解释器汇编实现分析 129

5.5.1 字节码解析原理 129

5.5.2 字节码解析流程 131

5.5.3 一个解释程序的例子 136

5.6 解释器的模块化设计 137

小结 140

第6章 即时编译模块的原理及实现 141

6.1 概述 141

6.2 JIT分类 142

6.2.1 Method-based JIT 142

6.2.2 Trace-based JIT 142

6.3 整体框架分析 143

6.4 前端功能及原理分析 149

6.4.1 构造基本块 150

6.4.2 确定控制流关系 153

6.4.3 识别及筛选循环 155

6.4.4 SSA形式转换 158

6.5 后端功能及原理分析 160

6.5.1 MIR转换为LIR 161

6.5.2 LIR转换为机器码 163

小结 164