应用程序在odex中而不是燕麦中进行编译

Vin*_*rma 2 android compilation dalvik android-runtime

如Google所述,ART运行时(AOT)应用程序将以燕麦格式/完全以本机代码进行编译。

已检查的Nexus 6P设备和系统应用程序具有oat文件夹,但内部odex文件存在。我一直在期待与boot.oat类似的燕麦文件。据我所知,odex只是使用dalopt在dalvik时代使用dexopt工具优化的dex。

安装过程中ART应该使用dex2oat,然后为什么要存储odex文件。

有人可以提供有关此行为的解释吗?

谢谢,Vinay

Jes*_*eke 5

这些文件燕麦文件,与文件扩展名无关。一种简单的检查方法是查看文件的前几个字节。odex文件应具有"dey\n035\0"64 65 0x79 0a 30 33 35 00),而燕麦文件应是elf文件,因此它们应具有elf magic值,7F 45 4C 46