是否为每个应用程序创建了Dalvik虚拟机实例?

Roc*_*ech 54 android dalvik

是为每个应用程序创建的Dalvik虚拟机实例,还是所有Android应用程序共享相同的Dalvik虚拟机实例?

Sah*_* Mj 59

每个Android应用程序都在自己的进程中运行,具有自己的Dalvik虚拟机实例.已经编写了Dalvik,以便设备可以有效地运行多个VM.

Dalvik VM以Dalvik Executable(.dex)格式执行文件,该格式针对最小内存占用进行了优化.

VM是基于寄存器的,运行由Java语言编译器编译的类,这些类已由.dex包含的dx工具转换为格式.

另请参阅什么是... Dalvik虚拟机有关DVM的详细说明.


Dev*_*ath 36

  1. Dalvik虚拟机专为Android而构建.它旨在解决电池寿命处理能力问题,它是免费的.

  2. 我们使用的是Dalvik VM而不是Java虚拟机(JVM),因为Java编译器,Java工具是免费的,但JVM并不是免费的,因此谷歌的Android开发人员已经制作了自己的虚拟机,并使其免费.

  3. 虚拟机是必需的,因为虚拟机作为虚拟计算机帮助调试,以便我的应用程序可以以相同的方式运行不同的设备

画报表示

IMG


小智 31

将一个.java文件提供给java compiler(javac)以生成该.class文件.

所有.class文件都提供给dx工具以生成单个dex文件.

dex文件被提供给Dalvik VM以生成最终的机器代码.

最终的机器代码被提供给CPU来执行.


Imp*_*ter 14

所有apk的基本源代码均为java语言.当你构建这个项目时,所有.java文件都转换为.class现在adk的dx工具将所有.class文件转换为classes.dex文件.这个classes.dex文件在dalvik虚拟机上执行.

有关dalvik虚拟机的更多信息:http://www.slideshare.net/jserv/understanding-the-dalvik-virtual-machine

Dalvik虚拟机旨在一次运行多个VM.因此,每个应用程序都在自己的进程中运行,其自己的实例是@sahilMahajanMj所说的Dalvik虚拟机.

此classes.dex文件进一步优化为odex文件并保存在/ dalvik/dalvik-cache中
了解有关odex的更多信息,请单击此处.

如果你想知道为什么DVM for android为什么不用JVM 点击这个

  • 您的第一个和最后一个链接无效. (2认同)