В чем разница между .class и .dex файлами?

Конечно, файлы .dex для Dalvik VM Android и .class - файлы для JVM. Но мне интересно, имеют ли они похожие макеты (Constant Pool, Fields, Methods, Attributes,...)? Байт-код отличается от других, но существуют ли альтернативы по отношению к импигументам Dalvik к тем из JVM?

Ответ 1

В то время как в файле jar Java есть много файлов классов, каждый файл APK имеет только один classes.dex, как показано ниже. Согласно Google, формат APK отличается от формата файла классов для производительности и безопасности.

enter image description here

Ответ 3

Формат исполнения Dalvik - это код, исполняемый VM. Dalvik VM не может выполнить Java-байт-код, он должен быть скомпилирован в dex, поскольку он использует альтернативный набор команд.

Прочитайте статью wiki.