什么是Android中的ART和DART

时间:2015-08-08 03:52:01

标签: android dalvik android-runtime

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

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

1 个答案:

答案 0 :(得分:3)

<强> ART

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

<强> DART

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