返回

Android虚拟机:Dalvik vs ART

Android

Android系统一直以来都依赖于虚拟机(VM)来执行应用程序,而Dalvik和ART是Android设备上使用的两种主要虚拟机。这两种虚拟机在设计和实现上存在显着差异,从而影响了Android应用程序的性能和用户体验。

Dalvik虚拟机:Android的原始VM

Dalvik虚拟机(DVM)是为Android平台专门开发的,于Android 1.0中首次引入。DVM是一个基于寄存器的虚拟机,旨在优化内存使用和执行速度。它采用了一种称为“字节码解释”的技术,其中应用程序代码在运行时被转换成机器指令。

Dalvik虚拟机的主要特点:

  • 字节码解释: DVM解释字节码,这是一种比本机代码更高层的指令集。
  • 基于寄存器: DVM使用寄存器而不是堆栈来存储数据,这可以提高执行速度。
  • 多DEX文件: DVM支持多个DEX(Dalvik可执行文件)文件,这可以提高应用程序的模块化和加载时间。
  • 垃圾回收: DVM使用垃圾回收器来管理内存,这有助于防止内存泄漏。

ART虚拟机:Dalvik的后继者

Android运行时(ART)虚拟机于Android 4.4(KitKat)中首次引入,作为Dalvik虚拟机的后续版本。ART旨在提高应用程序性能和减少启动时间。它采用了一种称为“提前编译(AOT)”的技术,其中应用程序代码在安装时编译成本机代码。

ART虚拟机的主要特点:

  • 提前编译(AOT): ART提前编译字节码成本机代码,这可以显着提高应用程序启动时间和执行速度。
  • 优化: ART可以执行优化,例如内联和代码重写,这可以进一步提高性能。
  • 并发垃圾回收: ART使用并发垃圾回收器,这可以减少垃圾回收造成的停顿时间。
  • 可配置文件: ART支持配置文件,这允许开发人员针对特定设备调整虚拟机设置。

Dalvik与ART的比较

下表总结了Dalvik和ART虚拟机的主要区别:

特性 Dalvik ART
编译技术 字节码解释 提前编译(AOT)
速度 较慢 更快
启动时间 较长 更短
内存使用 更低 更高
优化 基本 高级
Android版本 Android 1.0-4.3 Android 4.4及更高版本

结论

Dalvik和ART虚拟机在Android应用程序的性能和用户体验中发挥着至关重要的作用。Dalvik虚拟机在Android的早期发展阶段发挥了重要作用,但ART虚拟机提供了更好的性能和更快的启动时间。随着Android平台的不断发展,ART虚拟机有望继续成为Android应用程序执行的领先虚拟机。