dex file é um arquivo que é executado na VM do Dalvik.
O Dalvik VM inclui vários recursos para otimização, verificação e monitoramento de desempenho, um dos quais é o Dalvik Executable (DEX) .
O código-fonte Java é compilado pelo compilador Java em .classarquivos. Em seguida, a dxferramenta (dexer), parte do SDK do Android, processa os .classarquivos em um formato de arquivo chamado DEXque contém o código de bytes Dalvik. A dxferramenta elimina todas as informações redundantes presentes nas classes. Em DEXtodas as classes do aplicativo são compactadas em um arquivo. A tabela a seguir fornece comparação entre tamanhos de código para arquivos jar da JVM e os arquivos processados pela dexferramenta.
A tabela compara tamanhos de código para bibliotecas do sistema, aplicativos de navegador da Web e um aplicativo de uso geral (aplicativo de despertador). Em todos os casos, a ferramenta dex reduziu o tamanho do código em mais de 50%.

Nos ambientes Java padrão, cada classe no código Java resulta em um .classarquivo. Isso significa que, se o arquivo de código-fonte Java tiver uma classe pública e duas classes anônimas, digamos que para manipulação de eventos, o compilador java criará um total de três .classarquivos.
A etapa de compilação é a mesma na plataforma Android, resultando em vários .classarquivos. Porém, depois que os .classarquivos são gerados, a ferramenta “dx” é usada para converter todos os .classarquivos em um único .dexarquivo, ou Dalvik Executable. É o .dexarquivo que é executado na VM Dalvik. O .dexarquivo foi otimizado para uso da memória e o design é impulsionado principalmente pelo compartilhamento de dados.