30

我们知道 Dalvik 使用 APK、DEX 和 ODEX 文件。我们通过 AOSP 源或开发者网站知道这个缩写的意思。

(像这样 - https://source.android.com/devices/tech/dalvik/dex-format.html

  • DEX 表示 Dalvik 可执行文件。
  • ODEX 表示优化的 Dalvik EXcutable 文件。
  • APK 表示 Android 包。

ART (Android RunTime) 使用 OAT 和 ART,但它们并没有在任何地方解释其含义。

有谁知道这些缩写词的含义?

4

6 回答 6

62

It's Of A head Time,愚蠢的重新排序A head Of Time。我们之所以这样做,是因为我们说将文件转换为文件的过程将被称为quakerizing,这真的很有趣。.dex.oat

于 2017-05-03T03:16:26.090 回答
19

OAT 是通过提前编译 (AOT) 编译 DEX 文件生成的文件格式。

在 AOT 来到 Android 之前,dexopt用于将 DEX 优化为 ODEX(优化的 DEX),其中包含优化后的字节码

使用 AOT,dex2oat用于优化和编译 DEX 为 OAT 文件,该文件可能包含ELF 格式的机器代码

参考:https ://stackoverflow.com/a/26263071/2872712

于 2016-01-06T00:16:46.063 回答
2

即使这些文件格式可以使用一段时间,仍然没有关于含义的解释(至少我没有找到)。所以对我自己来说,我想出了下一个含义:

.art - 代表 AndroidRunTime(第 12 页上指出该格式是专有的,并且由 ART 中的“仅一个文件”使用,所以这就是我这样认为的原因)

.oat - 找到至少三个解释,其中最好的恕我直言是“优化android文件类型”(这个想法来自这里)。

我拥有的 .oat 的其他可能变体是:“优化的应用程序文件类型”或只是简单的 AOT->OAT (因为 .oat 是从提前编译过程中产生的)。

于 2017-01-26T22:19:21.427 回答
2

Asdexopt产生 ODEX - O ptimized D alvik EX ecutable,其中包含优化的字节码,dex2oat产生 OAT,我猜它应该代表O ptimized A head of Time 。

于 2017-05-11T06:58:28.800 回答
0

一些搜索找到了这个页面,上面写着:

OAT 文件扩展名与为各种便携式设备上使用的 Google Android 操作系统开发的应用程序相关联。*.oat 文件存储为 Android 4.4 及更高版本中可用的新 Android 运行时 (ART) 设计的应用程序的本机 C++ 代码。

Android RunTime 是旧版本 Android 使用的 Dalvik 进程虚拟机的继承者。

于 2015-02-10T15:50:43.927 回答
-2

阅读了一些 ART 和 Dalvik 之间的比较,我发现AOT指的是Ahead Of Time ,你可以在这里阅读更多关于它的信息

于 2015-02-10T16:06:52.197 回答