前面讲的参数中,有一项是--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都不用。