《AndroidRuntime源码解析》[97M]百度网盘|pdf下载|亲测有效
《AndroidRuntime源码解析》[97M]百度网盘|pdf下载|亲测有效

AndroidRuntime源码解析 pdf下载

出版社 清华大学出版社京东自营官方旗舰店
出版年 2022-07
页数 390页
装帧 精装
评分 8.6(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供AndroidRuntime源码解析电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

产品特色

内容简介

Android Runtime(ART)作为Android系统的核心组建,是Android应用运行及其效率的基础,了解ART的组成和执行流程,有利于Android应用开发者高效开发Android应用。同时,ART作为一种Java虚拟机,也是广大虚拟机开发者学习和改进的目标,了解ART有助于虚拟机的开发和调优。

本书基于Android 10.0.0_r39源码,分析了ART基础、ART的compiler、ART的启动与运行、ART中的垃圾回收。这些分析旨在为读者搭建ART的基本框架,带领读者一起了解ART的基本情况,为进一步了解ART打下基础。

本书适合想了解ART的App开发者、Android系统优化开发者及虚拟机开发者阅读,也适合高校学生学习虚拟机使用。


作者简介

史宁宁,现任中国科学院软件研究所智能软件研究中心PLCT实验室项目主管。吉林大学计算机学院硕士,2012年起作为核心开发人员和项目经理参与组织开发多个编译器项目。长期坚持撰写技术博客,其中“LLVM每日谈”“方舟编译器学习笔记”等专栏影响较大,曾出版图书两部。目前活跃在OSDT/HelloGCC/HelloLLVM、方舟编译器、RISC-V等开源社区,主要研究内容为Clang/LLVM、JVM等。

目录

第1章ART基础


1.1虚拟机基础


1.2ART发展历史


1.3ART核心架构


1.4源码目录介绍


1.5小结


第2章dex2oat工具介绍


2.1dex2oat入口代码分析


2.2dex2oat的driver分析


2.3dex2oat driver的编译函数


2.4DexToDexCompiler分析


2.5小结


第3章OptimizingCompiler介绍


3.1OptimizingCompiler类的JNI处理


3.2OptimizingCompiler:: Compile()


3.3HGraph的构建


3.3.1构建基于基本代码块的CFG


3.3.2构建支配树


3.3.3构建SSA


3.4优化


3.5寄存器分配


3.5.1PrepareForRegisterAllocation


3.5.2SsaLivenessAnalysis


3.5.3RegisterAllocator


3.6代码生成


3.7OptimizingCompiler总结


3.8小结


第4章OptimizingCompiler优化算法分析


4.1优化算法框架


4.2常量折叠


4.3指令简化


4.4死代码优化


4.5循环体优化


4.6指令下沉


4.7硬件平台相关优化pass及其实现


4.8小结


第5章ART启动分析


5.1ART启动中的虚拟机启动一


5.2ART启动中的虚拟机启动二


5.3ART启动中的JIT编译器的创建


5.4ART启动中的Thread处理


5.5ART启动中的运行时本地方法初始化


5.6ART启动中的其他本地方法的注册


5.7Zygote进程


5.7.1System Server进程


5.7.2应用进程


5.8小结


第6章ART的执行


6.1ART运行基本流程


6.2Zygote进程调用应用程序


6.2.1Zygote.forkAndSpecialize


6.2.2ZygoteConnection.handleChildProc


6.3类的查找与定义


6.4方法的加载和链接


6.5方法的执行


6.6小结


第7章ART GC实现


7.1GC的基本内容


7.2ART GC回收方案介绍


7.3ART GC回收器的实现


7.3.1回收器的类型


7.3.2不同类型回收器的实现


7.4ART GC的分配器实现


7.4.1分配器与空间类


7.4.2分配器与回收器


7.5ART GC的使用流程


7.5.1分配器的使用


7.5.2回收器的使用


7.6小结


参考文献


后记


前言/序言

Android已经成为当前应用最广泛的手机操作系统之一。无论是Android应用开发者,还是Android生态系统开发者,甚至是操作系统设计者,都有熟悉Android Runtime(ART)的需求。

本书从一个编译器开发者的视角,带领读者在ART的世界里遨游,和大家一起了解ART的各部分及其主要流程。

在本书的编写过程中,力图将ART的整体架构梳理清楚,包括在介绍其中的模块时,也是将架构介绍清楚作为第一目标,尽量避免太多细节内容。代码总在不断地更新,但是模块架构和整体架构不会变更得那么频繁。掌握好架构,既可以快速地了解ART的整体情况,也有利于自己根据需要对某些模块进行深入研究。同时,为了让读者能熟悉最新的代码,本书选用了Android 10.0.0_r39的代码,读者可以采用该版本的代码对照本书进行学习。

本书的内容分为4部分。第1部分包括第1章,主要对ART的基础进行介绍; 第2部分包括第2~4章,主要介绍ART中的compiler部分,包括dex2oat工具,属于编译时阶段; 第3部分包括第5、6章,主要介绍ART的启动及运行,属于运行时阶段; 第4部分包括第7章,主要介绍ART中的垃圾回收部分。读者阅读本书的时候,可以按照顺序从头至尾阅读,也可以根据需要直接选择其中某一部分内容进行阅读,并不会影响对相关内容的理解。

各章的内容分别如下: 第1章从虚拟机基础、ART发展历史、ART核心架构和源码目录结构等方面,介绍ART基础; 第2章介绍dex2oat工具的入口、driver及DexToDexCompiler等; 第3章对OptimizingCompiler中的JNI处理、Compile过程进行分析,并对Compile过程中的主要环节一一展开进行介绍; 第4章对OptimizingCompiler中与硬件平台无关和与硬件平台相关的优化进行介绍,并选取与硬件平台无关优化中的一些典型优化进行深入分析; 第5章分析ART在启动时的几个主要流程; 第6章对ART在执行时的主要流程进行分析; 第7章对ART GC的整体架构、种类及具体实现进行分析。

相对于ART的庞大内容,本书所介绍的内容并不能完全覆盖所有内容,读者在阅读本书时应注意结合源码,从源码中获取更多的细节内容。

由于作者水平有限,书中难免存在疏漏,敬请读者批评指正。




本书配套代码




史宁宁2022年5月