Android Studio: bytecode, che cos'è?
Il Bytecode è alla base del Mantra di Java. Il Bytecode fa parte degli obiettivi finali per aver sviluppato Java
Il Bytecode è quel codice intermedio che proviene dal compilatore e che per andare in esecuzione ha bisogno della Virtual Machine.
Si sposta la complessità dal codice alla macchina virtuale
Il codice una volta scritto, resta uguale per tutte le macchine e i sistemi operativi, cambia la Virtual Machine, che è quel piccolo compilatore finale che permette di far andare in Run in un ambiente controllato. Crea una scatola controllata in cui far girare il codice
Dalvik e Art sono due compilatori finali
Dalvik Virtual Machine e ART Virtual Machine
Per capire bene i dettagli dalla A alla Z del Bytecode e in questo caso di Android Studio (l'IDE):
Un’applicazione Java, genera bytecode. E’ codice compilato, che va in esecuzione e dovrebbe essere compatibile a seconda della virtual machine.
La JVM (Java virtual machine), installata su un dispositivo.
write once run anywhere è il motto: scrivi una volta ed esegui ovunque. Perchè c’è il bytecode che è una rappresentazione intermedia. Non è codice eseguibile su una macchina e non è un codice compilato che deve essere linkato.
Bytecode: è questa rappresentazione intermedia, un codice compilato speciale che va in input alla JVM.
JVM → Dalvik e ART
JVM Dalvik, dove l’app è compilata in parte dallo sviluppatore, poi Dalvik che è l’interprete della VM, analizza il codice dell’app e lo compila in tempo reale in linguaggio macchina per andare in esecuzione e migliora le prestazioni.
Noi creamo il bytecode da Android Studio. Tale bytecode va dentro Dalvik che è il compilatore della VM.
Questo ci fa capire che il nostro: bytecode, potrebbe andare in input ad un’altra VM basata su Java, che ottimizza il codice in un altro modo. In questo caso: Dalvik è ottimizzato.
ART: ambiente Runtime, compila il codice durante l’installazione dell’app, aumentando però il tempo di installazione di un app.
Dalvik e ART: sono le tecnologie con cui viene realizzato il Maitra (strumento del pensiero) di Java, avere il bytecode, scrivere una volta e far run su vari dispositivi. Dalvik e ART che lo ottimizzano il nostro bytecode.
Infondo, la VM di Java va ottimizzata a seconda della macchina.
Questi due ottimizzatori di codice: Dalvik e ART si trovano già all’interno di Android Studio
Con il Material Design da Dalvik, viene ottimizzata con ART
Compatibilità a Runtime. Un’app sviluppata per Dalvik deve lavorare anche su ART. Alcune tecnologie che lavorano su Dalvik potrebbe non lavorare su ART.
E’ bene sapere che ci sono questi due diversi: Dalvik e ART, compilatori a runtime del bytecode. Tale bytecode, viene fuori dal codice scritto in Android Studio