跳到主要内容

Android Dalvik虚拟机和ART虚拟机对比 ?

参考答案:

Android Dalvik虚拟机和ART虚拟机在多个方面存在显著的差异。以下是两者之间的对比:

  1. 设计目的与运行方式
  • Dalvik虚拟机是Android早期版本中使用的虚拟机,设计目的是为了在资源受限的移动设备上执行Java字节码。它采用just-in-time (JIT)编译的方式,即在运行时将字节码转换为本地机器代码。在应用程序安装时,Dalvik将Java字节码转换为.dex(Dalvik Executable)文件格式,并在运行时执行DEX文件中的字节码。
  • ART(Android Runtime)虚拟机则是Android 5.0及以后版本引入的虚拟机。与Dalvik不同,ART在应用程序安装时预先将DEX文件转换为本地机器码,这使得应用程序的运行效率得到了提升。
  1. 内存管理与性能
  • Dalvik虚拟机使用基于寄存器的内存模型,每个线程都有自己的寄存器集,有助于在资源有限的移动设备上更有效地管理内存。然而,由于其JIT编译方式,部分字节码在每次运行时都需要转换为机器码,这可能会降低应用程序的运行效率。
  • ART虚拟机在内存管理和性能方面进行了优化。由于它在安装时预先进行了机器码转换,因此应用启动更快、运行更快、体验更流畅。此外,ART还支持更低的硬件要求,并提供了更长的电池续航能力。
  1. 存储空间占用
  • Dalvik虚拟机的可执行文件体积相对较小,这得益于Android SDK中的dx工具在转换字节码时消除了类文件的冗余信息。
  • 然而,ART虚拟机由于需要预先将DEX文件转换为机器码,因此可能会占用更大的存储空间,可能会增加10%-20%的存储空间需求。

总结来说,Dalvik虚拟机和ART虚拟机在设计目的、运行方式、内存管理、性能以及存储空间占用等方面都存在显著的差异。Dalvik虚拟机更适合于资源受限的环境,而ART虚拟机则提供了更高的运行效率和更好的用户体验。随着Android版本的升级和发展,ART虚拟机逐渐成为了主流选择。