Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果Android可能有JVM,那么字节码应该在Android上运行吗?_Java_Android - Fatal编程技术网

Java 如果Android可能有JVM,那么字节码应该在Android上运行吗?

Java 如果Android可能有JVM,那么字节码应该在Android上运行吗?,java,android,Java,Android,我读了很多关于堆栈溢出的链接,但我很困惑。Java是平台无关的;那么为什么字节码不能在Android操作系统上运行呢 如果Android操作系统(在移动设备上)可能有一个JVM,那么字节码应该在Android上运行。简短回答:不,你不能 长答覆: Android应用程序通常用Java语言编写,并在Dalvik虚拟机(DVM)中执行,这与经典的Java虚拟机(JVM)不同。DVM由谷歌开发,并针对移动操作系统(尤其是Android平台)的特点进行了优化 通过使用转换工具dx翻译Java.class

我读了很多关于堆栈溢出的链接,但我很困惑。Java是平台无关的;那么为什么字节码不能在Android操作系统上运行呢


如果Android操作系统(在移动设备上)可能有一个JVM,那么字节码应该在Android上运行。

简短回答:不,你不能

长答覆: Android应用程序通常用Java语言编写,并在Dalvik虚拟机(DVM)中执行,这与经典的Java虚拟机(JVM)不同。DVM由谷歌开发,并针对移动操作系统(尤其是Android平台)的特点进行了优化

通过使用转换工具dx翻译Java.class文件,在Dalvik中运行的字节码从传统的JVM字节码转换为dex格式

与DVM相反,JVM使用的是纯Java类文件


据我所知,Dalvik已经停产,取而代之的是艺术#戴夫·达比,回顾一下这个很好的答案。