📜  Dalvik与ART在Android中的区别(1)

📅  最后修改于: 2023-12-03 15:14:35.798000             🧑  作者: Mango

Dalvik与ART在Android中的区别

介绍

Dalvik和ART是Android操作系统中的两种不同的虚拟机(VM)。

Dalvik是Android 4.4及之前版本使用的默认虚拟机,而ART则是自Android 5.0开始成为默认虚拟机。这两种虚拟机在性能、执行方式和应用安装速度等方面有一些重要的区别。

Dalvik虚拟机

Dalvik虚拟机是使用JIT(即时编译器)的方式来执行应用程序。它将DEX(Dalvik Executable)格式的字节码转换为机器码,并在运行时执行。Dalvik使用基于寄存器的指令集,而不是传统的基于栈的指令集。

Dalvik在应用安装时会将DEX字节码转换成为优化的本地代码,并存储在设备的存储器中。然后每次运行应用程序时,Dalvik虚拟机会执行这些优化过的本地代码。

优点:

  • 快速启动应用,因为DEX字节码可以快速转换为本地代码;
  • 占用较少的存储空间,因为应用只需要存储一次优化的本地代码。

缺点:

  • 应用运行时的性能相对较低,因为字节码需要在运行时转换成本地代码;
  • 内存占用相对较高,因为每个应用都需要存储本地代码的副本;
  • 应用包的安装速度相对较慢,因为在安装过程中需要将字节码转换为本地代码。
ART虚拟机

ART虚拟机是使用AOT(预编译器)的方式来执行应用程序。它在应用安装时将DEX字节码转换为机器码,并存储在设备的存储器中。每次运行应用程序时,ART直接执行已经转换好的机器码。

优点:

  • 应用运行时的性能相对较高,因为机器码无需在运行时转换;
  • 内存占用较低,因为不需要存储应用的本地代码;
  • 应用包的安装速度相对较快,因为在安装过程中已经将字节码转换为机器码。

缺点:

  • 首次启动应用时可能比Dalvik虚拟机慢,因为需要在安装时进行预编译;
  • 需要更多存储空间,因为应用需要存储优化过的机器码。
切换到ART

在Android 5.0及之后的版本中,默认使用ART作为虚拟机。如果你的设备运行的是较早版本的Android,你可以通过以下步骤切换到ART:

  1. 进入设备的设置菜单。
  2. 找到“关于手机”或类似的选项。
  3. 找到“软件信息”或类似的选项。
  4. 找到“构建号码”并连续点击7次。
  5. 返回上一级菜单,找到“开发者选项”。
  6. 找到“运行时”或类似的选项。
  7. 选择“ART”作为默认运行时选项。

希望这篇文章对你了解Dalvik和ART的区别有所帮助。