dex file est un fichier exécuté sur la VM Dalvik.
Dalvik VM comprend plusieurs fonctionnalités d'optimisation, de vérification et de surveillance des performances, dont Dalvik Executable (DEX) .
Le code source Java est compilé par le compilateur Java dans des .classfichiers. Ensuite, l' dxoutil (dexer), qui fait partie du SDK Android, traite les .classfichiers dans un format de fichier appelé DEXqui contient du code d'octet Dalvik. L' dxoutil élimine toutes les informations redondantes présentes dans les classes. Dans DEXtoutes les classes de l'application sont regroupées dans un seul fichier. Le tableau suivant fournit une comparaison entre les tailles de code pour les fichiers jar JVM et les fichiers traités par l' dexoutil.
Le tableau compare les tailles de code pour les bibliothèques système, les applications de navigateur Web et une application à usage général (application de réveil). Dans tous les cas, l'outil dex a réduit la taille du code de plus de 50%.

Dans les environnements Java standard, chaque classe du code Java se traduit par un .classfichier. Cela signifie que si le fichier de code source Java a une classe publique et deux classes anonymes, disons pour la gestion des événements, alors le compilateur Java créera au total trois .classfichiers.
L'étape de compilation est la même sur la plate-forme Android, entraînant ainsi plusieurs .classfichiers. Mais une fois les .classfichiers générés, l'outil «dx» est utilisé pour convertir tous les .classfichiers en un seul .dexfichier, ou exécutable Dalvik. C'est le .dexfichier qui est exécuté sur la VM Dalvik. Le .dexfichier a été optimisé pour l'utilisation de la mémoire et la conception repose principalement sur le partage de données.