android系统是否包含JVM?

use*_*872 20 java android jit jvm dalvik

我知道android系统包括Dalvik虚拟机(DVM)但是我不明白android系统是否包含JVM还是DVM是JVM的替代品?谢谢

pha*_*ase 21

程序通常用Java编写并编译为Java虚拟机的字节码,然后将其转换为Dalvik字节码并存储在.dex(Dalvik EXecutable)和.odex(Optimized Dalvik EXecutable)文件中.

简而言之,程序被编译成JVM字节码,然后将其解释为DVM字节码.Dalvik不是运行已编译的Java代码,而是编译它,然后将该代码转换为它自己的代码.它在某种程度上是JVM的替代品.

Android 4.4"KitKat"中包含一个名为Android Runtime(ART)的备用运行时环境作为技术预览.ART在Android 5.0"Lollipop"中完全取代了Dalvik.

ART,Android Runtime取代了Android 5.0中的Dalvik.ART仍然使用相同的.dex文件,但它们被翻译成.elf(可执行文件和可链接格式)文件.这是JVM的另一个替代品,因为Java代码被编译成JVM字节码,然后被翻译成DVM字节码,然后被翻译成ELF文件并执行.

@Chris Thompson在理解Dalvik代码的反汇编时解释了DVM字节.

来源:维基百科 /朋友/经验


Com*_*are 11

但我不明白android系统是否包含JVM

没有.

或者DVM是JVM的替代品?

Dalvik虚拟机用于执行编译为Dalvik字节码的Android应用程序.Java虚拟机用于执行编译为Java字节码的Java应用程序.你是否认为一个人可以替代另一个人取决于你.