深入理解Android:Java虚拟机ART
从源码角度深度剖析Android Java虚拟机ART架构、设计和实现原理,深刻揭示JVM工作流程与机制
- 定价:¥169.00
- 校园优惠价:¥106.47 (63折) (马上了解)
- 评分:
(已有0条评价)
- 电子书:深入理解Android:Java虚拟机ART
- 促销活动:
- 我要买:
基本信息


【插图】

编辑推荐
经典畅销书系“深入理解Android”系列又一重磅巨著
从源码角度深度剖析Android Java虚拟机ART架构、设计和实现原理,深刻揭示JVM工作流程与机制
内容简介
计算机书籍
内容介绍
这是一部从源代码角度分析和讲解Android虚拟机ART的鸿篇巨著,核心内容和价值体现在3个方面:
第一,细致、深入地分析了ART虚拟机的架构、设计与实现原理,能让读者对ART虚拟机有透彻了解;
第二,能让Andriod系统工程师和应用工程师从底层了解整个Android系统的运行机理,从而写出更高质量的应用;
第三,Java虚拟机是一个“庞然大物”,学习和理解的门槛较高,ART是迄今应用最为广泛的JVM实现,本书为读者学习JVM提供了独特的视角和更为容易的路径。
全书共14章:
第1章介绍了在学习ART虚拟机前需要准备的工具和环境,以及本书的内容结构和阅读注意事项,建议仔细读和反复读;
第2~4章详细讲解了Class文件、dex文件和ELF文件的格式和内容,理解Class文件是学习JVM的第一步,dex和ELF者是学习Dalvik虚拟机和ART虚拟机的的前提和基础;
第5章详细讲解了ART虚拟机的实现语言C++11,是阅读ART源代码必备的知识;
第6~8章详细讲解了ART虚拟机中与编译和Runtime相关的大量知识,这是虚拟机的核心和难点;
第9章详细讲解了dex字节码转机器码的核心进程dex2oat以及.oat和.art的文件格式;
第10~11章详细讲解了虚拟机的解释执行、JIT部分以及异常的投递和处理的过程,以及JNI在ART虚拟机中的实现。
第12~14章详细讲解了虚拟机中Java线程的执行、内存分配和释放、垃圾回收的原理与实现。
本书是经典丛书“深入理解Android”系列的第8本,继承了该系列图书严谨、细致、深入、编排考究的优点,相信所有Android工程师和Java工程师都能从中受益。
目录
前言
第1章 本书必读1
1.1 概述1
1.2 准备环境和工具2
1.2.1 准备源代码2
1.2.2 准备Source Insight2
1.2.3 准备模拟器和自制系统镜像5
1.2.4 小结8
1.3 本书的内容9
1.4 本书资源下载说明12
第2章 深入理解Class文件格式13
2.1 Class文件格式总览13
2.2 常量池及相关内容14
2.2.1 常量项的类型和关系14
2.2.2 信息描述规则18
2.2.3 常量池实例剖析19
2.3 field_info和method_info19
2.4 access_flags介绍21
2.5 属性介绍22
前言
本书是笔者“深入理解Android”系列的第四本。本书将关注Android系统中至关重要的部分—Java虚拟机ART。市面上介绍Java虚拟机的书籍非常多,但鲜少有书籍能从虚拟机源代码出发对其进行详细分析。随着Android设备的大规模普及,ART虚拟机已经成为当今使用最为广泛的JVM之一。所以,对ART虚拟机进行研究有着非同寻常的意义。本书的出现在一定程度上填补了这方面的空白。
本书的主要内容概述如下:
第1章介绍ART虚拟机学习前需要准备好的工具、环境等。
第2章介绍Class文件的格式及内容。
第3章介绍Android中Dex文件的格式。
第4章介绍ELF文件格式。
第5章介绍C++11相关的、能帮助读者阅读ART源码的必备知识。
第6章以编译原理为基础,介绍ART虚拟机编译相关的知识。
第7章以ART Runtime对象的创建为主线,介绍主要的模块及一些关键类、数据结构等知识。
第8章以ART Runtime的Start为主线进行分析,覆盖的内容包括相关模块的启动、类的解析、加载、链接、初始化等。
第9章介绍dex字节码转机器码的核心进程dex2oat以及.oat和.art文件格式。
第10章介绍虚拟机的解释执行和JIT部分以及异常的投递和处理的过程。
第11章介绍JNI在ART虚拟机的实现。
第12章介绍虚拟机Java线程执行相关的知识,包括线程暂停和恢复运行、synchronized、Object wait/notify的实现、volatile变量的读写处理等。
第13章介绍内存分配和释放相关的知识。包括ART虚拟机中的各种Space类型、new指令的实现以及ART虚拟机中Heap模块的部分内容。
第14章介绍和垃圾回收有关的基础知识以及相关垃圾回收器,还有Java Reference的处理以及Heap模块的部分内容。
本书通过理论和代码相结合的方式进行讲解,旨在引领读者一步步了解Android系统中JVM的工作原理。
读者对象
Android系统开发工程师
媒体评论
—— 毛斌民生银行总行信息科技部副总经理
从2011年至今,凡平对整个Android系统的源代码进行了反复阅读和剖析,代码多达百万行,在此基础上出版专著4本,对Android领域的贡献巨大。这次,他向Android Java虚拟机ART发起挑战,历时近3年,完成了这部近1000页的巨著,一如既往地保持了过去的高水准!
—— 周志明远光软件研究院院长、《深入理解Java虚拟机》《智慧的疆界》作者
我在研发Android热修复框架时遇到方法调用地址错乱、类型转换错误、补丁不生效等很多疑难杂症,解决这些难题需要对底层虚拟机有深入了解,但苦于相关资料匮乏,一直有很多困惑没有解开。本书对Android ART虚拟机源码进行分析,对混合编译器dex2oat、解释器、JIT、多线程管理以及垃圾回收等虚拟机核心技术进行了深入讲解,读完后令我豁然开朗,知其所以然。
—— 赵旭阳滴滴出行资深研发工程师/滴滴Android热修复负责人/本书审稿专家
性能监控方面的数据采集、分析需要了解底层原理,比如oat的文件结构、Java方法的执行、JIT的原理和触发时机、线程如何切换状态、异常信号处理、堆和栈产生OOM的原理、GC触发时机和几种GC模式的执行原理、内存的分配和管理、异常的投递等,这些都是我们在做性能优化的过程中持续关注的地方。之前只关注了Java虚拟机的局部内容,本书做了一个完整的解析,可以帮助我们掌握JVM的执行原理,了解问题的本质。
—— 孙鹏飞滴滴出行资深研发工程师/本书审稿专家
本书通过源码深入和系统地分析了Android Java虚拟机ART的Class文件、dex文件、 dex2oat、JIT、多线程同步、内存分配和回收等关键组件的实现原理。内容翔实、重点突出,大幅降低了学习ART的难度。我在工作中遇到的ART的疑难问题都能在本书中找到答案。应用开发工程师深入理解后,可以开发出更加高质量、高性能和高稳定性的应用;系统工程师阅读后,可以优化ART虚拟机并且解决它的稳定性修复等疑难问题。
—— 钟长庚高通无线半导体技术有限公司资深工程师/本书审稿专家