天天看点

细说dex2oat(2)

前面讲的参数中,有一项是--boot-image。我们先看一下这个boot-image是如何编出来的,正好是一个完整的dex2oat的例子.

我们看下在mediatek mt6753平台下,是如何生成的。

mt6753是64位cortex-a53的架构,所以boot.art也是64位和32位两套。

先看64位的吧:

初始堆大小和最大堆大小。

预加载类的路径

以上是一大堆的dex文件

以上是上面那一大堆dex对应的jar文件路径

符号表的位置

输出文件有两个:一个是boot.oat,一个是boot.art。

基地址0x70000000

对于指令架构,除了arm64,更细的是cortex-a53

最后这几个前面都说过了。

上面都是java和dex,所以跟64位没有什么区别。

输出文件从arm64目录换到了arm目录

基地址没变,反正patchoat的时候也还要改。

指令集从arm64变成了arm,其它的参数都不变

这两个值在前面分析android.oat.mak时已经分析过了,这里验证了我们的分析是正确的。

这个boot.art就是上一节讲的命令刚刚生成的。

输入的dex文件

输出到odex文件,虽然名字叫odex,但是实际上是个oat。普通的应用就不像上节讲的输出boot.oat和boot.art的时候那样输出那么多了,只有一个odex文件,符号表和image都不用。