什么是 Android 中的 ART 和 DART

Mar*_*ouk 2 android dalvik android-runtime

简单来说,Android 中的 ART(Android 运行时)和 DART 是什么,我在这里读到了它但我并不真正了解它的重要性和用法。

在我询问之前,我还在 Stackoverflow 中搜索了任何相关问题。

use*_*866 5

艺术

ART 是新的 Android 运行时。这个想法是用一个名为dex2oat的提前设备编译器套件和一个新的应用程序运行时环境替换 Dalvik 虚拟机。因此,如果您安装应用程序,首先使用dex2oat编译器之一将其编译为本机代码,例如 Quick(默认为 5.0、5.1)或 Optimizing(默认为 6.0),并存储在所谓的 oat 文件中,其中是一个 ELF 共享对象。当应用程序执行时,运行时将 oat 文件的内容加载到预初始化的应用程序进程中。AOT 编译的优点是,您可以进行最先进的优化,因为它不在运行时执行。所以我们得到更快的应用程序,但安装时间更慢。

当您提供指向 Android Dev 页面的链接时,我假设您不是在谈论 DART 语言,而是在谈论 Dalvik Runtime。
Dalvik 是 Android 的字节码解释器(和 JIT 编译器),用于在执行时动态解释和优化应用程序代码。因此,与 AOT 编译相比,可以完成的优化量受到较长优化时间会减慢应用程序实际执行速度这一事实的限制。Dalvik 在 Android 5 中被 ART 取代。不过,应用程序的代码仍存储为 dex 文件,这是 ART 编译器的输入格式。此外,出于调试目的和低持久内存的设备,解释器仍然存在,即使它不是默认的并且它可能是一个更轻的版本。