深入理解Android:Java虚拟机ART

深入理解Android:Java虚拟机ART

作者:邓凡平

出版社:机械工业

出版年:2019年3月

ISBN:9787111621225

所属分类:经济金融

书刊介绍

《深入理解Android:Java虚拟机ART》内容简介

本书是笔者“深入理解Android”系列的第四本。本书将关注Android系统中至关重要的部分——Java虚拟机ART。随着Android设备的大规模普及,ART虚拟机已经成为当今使用最为广泛的JVM之一。所以,对ART虚拟机进行研究有着非同寻常的意义。本书的出现在一定程度上填补了这方面的空白。
本书核心内容:(1).class、.dex和ELF文件格式介绍、阅读源码所需的C++11基础知识。(2)以编译原理为基础,介绍ART虚拟机编译相关的知识。(3)以ARTRuntime对象的创建为主线,介绍主要的模块及一些关键类、数据结构等知识。(4)ART虚拟机中类的解析、加载、链接、初始化等。(5)dex字节码转机器码的核心进程dex2oat以及.oat和.art文件格式。(6)ART虚拟机的解释执行、JIT和JNI等知识。(7)Java线程执行相关的知识,包括线程暂停和恢复运行、synchronized、Objectwait/notify的实现、volatile变量的读写处理等。(8)内存分配和释放相关的知识。(9)和垃圾回收有关的基础知识,相关垃圾回收器的代码实现、JavaReference的处理等。
邓凡平著。

作品目录

前言
第1章:本书必读
1.1、概述
1.2、准备环境和工具
1.3、本书的内容
1.4、本书资源下载说明
第2章:深入理解Class文件格式
2.1、Class文件格式总览
2.2、常量池及相关内容
2.3、field_info和method_info
2.4、access_flags介绍
2.5、属性介绍
2.6、Java指令码介绍
2.7、学习路线推荐
2.8、参考资料
第3章:深入理解Dex文件格式
3.1、Dex文件格式总览
3.2、认识Dex文件
3.3、Dex指令码介绍
3.4、学习路线推荐
3.5、参考资料
第4章:深入理解ELF文件格式
4.1、概述
4.2、ELF文件格式介绍
4.3、学习路线推荐
4.4、参考资料
第5章:认识C++11、5.1、数据类型
5.2、C++源码构成及编译
5.3、Class介绍
5.4、操作符重载
5.5、函数模板与类模板
5.6、lambda表达式
5.7、STL介绍
5.8、其他常用知识
5.9、参考资料
第6章:编译dex字节码为机器码
6.1、编译器全貌介绍
6.2、编译器前端介绍
6.3、优化器介绍
6.4、ART中的IR—HInstruction
6.5、寄存器分配
6.6、机器码生成相关代码介绍
6.7、总结
6.8、参考资料
第7章:虚拟机的创建
7.1、概述
7.2、Runtime
Create介绍
7.3、MemMap与OatFileManager
7.4、FaultManager介绍
7.5、Thread介绍
7.6、Heap学习之一
7.7、JavaVMExt和JNIEnvExt
7.8、ClassLinker
7.9、总结和阅读指导
第8章:虚拟机的启动
8.1、Runtime
Start
8.2、初识JNI
8.3、Jit
LoadCompilerLibrary
8.4、Runtime
InitNativeMethods
8.5、Thread相关
8.6、Runtime
CreateSystemClassLoader
8.7、类的加载、链接和初始化
8.8、虚拟机创建和启动关键内容梳理
第9章:深入理解dex2oat
9.1、概述
9.2、ParseArgs介绍
9.3、OpenFile介绍
9.4、Setup介绍
9.5、CompileImage
9.6、OAT和ART文件格式介绍
9.7、总结
第10章:解释执行和JIT
10.1、基础知识
10.2、解释执行
10.3、ART中的JIT
10.4、HDeoptimize的处理
10.5、Instrumentation介绍
10.6、异常投递和处理
10.7、总结
第11章:ART中的JNI
11.1、JavaVM和JNIEnv
11.2、Java
native方法的调用
11.3、CallStaticVoidMethod
11.4、JNI中引用型对象的管理
11.5、总结
第12章:CheckPoints、线程同步及信号处理
12.1、CheckPoints介绍
12.2、ThreadList和ThreadState
12.3、线程同步相关知识
12.4、volatile成员的读写
12.5、信号处理
12.6、总结
第13章:内存分配与释放
13.1、Space等关键类介绍
13.2、ZygoteSpace
13.3、BumpPointerSpace和RegionSpace
13.4、DlMallocSpace和RosAllocSpace
13.5、LargeObjectMapSpace
13.6、new-instance/array指令的处理
13.7、细观Space
13.8、Heap学习之二
13.9、总结
第14章:ART中的GC
14.1、GC基础知识
14.2、Runtime
VisitRoots
14.3、ART
GC概览
14.4、MarkSweep
14.5、ConcurrentCopying
14.6、MarkCompact
14.7、SemiSpace
14.8、Java
Reference对象的处理
14.9、Heap学习之三
14.10、总结
14.11、参考资料

相关推荐

微信二维码