ART (Android)

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[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é ascendante, 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[9].

Voir aussi

Références

  1. a b et c Andrei Frumusanu, « A Closer Look at Android RunTime (ART) in Android L », AnandTech, (consulté le 5 juillet 2014)
  2. Ben Cheng et Bill Buzbee, « A JIT Compiler for Android's Dalvik VM » [PDF], sur android-app-developer.co.uk, Google, (consulté le 18 mars 2015), p. 5–14
  3. Phil Nickinson, « Google Android developer explains more about Dalvik and the JIT in Froyo », sur androidcentral.com, (consulté le 8 juillet 2014)
  4. a et b « Android Developers: ART and Dalvik », sur source.android.com, (consulté le 18 mars 2015)
  5. a et b « Android Developers: Configuring ART – How ART works », sur source.android.com, (consulté le 18 mars 2015)
  6. Sean Buckley, « 'ART' experiment in Android KitKat improves battery life and speeds up apps », Engadget, (consulté le 5 juillet 2014)
  7. Daniel P., « Experimental Google ART runtime in Android KitKat can bring twice faster app executions », sur phonearena.com, (consulté le 5 juillet 2014)
  8. Brad Linder, « What's new in Android 5.0 Lollipop? », sur liliputing.com, (consulté le 15 octobre 2014)
  9. http://www.theinquirer.net/inquirer/news/2351032/android-50-will-switch-to-art-virtual-machine-after-oracle-dalvik-ruling

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