Ho intenzione di imparare un po 'di Dalvik VM, dex e Smali.Che cos'è il codice Smali Android
Ho letto di smali, ma ancora non riesco a capire chiaramente dove sia il suo posto nella catena di compilatori. E quale è il suo scopo.
Ecco alcune domande:
- Per quanto ne so, Dalvik come altre macchine virtuali eseguite bytecode, in caso di Android è bytecode dex.
- Che cos'è smali? Android OS o Dalvik Vm funzionano direttamente con esso, oppure è lo stesso bytecode dex ma più leggibile per l'umano?
- E 'qualcosa come il programma eseguibile per Windows (come OllyDbg) consiste di codice macchina diverso (D3, 5F per esempio) e c'è un comando di assemblaggio appropriato per ogni codice macchina, ma Dalvik Vm è anche software, quindi è leggibile rappresentazione di bytecodes
- C'è un nuovo ambiente ART. È ancora utilizzato da bytecodes o esegue direttamente il codice nativo?
Grazie in anticipo.
Puoi suggerire qualcosa da leggere per approfondire questo? È molto interessante per me – brqgddez
Puoi vedere i dettagli del formato dex su https://source.android.com/devices/tech/dalvik/dex-format.html – Antimony
Ma perché usare smali a tutti se abbiamo strumenti come decodificatore di jadx, che può ottenere molto più codice Java leggibile dall'uomo invece di smali? – JustAMartin