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[1].
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[2] - [3].
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[1] - [4] - [5].
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[1] - [4] - [5].
Android 4.4 "KitKat" propose une préversion d'ART, mais conserve Dalvik par défaut[6] - [7]. Par contre pour la version Android 5.0 "Lollipop", Dalvik est entièrement remplacé par ART[8].
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 , 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[9].
Références
- Andrei Frumusanu, « A Closer Look at Android RunTime (ART) in Android L », AnandTech, (consulté le )
- Ben Cheng et Bill Buzbee, « A JIT Compiler for Android's Dalvik VM » [PDF], sur android-app-developer.co.uk, Google, (consulté le ), p. 5–14
- Phil Nickinson, « Google Android developer explains more about Dalvik and the JIT in Froyo », sur androidcentral.com, (consulté le )
- « Android Developers: ART and Dalvik », sur source.android.com, (consulté le )
- « Android Developers: Configuring ART – How ART works », sur source.android.com, (consulté le )
- Sean Buckley, « 'ART' experiment in Android KitKat improves battery life and speeds up apps », Engadget, (consulté le )
- Daniel P., « Experimental Google ART runtime in Android KitKat can bring twice faster app executions », sur phonearena.com, (consulté le )
- Brad Linder, « What's new in Android 5.0 Lollipop? », sur liliputing.com, (consulté le )
- « API Java : victoire du fair use et de Google face à Oracle devant la Cour Suprême », sur nextinpact.com.
Liens externes
- [vidéo] Android Basics 101: Understanding ART, the Android Runtime sur YouTube, XDA Developers, February 12, 2014
- [vidéo] ART: Android's Runtime Evolved sur YouTube, Google I/O 2014, by Anwar Ghuloum, Brian Carlstrom and Ian Rogers
- [vidéo] A JIT Compiler for Android's Dalvik VM sur YouTube, Google I/O 2010, by Ben Cheng and Bill Buzbee
- Delivering Highly Optimized Android Runtime (ART) and Web Runtime on Intel Architecture, Intel, August 4, 2015, by Haitao Feng and Jonathan Ding
- Android N for Developers: Profile-guided JIT/AOT compilation, Android Developers, describes ART changes in the upcoming Android N