Android 中的 ART 和 DART 是什么
What is ART and DART in Android
简单地说,什么是 ART(Android 运行-时间)和 Android 中的 DART,我读到了它 here 但我不太了解它重要性和用途。
此外,我在 Whosebug 中搜索了任何相关问题,然后才提出相关问题。
艺术
ART 是新的 Android 运行时。这个想法是用一个名为 dex2oat 的提前设备编译器套件和一个新的应用程序运行时环境取代 Dalvik 虚拟机。因此,如果您安装一个应用程序,它首先会使用 dex2oat 编译器之一编译为本机代码,例如 Quick(5.0、5.1 中的默认值)或 Optimizing(6.0 中的默认值),并存储在所谓的 oat 文件中,这是一个 ELF 共享对象。
执行应用程序时,运行时会将 oat 文件的内容加载到预初始化的应用程序进程中。
AOT 编译的优点是,您可以进行最先进的优化,因为它不会在运行时执行。所以我们得到更快的应用程序,但安装时间更慢。
飞镖
当您向 Android 开发页面提供 link 时,我假设您不是在谈论 DART 语言,而是在谈论 Dalvik 运行时。
Dalvik 是 Android 的字节码解释器(和 JIT 编译器),用于在执行时即时解释和优化应用程序代码。因此,与 AOT 编译相比,可以完成的优化量受到以下事实的限制:较长的优化时间会减慢应用程序的实际执行速度。 Dalvik 在 Android 5 中被 ART 取代。仍然,应用程序的代码存储为 dex 文件,这是 ART 编译器的输入格式。此外,出于调试目的和具有低持久内存的设备,解释器仍然存在,即使它不是默认的并且它可能是一个较轻的版本。
简单地说,什么是 ART(Android 运行-时间)和 Android 中的 DART,我读到了它 here 但我不太了解它重要性和用途。
此外,我在 Whosebug 中搜索了任何相关问题,然后才提出相关问题。
艺术
ART 是新的 Android 运行时。这个想法是用一个名为 dex2oat 的提前设备编译器套件和一个新的应用程序运行时环境取代 Dalvik 虚拟机。因此,如果您安装一个应用程序,它首先会使用 dex2oat 编译器之一编译为本机代码,例如 Quick(5.0、5.1 中的默认值)或 Optimizing(6.0 中的默认值),并存储在所谓的 oat 文件中,这是一个 ELF 共享对象。 执行应用程序时,运行时会将 oat 文件的内容加载到预初始化的应用程序进程中。 AOT 编译的优点是,您可以进行最先进的优化,因为它不会在运行时执行。所以我们得到更快的应用程序,但安装时间更慢。
飞镖
当您向 Android 开发页面提供 link 时,我假设您不是在谈论 DART 语言,而是在谈论 Dalvik 运行时。
Dalvik 是 Android 的字节码解释器(和 JIT 编译器),用于在执行时即时解释和优化应用程序代码。因此,与 AOT 编译相比,可以完成的优化量受到以下事实的限制:较长的优化时间会减慢应用程序的实际执行速度。 Dalvik 在 Android 5 中被 ART 取代。仍然,应用程序的代码存储为 dex 文件,这是 ART 编译器的输入格式。此外,出于调试目的和具有低持久内存的设备,解释器仍然存在,即使它不是默认的并且它可能是一个较轻的版本。