Durante il tentativo di comprendere Android Runtime, mi sono imbattuto nella pagina di Wikipedia . Il grafico mostrato lì aggiunge alla mia confusione. Se .dex viene convertito interamente in ELF, perché ART è più necessario?
Once an application is compiled by using ART's on-device
dex2oat
utility, it is run solely from the compiled ELF executable; as a result, ART eliminates various application execution overheads associated with Dalvik's interpretation and trace-based JIT compilation
La mia comprensione è che ART converte .dex in ELF e il codice dovrebbe essere eseguito in modo nativo. Con ELF, è ancora coinvolta una macchina virtuale? Con ART, lo stack dell'applicazione Android è simile a -
Android Apps
-----
ART (executing ELF)
-----
Linux
Sto capendo correttamente? Dovrei vedere ART come sistema operativo che fornisce servizi all'app Android ELFed?