首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android系统包括JVM吗?

android系统包括JVM吗?
EN

Stack Overflow用户
提问于 2015-02-22 21:06:15
回答 2查看 24.3K关注 0票数 29

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

EN

回答 2

Stack Overflow用户

发布于 2015-02-22 21:25:12

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

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

在Android4.4 "KitKat“中包含了一个称为Android (ART)的替代运行时环境,作为技术预览。在Android5.0 "Lollipop“中,ART完全取代了Dalvik。

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

@Chris在理解Dalvik代码的反汇编上解释了DVM字节码,做得很好。

资料来源:维基百科 /之友/经验

票数 35
EN

Stack Overflow用户

发布于 2015-02-22 21:08:09

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

不是的。

或者DVM是JVM的替代品?

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

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28663243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档