Android ART的运行

Android oat ELF
oatdata:存储dex文件
oatexec:存储翻译成本地机器码的指令
这里写图片描述

details
这里写图片描述

加载oat 文件的过程

这里写图片描述

Utils classes for oatloading
这里写图片描述

查找类/方法/native code过程概述
这里写图片描述

Boot images
boot.art文件包含一些特殊的函数,这些函数会在ART虚拟机初始化image空间的时候,将其地址赋给相应的变量中。这些函数在ART解析函数调用的时候会用到。
Image roots中的元素都很重要。DexCache和Classroot 再后面介绍ART如何启动的时候,在详谈。
通俗的理解,boot.art包含了启动类加载后的类对象,启动时以直接被载入进程空间中。可以缩短ART虚拟机启动时间。
boot.art的img header中指明了boot.oat加载的位置oat begin.只要boot.oat加载到了这里,那么两者算相当于合体了,这样两者之间互有引用的东东,便可以轻而易举的建立联系了。

这里写图片描述

Boot process

这里写图片描述

ClassLinker
这里写图片描述

ART memory layout
这里写图片描述

ART memory usage
这里写图片描述

ART object structure
这里写图片描述

ART object allocation
这里写图片描述

ART object allocation impacted by GC
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值