📜  Android中Dalvik和ART的区别(1)

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

Android中Dalvik和ART的区别

在Android系统中,Dalvik和ART都是用于执行应用程序的虚拟机。下面将详细介绍他们之间的区别。

1. Dalvik虚拟机

Dalvik虚拟机是Android早期版本中使用的虚拟机。Dalvik使用JIT(Just In Time)编译技术,在应用程序运行时将字节码转换为机器码执行。它是基于寄存器而不是基于栈的虚拟机,这使得其在处理高密度代码时具有更好的性能。

但是,由于Dalvik需要在运行时编译字节码,使得应用程序的启动时间比较长,并且占用的内存较多,这在Android的移动设备上是一项不小的挑战。此外,Dalvik在执行大型应用程序时效率较低。

2. ART虚拟机

ART虚拟机是从Android 5.0开始推出的。与Dalvik不同,ART使用AOT(Ahead Of Time)编译技术,在应用程序安装时将字节码转换为机器码,存储在设备上,以便它可以在运行时更快地加载和执行。

相比之下,ART可以提供显著的提高应用程序启动时间的优势,同时减少对设备资源的占用。同时,由于ART在应用程序安装时就已经编译了代码,所以其在执行大型应用程序时的效率也比Dalvik表现更好。

3. 对比
  • 启动时间:Dalvik需要在应用程序启动时编译字节码,而ART在应用程序安装时将其编译成机器码,因此ART的启动时间更短。
  • 性能表现:由于ART在应用程序安装时已经编译代码,因此在执行大型应用程序时具有更高的效率和更少的内存占用。
  • 内存占用:Dalvik需要在运行时编译字节码,所以它通常比ART占用更多的内存。
  • 兼容性:由于ART是从Android 5.0开始引入的,它无法在较早版本的Android设备上运行,而Dalvik在这些设备上可以运行。

综上所述,ART虚拟机在Android中比Dalvik虚拟机表现更优。然而,在Android低版本设备上,无法使用ART虚拟机,此时需要使用Dalvik虚拟机作为兼容解决方案。

# Android中Dalvik和ART的区别

在Android系统中,Dalvik和ART都是用于执行应用程序的虚拟机。下面将详细介绍他们之间的区别。

## 1. Dalvik虚拟机

Dalvik虚拟机是Android早期版本中使用的虚拟机。Dalvik使用JIT(Just In Time)编译技术,在应用程序运行时将字节码转换为机器码执行。它是基于寄存器而不是基于栈的虚拟机,这使得其在处理高密度代码时具有更好的性能。

但是,由于Dalvik需要在运行时编译字节码,使得应用程序的启动时间比较长,并且占用的内存较多,这在Android的移动设备上是一项不小的挑战。此外,Dalvik在执行大型应用程序时效率较低。

## 2. ART虚拟机

ART虚拟机是从Android 5.0开始推出的。与Dalvik不同,ART使用AOT(Ahead Of Time)编译技术,在应用程序安装时将字节码转换为机器码,存储在设备上,以便它可以在运行时更快地加载和执行。

相比之下,ART可以提供显著的提高应用程序启动时间的优势,同时减少对设备资源的占用。同时,由于ART在应用程序安装时就已经编译了代码,所以其在执行大型应用程序时的效率也比Dalvik表现更好。

## 3. 对比

- 启动时间:Dalvik需要在应用程序启动时编译字节码,而ART在应用程序安装时将其编译成机器码,因此ART的启动时间更短。
- 性能表现:由于ART在应用程序安装时已经编译代码,因此在执行大型应用程序时具有更高的效率和更少的内存占用。
- 内存占用:Dalvik需要在运行时编译字节码,所以它通常比ART占用更多的内存。
- 兼容性:由于ART是从Android 5.0开始引入的,它无法在较早版本的Android设备上运行,而Dalvik在这些设备上可以运行。

综上所述,ART虚拟机在Android中比Dalvik虚拟机表现更优。然而,在Android低版本设备上,无法使用ART虚拟机,此时需要使用Dalvik虚拟机作为兼容解决方案。