dex file - це файл, який виконується в DalM VM.
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 Executable, файл. Це .dexфайл, який виконується в DalM VM. .dexФайл був оптимізований для використання пам'яті і дизайну в основному за рахунок спільного використання даних.