dex
файл - это файл, который выполняется на виртуальной машине Dalvik.
Dalvik VM включает в себя несколько функций для оптимизации, проверки и мониторинга производительности, одной из которых является Dalvik Executable (DEX) .
Исходный код Java компилируется компилятором Java в .class
файлы. Затем dx
инструмент (dexer), входящий в состав Android SDK, обрабатывает .class
файлы в формате, называемом, DEX
который содержит байт-код Dalvik. dx
Инструмент устраняет все избыточную информацию, которая присутствует в классах. Во DEX
всех классах приложения упакованы в один файл. В следующей таблице приведено сравнение размеров кода для jar-файлов JVM и файлов, обрабатываемых dex
инструментом.
В таблице сравниваются размеры кода для системных библиотек, приложений веб-браузера и приложения общего назначения (приложение будильника). Во всех случаях инструмент dex уменьшал размер кода более чем на 50%.
В стандартных средах Java каждый класс в коде Java приводит к одному .class
файлу. Это означает, что если файл исходного кода Java имеет один открытый класс и два анонимных класса, скажем, для обработки событий, то компилятор java создаст всего три .class
файла.
Шаг компиляции такой же на платформе Android, что приводит к нескольким .class
файлам. Но после .class
генерации файлов инструмент «dx» используется для преобразования всех .class
файлов в один .dex
или исполняемый файл Dalvik. Это .dex
файл, который выполняется на виртуальной машине Dalvik. .dex
Файл был оптимизирован для использования памяти и дизайна в основном за счет совместного использования данных.