ART (Android)
# ART (Android)

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.

## Principe de fonctionnement

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.

## Brevets

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 avril 2021, 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.

