应用程序在 odex 而不是 oat 中编译

Applications are compiled in odex instead of oat

如 Google 所述,ART 运行时 (AOT) 应用程序将在 oat format/completely 中以本机代码编译。

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

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

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

谢谢, 维奈

文件 oat 文件,与文件扩展名无关。一种简单的检查方法是查看文件的前几个字节。一个odex文件应该有"dey\n035[=10=]"64 65 0x79 0a 30 33 35 00),而oat文件是elf文件,所以它们应该有7F 45 4C 46

的elf魔法值