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

12

当然,.dex文件是针对Android的Dalvik VM,而.class文件是针对JVM的。但我想知道它们是否具有相似的布局(常量池、字段、方法、属性等)?虽然字节码不同,但是否存在Dalvik特定的操作码与JVM中的操作码相对应?


2
从未涉足这个领域,但这是第一步:http://www.slideshare.net/Bhavsidd/diff-of-class-and-dex-file(还有这个:http://www.dalvikvm.com/) - MByD
请查看这篇文章,.class和.dex文件之间的区别。 - bharath
1
@BinyaminSharet 的第二个链接现在被停放了,不包含任何有用的信息。 - om-nom-nom
3个回答

22

相比之下,Java jar文件有许多类文件,每个APK文件只有一个classes.dex文件,如下图所示。根据Google的说法,APK格式与类文件格式不同是出于性能和安全原因。

enter image description here


3

+1 反汇编器 ddexer 提供了额外的信息 http://dedexer.sourceforge.net/ - stacker
链接似乎已经失效。 - Ahmed Faisal
修复了损坏的链接。 - Buhake Sindi

-1

Dalvik可执行格式是虚拟机执行的代码。Dalvik虚拟机无法执行Java字节码,必须编译为dex,因为它使用了一组替代指令集。

阅读维基百科文章


1
楼主已经意识到了。请阅读问题的第一句话。 - user658042

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接