.class和.dex文件有什么区别?

时间:2011-11-21 10:13:33

标签: java android jvm dalvik

当然,.dex文件适用于Android的Dalvik VM,.class文件适用于JVM。但我想知道他们是否有类似的布局(常量池,字段,方法,属性......)?字节码是不同的,但Dalvik特定的操作码与JVM中的操作码等价吗?

3 个答案:

答案 0 :(得分:18)

虽然Java jar文件有许多类文件,但每个APK文件只有一个 classes.dex文件,如下所示。根据谷歌的APK格式 出于性能和安全原因,它与类文件格式不同。

enter image description here

答案 1 :(得分:3)

来自相应公司的Dex File FormatClass File Format specification

这两个文件完全不同。

答案 2 :(得分:-1)

Dalvik可执行文件格式是VM执行的代码。 Dalvik VM无法执行Java字节码,必须将其编译为dex,因为它使用备用指令集。

阅读wiki article