📜  什么是DVM(Dalvik虚拟机)?

📅  最后修改于: 2021-06-28 09:16:44             🧑  作者: Mango

Dalvik虚拟机是基于寄存器的虚拟机。它是由丹·伯恩斯坦(Dan Bornstein)设计和编写的,是其他Google工程师的贡献,是Android手机平台的一部分。 Dalvik虚拟机是以Bornstein的名字命名的,它以冰岛Eyjafjörður的渔村“Dalvík”命名,他的一些祖先曾居住于此。

什么是DVM

DVM的工作

Java编译器(javac)将Java源代码转换为Java字节码(.class)。然后,DEX编译器将此文件(.class)转换为Dalvik字节码,即“ .dex”文件。

应用

如上所述,对于Android,Google开发了新的虚拟机。它使用CPU的寄存器来存储操作数。因此,不需要任何推送和弹出指令。因此使执行速度更快。指令在虚拟寄存器上运行,这些虚拟寄存器是主机设备中的虚拟寄存器存储位置。基于寄存器的模型擅长优化并在低内存上运行。它们可以存储常见的子表达式结果,以后可以再次使用。在基于堆栈的模型中根本不可能做到这一点。 Dalvik虚拟机使用自己的字节码并运行“ .dex”(Dalvik可执行文件)文件。

好处

  • DVM仅支持Android操作系统。
  • 在DVM中,可执行文件是APK。
  • 执行速度更快。
  • 从Android 2.2 SDK开始,Dalvik拥有自己的JIT(Just In Time)编译器。
  • DVM的设计使设备可以有效地运行虚拟机的多个实例。
  • 应用程序有自己的实例。

缺点

  • DVM仅支持Android操作系统。
  • 对于DVM,很少有可用的Re-Tools。
  • 与注册机器相比,需要更多的指令才能实现相同的高级代码。
  • 由于安装了dex,因此应用程序安装需要花费更多时间。
  • 需要更多内部存储。