C’est la question que l’on se pose dans la communauté Google+ Android Development : quel est ce mystérieux runtime nommé ART ?

ART

Android, pour ne pas dépendre des processeurs des téléphones, repose sur l’utilisation d’une machine virtuelle qui s’appelle la Dalvik et qui exécute du bytecode DEX, lui-même issus d’un code en Java.

La machine virtuelle Dalvik, bien que beaucoup plus rapide que la machine virtuelle Java classique peut être optimisée. C’est d’ailleurs le métier d’une entreprise basée en Bretagne : Flexycore. Souvenez-vous, en 2010, nous en faisions l’entrevue, en 2013, Google les achetait.

Le rachat a eu lieu il y a très peu de temps mais il est possible que nous en voyons déjà les premiers effets.

En effet, dans l’émulateur d’Android 4.4, parmi les options développeurs, un choix permet de choisir Dalvik ou ART (Android RunTime ?). Un coup d’œil parmi les sources d’Android spécifiques à « ART » permet de voir que la machine virtuelle ART fonctionne avec des fichiers OAT. Ces fichiers semblent être des fichiers DEX classiques avec des metadonnées supplémentaires mais un examen plus approfondi des sources permettra d’en savoir plus.

art

Quoiqu’il en soit, la nouvelle machine virtuelle semble beaucoup plus efficace que la Dalvik. Un lecteur de XDA a fait quelques tests sur l’émulateur et a rassemblé les données dans un Google Doc.

édit : un lecteur nous signale aimablement que le nouveau RunTine a dorénavant sa page dans la doc d’AOSP : http://source.android.com/devices/tech/dalvik/art.html