上QQ阅读APP看书,第一时间看更新
1.10.12 Dalvik VM/ART VM
Dalvik虚拟机曾经是Android平台的核心组成部分之一,它是一个由Google开发的轻量级Java虚拟机,用于在Android系统上运行Java应用程序。它是一个基于Java虚拟机规范的虚拟机,但是它的实现和标准的Java虚拟机有很大的不同。它使用一种叫作Dalvik Executable(DEX)的文件格式来存储应用程序的字节码,而不是标准的Java字节码,但是DEX文件可以通过class文件转化而来。它还使用一种叫作Register-based的指令集,而不是标准的Stack-based指令集。Dalvik虚拟机的设计目标是为了在移动设备上运行,因此它能够节省内存和电量,以及提高性能。
在Android发展的早期,Dalvik虚拟机随着Android的成功迅速流行,在Android 2.2中开始提供即时编译器实现,执行性能又有了进一步提高。不过到了Android 4.4时代,支持提前编译(Ahead of Time Compilation,AOT)的ART虚拟机迅速崛起,在当时性能还不算特别强大的移动设备上,提前编译要比即时编译更容易获得高性能,所以在Android 5.0里ART就全面代替了Dalvik虚拟机。