droite|vignette|Comparaison des architectures Dalvik et ART.
ART (abréviation de Android Runtime) est un environnement d'exécution utilisé principalement par le système d'exploitation Android. Il vise à remplacer la machine virtuelle Dalvik et à remplacer le bytecode par des instructions natives.
L'arrivée d'Android 2.2 "Froyo" permet une optimisation des applications par du profilage de code et une recompilation fréquente de certains éléments du bytecode, afin de permettre de meilleures performances.
Au contraire de Dalvik, ART utilise la compilation anticipée, en compilant l'application à son installation, sans besoin ultérieur d'interprétation. ART permet ainsi d'augmenter les performances, donc d'augmenter la durée de vie de la batterie. De plus, le ramasse-miettes et les allocations mémoires sont plus efficaces, avec plus d'options de débogage ou de profilage des applications.
Pour conserver la rétrocompatibilité, ART utilise des fichiers APK ou .dex, ainsi que du bytecode Dalvik. Cependant, les fichiers .odex sont remplacés par des ELF ( Executable and Linkable Format). Après l'installation, seule l'ELF est utilisée, les spécificités Dalvik étant ignorées ou supprimées. En contrepartie, la compilation dure plus longtemps, et l'application prend plus d'espace de stockage.
Android 4.4 "KitKat" propose une préversion d'ART, mais conserve Dalvik par défaut. Par contre pour la version Android 5.0 "Lollipop", Dalvik est entièrement remplacé par ART.
Aux États-Unis, un procès opposant Oracle à Google est en cours, car Dalvik enfreindrait des brevets d'Oracle. C'est une des raisons pour le changement vers ART, qui ne pose pas ce problème. En , la Cour suprême des États-Unis donne finalement raison à Google contre Oracle. Il est notamment rappelé que Dalvik n'est plus utilisé depuis Android 5.0.
Android SDK
Historique des versions d'Android
Machine virtuelle
XDA Developers, February 12, 2014
Google I/O 2014, by Anwar Ghuloum, Brian Carlstrom and Ian Rogers
Google I/O 2010, by Ben Cheng and Bill Buzbee
Delivering