注重体验与质量的电子书资源下载网站
分类于: 编程语言 计算机基础
简介
深入理解Android:Java虚拟机ART 豆 0.0分
资源最后更新于 2020-03-29 04:08:21
作者:邓凡平
出版社:出版社机械工业出版社
出版日期:2019-03
ISBN:9787111621225
文件格式: pdf
简介· · · · · ·
本书是笔者“深入理解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 参考资料