Android : Google remplace officiellement Dalvik par son Android Runtime
Developers ! Developers ! Ah non...
Le 20 juin 2014 à 13h00
5 min
Logiciel
Logiciel
Il y a désormais de fortes chances que la prochaine version d’Android soit fournie avec une nouvelle machine virtuelle par défaut. ART, pour Android Runtime, devrait ainsi remplacer Dalvik et fournir aux applications un gain bienvenu de performances.
Des applications compilées jusqu'ici à la volée
Sous Android, la très grande majorité des applications sont écrites en Java. Comme tout développement utilisant ce langage, elles ont besoin d’une machine virtuelle qui va s’occuper de les compiler avant qu’elles ne s’exécutent. Dans le système mobile de Google, ce rôle est attribué à Dalvik, qui est donc chargé de récupérer des fichiers DEX qui contiennent du bytecode. Ce dernier est en fait un langage intermédiaire, conçu pour être compilé à la volée (compilation JIT).
Quand un utilisateur d’Android récupère une application depuis la boutique Google Play, il télécharge en fait un code intermédiaire. Quand l’application se lance, le bytecode est alors compilé en langage machine qui devient dès lors directement exécutable par le processeur de l’appareil. On retrouve ici les avantages du langage intermédiaire, qui n’a rien de spécifique à Java (Microsoft utilise un modèle équivalent pour .NET), mais les applications sont en revanche plus lentes à démarrer et certains soucis de performances peuvent voir le jour.
« Dalvik is dead, long live Dalvik! »
Ce problème de performances des applications Android est un vieux sujet, et Google travaille sur la question depuis un certain temps. Mais au cours de la nuit de mercredi à jeudi, un changement très important a été réalisé par la firme dans la branche principale de développement d’AOSP (Android Open Source Project). Deux « commits », numérotés 98553 et 98618, changent en effet la donne. Comme le signale XDA-Developers, le premier supprime Dalvik tandis que le second proclame ART comme machine virtuelle par défaut.
ART, pour Android Runtime, n’est pas nouveau. Il est en fait en test depuis l’année dernière et il était tout à fait possible de l’utiliser via les options dédiées aux développeurs. Cependant, son fonctionnement rendait une bonne partie des applications tierces instables à cause d’un fonctionnement très différent. Mais l’objectif global est bien l’amélioration des performances. Explications.
Google veut améliorer les performances des applications
Le plus gros changement introduit par ART est la compilation dite AOT, pour « Ahead-Of-time » (là encore, comme Microsoft procèdera bientôt avec .NET). Si la compilation JIT s’occupe de transcrire à la volée, AOT s’en occupe « avant ». Plus précisément, le code intermédiaire va être compilé dès sa récupération depuis Google Play pour réellement « installer » l’application, qui sera enregistrée telle quelle dans le téléphone, en code natif. Son lancement sera donc beaucoup plus rapide car le code ne sera pas recompilé à chaque exécution. Du moins en théorie.
Parmi les autres changements, ART fournit également un « garbage collector » (ramasse-miettes) amélioré. Dans sa documentation technique, Google explique en effet que celui-ci a souvent un impact sur les performances. Dans ART, plusieurs aspects ont été optimisés et une fonction de compactage doit arriver plus tard. Toujours pour les développeurs, Android Runtime propose également de nouvelles fonctionnalités pour le débogage ainsi que des outils d’analyse spécifiques, notamment pour la gestion des exceptions et des crashs.
Les travaux ne sont pas terminés
Dans la pratique, de nombreux problèmes devront être résolus. Il existe en effet une différence de taille entre proposer une machine virtuelle non finalisée aux développeurs et l’utiliser en standard pour tous les utilisateurs. Car le remplacement de Dalvik par ART va directement impacter les constructeurs qui devront procéder à de nombreux réglages dans les ROM fournies avec les smartphones et tablettes. À travers les discussions des testeurs, on trouve assez facilement des constats de soucis de ce type.
Mais les constructeurs ne seront pas les seuls à devoir s’adapter. Les applications tierces vont devoir elles aussi procéder à des changements. Les développeurs ont cependant déjà adapté une bonne partie d’entre elles et les utilisateurs ne devraient pas rencontrer de difficultés majeures lorsqu’ART entrera effectivement en piste. On peut d’ailleurs déjà vérifier si les applications que l’on utilise sont compatibles via un site dédié.
Mais justement, quand cette arrivée est-elle prévue ? La réponse devrait en fait arriver la semaine prochaine durant la Google I/O. La firme va sans doute procéder à de nombreuses annonces, les rumeurs de renouvellement visuel étant particulièrement nombreuses. Elle pourrait d'ailleurs présenter Android 5.0, dont ART serait alors l’une des nouveautés majeures puisque mettant l’accent sur les performances, voire à terme une amélioration de l’autonomie.
Android : Google remplace officiellement Dalvik par son Android Runtime
-
Des applications compilées jusqu'ici à la volée
-
« Dalvik is dead, long live Dalvik! »
-
Google veut améliorer les performances des applications
-
Les travaux ne sont pas terminés
Commentaires (87)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 20/06/2014 à 14h09
Le 20/06/2014 à 14h10
Le 20/06/2014 à 14h13
Le 20/06/2014 à 14h16
Le 20/06/2014 à 14h18
Le 20/06/2014 à 14h20
Le 20/06/2014 à 14h22
Pour avoir testé ART sur CyanogenMod 11 (android 4.4.3), le principal soucis que j’ai eu sur mon Xperia Arc S, c’est que… bon dieu, ca bouffe la RAM à vitesse grand V ! Du coup, j’ai dû revenir à Dalvik pour que mes applications habituelles puissent toutes être installées et fonctionner sur 512 Mo (curieusement, une config qui devrait convenir à KK) !
Le 20/06/2014 à 14h22
Est ce qu’un galaxy S5, pourras faire les MAJ nécéssaires pour accueillir ces nouveautés ou bien est-ce qu’il faudra le mettre à la poubelle et changer de smartphone?
Je veux dire ça me semble être de gros changements en perspective, et annoncer cela comme ça, faut que les utilisateurs d’Androïd sachent à quoi s’attendre.
A moins qu’ils ne soient déjà habitués.
" />" />
Le 20/06/2014 à 14h25
Le 20/06/2014 à 14h28
Le 20/06/2014 à 14h28
Le 20/06/2014 à 14h29
Le 20/06/2014 à 14h49
Le 20/06/2014 à 14h51
Le 20/06/2014 à 14h54
Le 20/06/2014 à 14h54
Le 20/06/2014 à 13h32
les applis IOS sont natives, avec certaines améliorations du code managé (garabage collector).
Sous win8, le fonctionnement est semblable à Dalvik, mais en .NET. Avec Roslyn, on aura la même chose qu’ART : le code intermédiaire sera précompilé.
Le grand perdant dans tout ça, ce sont les applis html/javascript, mais ils ont droit à leur propre améliorations via le navigateur embarqué.
Le 20/06/2014 à 13h32
Le 20/06/2014 à 13h33
Le 20/06/2014 à 13h38
Mwais, l’AOT va être intéressant, mais à condition d’avoir des devices avec deux fois plus de flash intégrée qu’actuellement car il faudra à chaque fois stocker les binaires et en byte code et en code natif…
Le 20/06/2014 à 13h38
Le 20/06/2014 à 13h39
“Les développeurs ont cependant déjà adapté une bonne partie d’entre elles et les utilisateurs ne devraient pas rencontrer de difficultés majeures lorsqu’ART entrera effectivement en piste”
On verra bien quelque mois après la conférence " />
Le 20/06/2014 à 13h40
Le 20/06/2014 à 13h42
Le 20/06/2014 à 13h44
Le 20/06/2014 à 13h46
Le 20/06/2014 à 13h46
Le 20/06/2014 à 13h47
je suis sous ART avec mon nexus 5 et j’ai gagné 10% d’autonomie en gros.
le switch entre les applications et plus rapide. par contre les applis prennent plus de place et après un wipe dalvik la creation du cache est hyper longue (30-1min en dalvik et 15 min avec ART)
Le 20/06/2014 à 13h48
Le 20/06/2014 à 14h03
Le 20/06/2014 à 14h04
Toujours pas d’interpréteur Python pré-installé…
" />
Le 20/06/2014 à 14h06
Le 23/06/2014 à 10h28
Le 23/06/2014 à 11h26
Le 23/06/2014 à 12h15
Le 23/06/2014 à 12h57
Le 23/06/2014 à 13h11
Le 24/06/2014 à 15h19
Le 25/06/2014 à 07h41
Le 25/06/2014 à 07h58
Le 25/06/2014 à 20h15
Le 20/06/2014 à 14h56
Le 20/06/2014 à 15h07
" /> Je viens pinailler un peu, mais bon.
La phrase “Dalvik is dead, long live Dalvik” est une erreur grossière.
Cette phrase vient du célèbre “Le Roi est mort, vive le Roi” sauf que dans cette phrase, la première partie “le Roi est mort” indique que le roi vient de mourir (" /> non sans blague ?!) et “vive le Roi” est une phrase destinée au roi qui lui succède.
Sauf que cette phrase toute faite a un peu perdu de son sens…
Ici ce serait Dalvik est mort, vive ART par exemple.
Le 20/06/2014 à 15h11
Le 20/06/2014 à 15h13
Le 20/06/2014 à 15h13
Le 20/06/2014 à 15h19
Le 20/06/2014 à 15h35
Le 20/06/2014 à 15h53
Le 20/06/2014 à 16h28
Oh les belles tentatives de piratage sur http://www.androidruntime.com/list " />
insert into mysql.user (user, host, password) values (‘name’, ‘localhost’, password(‘pass123’))
Le 20/06/2014 à 18h19
Le 20/06/2014 à 19h57
Le 20/06/2014 à 19h58
Le 20/06/2014 à 20h51
Pas de souçis pour y passer sur mon nexus 5.
Par contre sur ma tablette LG, avec leur rom à la con, je suis obligé d’utiliser le framework xposed, non compatibe ART….
Le 20/06/2014 à 20h52
Pour ceux qui veulent tester ART et qui ont Android 4.4.x il faut cliquer 7 fois sur le numéro de build dans la partie “à propos” des paramètres. Dès lors un nouveau menu développeur sera présent et parlera entre autres de ART…
Le 20/06/2014 à 21h08
Le 20/06/2014 à 21h38
si les appli sont compilé a l’execution, c’est quoi la phase qui passe en revu les appli lors d’une maj ou du vidage du cache dalvik ?
Le 20/06/2014 à 22h13
A la decharge d’android et sa soit disant lenteur, ya aussui un parametre enorme a prendre en compte: les surcouches constructeurs qui bouffent du temps CPU, de la RAM et de l’autonomie. Mon nexus 5 est beaucoup plus reactif qu’un Samsung S5 avec Touchwiz alors que le hardware est largement inferieur…
Le 20/06/2014 à 22h25
Je suis le seul que ça choque d’avoir un gros “DO NOT MERGE” écrit dans la change list qui est maintenant “MERGED” ? " />
Le 20/06/2014 à 23h05
Le 20/06/2014 à 23h40
Le 21/06/2014 à 06h05
Le 21/06/2014 à 08h32
Le 21/06/2014 à 12h13
Le 21/06/2014 à 15h09
Le 21/06/2014 à 15h54
Le 21/06/2014 à 16h44
Le 21/06/2014 à 17h18
Quelqu’un sait si Drastic (Emulateur DS) marche avec ART ? Sur le site de compatibilité il est dit que non, mais cela date un peu.
Le 21/06/2014 à 19h26
Le 21/06/2014 à 19h31
Le 22/06/2014 à 17h20
Le 23/06/2014 à 05h55
Je suis heureux de lire cette article, je passe a chaque fois pour un fou intégriste quand je dit qu’Android est lent et qu’il n’y a pas besoin de processeur a 2ghz sur mobile pour faire fonctionner l’app facebook ou instagram. Si Android passe en code natif, on devrait voir un gain substantiel en performance.
Le 23/06/2014 à 09h51
Le 20/06/2014 à 13h07
Ya une coquille : ça se dit pas “long live to “, on dit “long live ”
Comme dans “The king is dead, long live the king!” ou même dans le screenshot de merge dans la news : « Dalvik is dead, long live Dalvik! »
Le 20/06/2014 à 13h08
Le 20/06/2014 à 13h10
Le 20/06/2014 à 13h12
Le 20/06/2014 à 13h12
Son lancement sera donc beaucoup plus rapide car le code ne sera pas recompilé à chaque exécution. Du moins en théorie.
Dans la pratique, y’a quand même peu de chance qu’il n’y ai pas d’amélioration si ? (Même si elles ne sont pas perceptible)
Le 20/06/2014 à 13h16
Cependant, son fonctionnement rendait une bonne partie des applications tierces instables à cause d’un fonctionnement très différent.
Là pour le coup, l’article est carrément faux. J’ai activé ART assez rapidement et je n’ai pas constaté de problèmes sur les applications tierces (je dois en avoir une bonne 40aine d’installées). J’ai bien eu quelques plantages d’applis mais impossible de savoir qu’elle en était la raison.
Bref, ART n’a pas rendue la majorité des applications tierces instables, c’est faux.
Le 20/06/2014 à 13h18
Le 20/06/2014 à 13h19
Le 20/06/2014 à 13h23
Dans Windows Phone et iOS, comment ça se passe ? Histoire d’avoir un léger point de comparaison si possible :)
Et d’ailleurs, en quel langage est programmé une application WP et iOS ? Histoire d’arrêter la comparaison directement " />
Le 20/06/2014 à 13h26
Le 20/06/2014 à 13h28
Le 20/06/2014 à 13h28
Et ya les images d’android 4.4.4 dispo
Le 20/06/2014 à 13h28
Le 20/06/2014 à 13h31