Le marché des machines Android est très varié, on parle souvent de fragmentation des écrans avec de nombreux périphériques tournant sur une variété considérable de diagonales et de définitions d’écrans. On parle beaucoup moins des problèmes posés par le nombre tout aussi considérable de solutions processeur à l’intérieur des tablettes : Entre les différentes puces et leurs circuits graphiques, il y a une très grande variété de systèmes de calcul.
Google a donc utilisé un moteur logiciel qui traduit chaque programme pour le rendre intelligible à chaque machine, ce moteur agit comme un interprète parfait : Les programmes s’adressent à lui, il les traduit alors en un fichier .dex, ou Dalvick exécutable, que les différentes solutions matérielles peuvent ensuite facilement comprendre. C’est ce qu’on appelle une machine virtuelle.
Dalvik pourrait céder sa place à une autre machine virtuelle baptisée ART pour Android RunTime, plus performante : en fait la dernière version du système embarque déjà une fonction cachée dans les options destinées aux développeurs qui permet de basculer de Dalvik à ART. Ce dernier a pour avantage de compiler le code de chaque programme à l’installation de celui-ci dans un langage qu’il pourra interpréter plus vite. Si l’installation d’une application s’en trouve ralentie, on gagne au contraire en réactivité au lancement de celle-ci à l’usage.
Plusieurs éléments laissent à penser que ART pourrait totalement remplacer Dalvik pour la prochaine mouture d’Android, là où Android 4.4 laisse l’option aux développeurs de basculer de l’un à l’autre, le prochain système pourrait directement exploiter ART. L’ancien moteur serait toujours accessible en option afin de garder une compatibilité accrue avec d’anciennes applications car si ART est plus rapide à l’usage, il faut que le code des applications le prenne en compte. Ce n’est pas un problème majeur pour les applications maintenues mais un vrai souci pour les applications anciennes ou n’ayant pas reçu de mises à jour depuis longtemps.
Cette option de basculement d’un moteur à l’autre pour Android 4.4 est d’ailleurs apparue pour aider les développeurs à améliorer leur code en disposant facilement d’une machine tournant sur les 2 systèmes.
Reste des inconnues, des paramètres que je ne maîtrise pas mais peut être en apprendrons-nous plus en commentaires. Quelles incidences matérielles ce changement de machine virtuelle pourrait t-il causer ? Sur le stockage des machines ? Sur les performances ? Est ce que certains processeurs pourraient souffrir de ce basculement ? Des puces ont t’elles été optimisées pour exécuter Dalvik ? Est-ce que l’installation d’une grosse application pourrait prendre encore plus d’espace une fois compilée sous ART ?
On sait qu’Intel avait travaillé de manière active pour rendre sa gamme de processeurs Atom Medfield compatible avec le moteur Dalvick par le passé. Si beaucoup d’applications fonctionnaient « naturellement » sous Atom, d’autres avaient besoin d’être recompilées pour le processeur. Le changement de moteur et de génération de puce pourrait donc avoir des incidences sur les capacités de plusieurs processeurs.
Source : XDA
2,5€ par mois | 5€ par mois | 10€ par mois | Le montant de votre choix |
Le retour d’utilisateurs de la 4.4 utilisant ART est que leur smartphone y gagne en terme de performance et d’autonomie.
Perso, tant que Xposed ne sera pas transcrit pour ART, impossible de passer sous cette techno. A priori, le créateur bosse déjà dessus, ce qui est une bonne nouvelle. Cependant, impossible de me passer de mods antipub, du module de traduction pour LBE, et du per-app-dpi que j’utilise pour réduire la taille de la barre d’état sans toucher au reste.
En revanche, cool de voir qu’Android bouge dans le sens des perfs. Si seulement Windows pouvait faire autant… (Je compare souvent les deux, qui ont pour optique de tourner sur un maximum de machines super différentes..)
@Trouveur: Sur quels appareils ? Sur un Nexus 5 équipé d’un S800 je ne suis pas certain que la différence en terme de performance soit réellement sensible. Si c’est sur des configurations plus modestes (==qui lagguent sur certaines applications) ce retour serait très intéressant (si ces latences ont disparues).
Il me semble que la taille des « .dex » ne dépend pas de la taille de l’application; donc même si le passage à ART nécessite un peu plus de place je ne suis pas certain que cela soit proportionnel à la taille de l’appli (qui contiennent en général des grosses bibliothèques/textures/images etc.).
Sur Nexus 4, le passage à ART m’a donné l’impression d’avoir changé de téléphone : lancement plus rapide des applications et légère amélioration de l’autonomie.
Par contre le démarrage du téléphone ainsi que l’installation des applications prennent plus de temps.
Même constat ici. Mon Nexus 4 était rapide sous Dalvik mais j’ai l’impression de l’avoir boosté en passant sur ART il y a de ça 1 semaine.
Tout est plus rapide, c’est assez bluffant. Pas de différence constatée sur l’autonomie, peut être légèrement mieux.
Hummm… A mon avis ça ne changera pas grand chose. Tout du moins au début.
On passera juste d’un code compilé en JIT à du code précompilé avant exécution. Du coup, une appli prendra plus de place en flash (le code Java récupéré du net + le même code précompilé). Ce qu’il y a, c’est que l’on gagnera du temps CPU en arrêtant le JIT et donc effectivement une application s’exécutera plus rapidement.
Par contre, j’ai peur que comme une application prendra plus de place en flash en version précompilé, le chargement du code sera plus long (la flash est lente du point du vu d’un processeur embarqué, surtout que les trucs genre TRIM et tout ça sont fait par le processeur centrale, pas par un contrôleur externe).
Et il y a aussi le fait que la plupart des applications android de jeux et autres applications ayant besoin de performances ont déjà une partie de leur code critique développé en code natif (via une interface JNI) et heureusement.
Bref, ART serait une bonne idée si les codes précompilés apportent plus d’optimisation en taille et en vitesse qu’un code compilé en JIT. Sinon le gain apporté d’un côté peut se retrouver perdu par des pertes d’un autre côté.
Je suis passé à ART quand j’ai eu la MAJ 4.4 sur mon Nexus4, et depuis aucun soucis, tout passe comme il faut et le téléphone est très réactif.
Alors je n’ai pas fait de comparaison avec Davilk sur la 4.4 mais ela me semble bien mieux qu’avec la 4.3, donc sûrement efficace!
Si j’ai bien compris je peux passé mon nexus 4 en ART pour essayer, toutes les app sont compatibles?
Tu peux passer ton N4 sous ART sans soucis.
La majorité des applis sont compatibles. Par contre, comme le système doit recompiler toutes celles qui sont installées sur ton téléphone, la manipulation peut être longue.
Cela fonctionne aussi pour la nexus 7 2012 ?
@tomkar: je pense que ce soit par rapport au processeur qui est un tegra 3. après j’en sais pas plus
ça marche aussi sous moto g, peut etre un poil plus reactif, mais de peu..
@robiquet: Merci pour l’info. Je n’ai pas trouvé l’info sur
la nexus 7 mais bien sur la nexus 4.