Strumento Android dx: Conversione di Java Bytecode in Formato DEX
Comprendere il Componente della Toolchain Android dx
Android dx (spesso chiamato dx) è uno strumento di build critico che trasforma il bytecode Java (file .class) nel formato Dalvik Executable (DEX) — il formato eseguibile per le app Android (all'interno di .apk/.aab).
Ruolo nel Processo di Build
- Sorgente Java/Kotlin →
javac/kotlinc→ file.class(bytecode JVM) dx(od8/r8nelle toolchain moderne) → converte in file.dex- I file DEX vengono impacchettati in APK/AAB
Funzioni Chiave
- Conversione Bytecode: Traduce il bytecode stack-based della JVM in DEX basato su registri.
- Ottimizzazione: Eliminazione codice morto, constant folding, method inlining, allocazione registri.
- Supporto Multidex: Suddivide app grandi (>64K riferimenti a metodi) in più file DEX.
- Build Incrementali: Riprocessa solo le classi modificate per iterazioni più veloci.
- Gestione Dipendenze: Risolve dipendenze di librerie/classpath durante la conversione.
Sostituto Moderno
Dalla versione 3.1+ del Android Gradle Plugin, D8 (debug) e R8 (release) hanno sostituito dx come dexer predefinito, offrendo migliori ottimizzazioni, output più piccolo e build più veloci. dx rimane per compatibilità legacy.
Gli sviluppatori invocano tipicamente il dexing indirettamente tramite Gradle; l'uso diretto di dx è raro nei flussi di lavoro moderni.