L’arrivée d’Android KitKat a vu l’arrivée d’un composant particulier uniquement visible dans les paramètres des options développeurs et nommé « ART » pour Android RunTime. Nous en parlions la semaine dernière au conditionnel, voici un peu plus d’informations.

ART

Pour rappel, les applications Android fonctionnent grâce des machines virtuelles nommées Dalvik. Une machine virtuelle est une sorte d’espace dans lequel l’application va pouvoir trouver tout ce dont elle a besoin pour s’exécuter.

Considérez qu’une machine virtuelle est un logiciel émulant un processeur utilisé par les applications Android. Nous n’avons pas tous le même matériel, mais nous avons tous ce même processeur virtuel.

Si l’application rencontre un problème, c’est l’application et sa machine virtuelle qui meurt et non toutes les applications ou le système. Pour les technophiles avec quelques connaissances en développement, Dalvik est comme un environnement JRE (Java Runtime Environment).

Depuis quelques versions de Dalvik, l’application est traduite de son langage intermédiaire (le bytecode) en langage machine spécifique au processeur physique au moment de son exécution : c’est ce qu’on nomme généralement JIT, pour Just In Time, ou littéralement « juste à temps »).

Mais pourquoi faire cela juste à l’exécution ? C’est vrai, si la machine virtuelle Dalvik, comme Java, permet de faire un code fonctionnel sur tous les environnements qui l’exécutent, sans tenir compte des instructions requises de chaque matériel, pourquoi s’embêter à recompiler à chaque fois ? C’est justement ce que va résoudre l’ART qui implémente dès sa conception le principe AOT, Ahead-Of-time. L’application sera donc compilée dès lors qu’elle se verra installée sur le matériel évitant la conversion à chaque exécution.

Il risque d’y avoir des inconvénients, notamment au niveau de l’espace de stockage nécessaire à sauvegarder la version « compilée » machine, ou bien encore d’un ralentissement possible lors de l’installation puisque l’application devra être réellement « installée ».

Aucun doute cependant sur le fait que les performances brutes de nos applications seront améliorées.

Aujourd’hui, ce nouveau module n’est réservé qu’aux développeurs et aux testeurs, mais nous pourrions voir prochainement l’ancêtre Dalvik, connu pour – notamment – ses problèmes de performances, disparaître au profit de l’ART.

Sur le forum, ceux qui ont installé Android 4.4 votent : Dalvik ou ART ?