Конечно, файлы .dex
для Dalvik VM Android и .class
- файлы для JVM. Но мне интересно, имеют ли они похожие макеты (Constant Pool, Fields, Methods, Attributes,...)? Байт-код отличается от других, но существуют ли альтернативы по отношению к импигументам Dalvik к тем из JVM?
В чем разница между .class и .dex файлами?
Ответ 1
В то время как в файле jar Java есть много файлов классов, каждый файл APK имеет только один classes.dex, как показано ниже. Согласно Google, формат APK отличается от формата файла классов для производительности и безопасности.
Ответ 2
Существует формат файла Dex и спецификация формата файла класса от соответствующей компании.
Эти 2 файла совершенно разные.
Ответ 3
Формат исполнения Dalvik - это код, исполняемый VM. Dalvik VM не может выполнить Java-байт-код, он должен быть скомпилирован в dex, поскольку он использует альтернативный набор команд.
Прочитайте статью wiki.