Des apps Android plus rapides ? C’est de l’ART !

Anthony Nelzin-Santos |

Après plusieurs mois de test, ART devrait prochainement devenir la machine virtuelle par défaut d’Android, en lieu et place de Dalvik. C’est du moins ce que prévoient deux commits apportés à l’Android Open Source Project et repérés par XDA Developers : le premier démet Dalvik de ses fonctions, et le deuxième promeut ART.

Image (cc) Rob Bulmahn.
Image (cc) Rob Bulmahn.

Quelques développeurs ont profité de ces derniers mois pour adapter leurs applications à ART, mais de nombreuses apps ne sont pas encore compatibles. Cette nouvelle machine virtuelle allonge la durée d’installations des applications, et leur fait prendre plus d’espace de stockage. Mais ART possède deux avantages majeurs : elle devrait considérablement améliorer les performances des applications Android, et avoir un effet bénéfique sur l’autonomie.

Les fichiers téléchargés depuis le Google Play ne sont pas directement exécutables : ils contiennent du bytecode, qui doit être « traduit » en langage machine. Dalvik le fait à la volée, au moment où l’utilisateur en a besoin. Cette compilation « juste à temps » (just in time, JIT) ralentit le démarrage des applications et entraîne des problèmes de performances.

ART compile le code intermédiaire à l’installation des applications : le langage machine occupe 10 à 20 % d’espace supplémentaire, mais le lancement des applications est censé être plus rapide. In fine, cette compilation « à l’avance » (ahead of time, AOT) permettra de mieux tirer parti de la puissance des appareils Android.

Les premiers tests peinent à démontrer l’avantage de ce nouveau fonctionnement, mais ART n’était pas encore finalisé. Google devrait sans doute profiter de sa conférence annuelle, qui débutera mercredi, pour présenter une version finalisée de ce qui devrait donc être la nouvelle machine virtuelle d’Android.

Tags
avatar samshit | 

Pour l'avoir par défaut sur un Nexus 5, les effets sont bien visible sur la réactivité des apps.
démarrage (quasi instantané), navigation etc...

avatar Ast2001 | 

Oui, on note un mieux mais franchement, même avec Dalvik, cela reste plus qu'excellent.

avatar HeDude | 

De quoi rattraper le retard sur iOS a ce niveau ? Parce que les App iOS sont rapide a ouvrir et plus réactive même quand on compare cela avec un téléphone android matériellement bien plus performant.

avatar FreeDa | 

Moi qui n'ai jamais eu d'androphone, cet article me donne l'impression que cet OS est assez complexe... On est loin de la simplicité d'iOS... Mais bon, ce n'est qu'une impression, je me trompe peut-être...

avatar samshit | 

Bah c'est un OS qui se doit de tourner sur une multitude d'appareil aux hardware différents avec un minimum d'adaptation, et qui doit pouvoir assurer la compatibilité des apps aux travers de ces appareils.

avatar RyDroid | 

Ce sont des couches basses de l'OS. L'utilisateur non-développeur verra un potentiel gain de performance, rien de plus.
Ce que fait Android avec Dalvik et ART ne lui est pas spécifique. Firefox a des mécanismes similaires.

avatar rbart | 

Complexe oui et non.
99.9% des utilisateurs ne connaissent ni dalvik ni art sans que ça ne les gêne ...

avatar joneskind | 

@rbart

C'est pas parce que l'utilisateur ignore la complexité qu'elle est inexistante.

D'abord pour le développeur qui doit gérer la grande variétés de distributions pas toujours très compatibles - entre les différents forks d'android, entre les différentes versions, les API qu'il faut injecter dans le code (quand c'est possible) pour assurer la plus grande compatibilité, la grande variété d'écrans qui implique de coder en "responsive" etc...

Et pour l'utilisateur qui peut être exposé à des failles de sécurité importantes si son constructeur ne met pas à jour son système.

avatar joneskind | 

Est-ce que ça va être encore une fois l'objet d'une mise à jour "mineure" d'Android ou est-ce que l'OS va enfin passer au numéro 5 ?

Sinon, tant mieux si Android évolue en profondeur. Si c'est pour le bien de tous.

Comment ça se passe pour la compatibilité des apps ? Est-ce que c'est rétro-compatible comme Swift (qui partage le même runtime) ou est-ce que les dev vont encore s'arracher les cheveux ?

avatar samshit | 

Les applications sont déjà compatible, mais art est encore experimentale et quelques applications ne le sont pas, mais c'est plus un changement à faire dans le SDK que du coté des devs.

avatar RedMak | 

@joneskind :
Swift c'est pour ios.

avatar joneskind | 

@samshit

D'accord. D'après ce que je comprends, le code de l'app ne change pas et c'est ART qui compile à l'installation quand il est là, et Dalvik qui exécute en JIT (comme d'habitude) sinon. Les devs seront donc épargnés ^_^

CONNEXION UTILISATEUR