Introduite dans Android 4.4 sous forme d’une option dans le menu développeurs, la nouvelle machine virtuelle Android RunTime (ART) devrait bien devenir la machine virtuelle par défaut du système dès la prochaine version, en remplacement de Dalvik.
Même s’il n’y a pas encore eu de communication officielle à ce sujet, c’est en tout cas ce que laisse entendre l’analyse des dernières modifications dans le code source d’AOSP : un développeur de chez Google a modifié la configuration par défaut dans le code source.
Présumée basée sur le travaux de Flexycore, une startup bretonne rachetée par Google en 2012, la machine virtuelle ART repose sur un nouveau mode d’optimisation du code : plutôt que de le convertir dynamiquement en code machine lors de l’exécution, comme le fait Dalvik, ART analyse le code de l’application dès son installation, effectue toutes les optimisations possibles en fonction de la configuration matérielle de l’appareil et enregistre le code machine ainsi obtenu pour l’utiliser lors de l’exécution de l’application.
Les gains ainsi obtenus peuvent être importants. Un test publié il y a quelques mois montrait par exemple des gains de l’ordre de 30% sur des opérations de tris sur des tableaux d’entiers :
Malheureusement, dans d’autres tests, c’est plutôt Dalvik qui a l’avantage, même si c’est avec un écart largement moindre :
Certaines applications souffrent également de dysfonctionnements lorsqu’elles sont utilisées avec ART, tandis que certaines de fonctionnent carrément pas du tout… Espérons donc que Google officialise assez rapidement la bascule vers ART, pour que les développeurs se mettent au travail au plus vite pour s’assurer de la compatibilité de leurs applications avec cette nouvelle machine virtuelle.
Il n’y aurait pas aussi une histoire de brevets avec Oracle ?
Aux dernières nouvelles, la justice donnait raison à Google contre Oracle…
De plus, l’un des gros reproche que faisait Oracle à Google, c’était d’utiliser Java mais en produisant des binaires non compatibles avec une JVM standard. Selon Oracle, ça violait la licence d’utilisation de Java. Et sur ce point, ART ne change rien : on reste sur du développement en Java avec production de binaires non compatibles avec une JVM standard.
Le but d’ART est clairement de revoir à la hausse les performances sous Android, avec logiquement aussi une hausse de l’autonomie pour un même usage.