Developpez.com

Le Club des Développeurs et IT Pro

Android 5.0 : Dalvik pourrait être remplacé par ART

Le nouveau moteur d'exécution serait plus performant et économe en énergie

Le 2014-06-20 10:14:29, par Hinault Romaric, Responsable .NET
Dans Android 4.4 KitKat qui avait été lancé en novembre dernier, Google avait introduit ART (Android Runtine), un nouveau moteur de compilation OAT. Dans les options développeurs, il était désormais possible de choisir entre la machine virtuelle Dalvik et ART.

ART avait été introduit dans Android 4.4 comme une fonctionnalité expérimentale. C'est pourquoi seuls les utilisateurs expérimentés peuvent l’activer. Son utilisation peut entrainer le crash de certaines applications, car certaines fonctionnalités de Dalvik ne sont pas prises en charge par ART.


ART serait une solution qui devrait renvoyer dans les tiroirs Dalvik, accusé de lent par les développeurs, qui estiment que celui-ci n’exécute pas efficacement leur code. L’information provient de la communauté de hackers XDA Developers, qui a remarqué l’introduction de deux commits dans Android Open Source Project (AOSP).

Le premier commit supprime le moteur Dalvik de la branche principale du code source d’Android, et le second active ART comme runtime par défaut d’Android. Pour marquer le coup, les developpeurs ont également ajouté un commit avec un message plaisantin : « Dalvik est mort, vive Dalvik ! » . Ci-dessous, les commits en question :


Dalvik is dead, long live Dalvik! DO NOT MERGE
croot
cd libcore
repo start dalvik-is-dead-long-live-dalvik .
repo sync -c .
git rm -r libdvm
git add JavaLibrary.mk (after removing libdvm references, adding explict core-libart references)
git add Docs.mk (after replacing references to libdvm with libart)
git add benchmarks/Android.mk (after adding explict core-libart references)
git add Android.mk (after removing dalvik-host target)
git commit -a -m ‘Dalvik is dead, long live Dalvik! DO NOT MERGE’
ART apporte des nouvelles fonctionnalités qui permettent d’améliorer les performances des applications grâce notamment à la compilation AOT (ahead-of-time), un mécanisme de compilation anticipée, qui effectue la compilation avant l’exécution plutôt que pendant l’exécution comme les compilateurs JIT (Just In Time) traditionnels. ART apporte également des améliorations du ramasse-miettes (garbage collection).

Selon les tests effectués, ART serait non seulement plus performant que Dalvik, mais entrainerait également une économie de la consommation d’énergie.

Le changement appliqué dans AOSP montre que ART est prêt à être utilisé à la place de Dalvik. Cependant, le changement est beaucoup trop important pour une mise à jour mineure d’Android. Le changement devrait probablement prendre effet dans Android 5.0, la prochaine version majeure de l’OS.

Quoi qu’il en soit, c’est un signe que les développeurs devraient déjà utiliser la version expérimentale de ART dans KitKat et optimiser leurs applications pour ce nouveau moteur d’exécution.

Source : XDA

Et vous ?


Que pensez-vous de ce changement ? Il était temps ?
  Discussion forum
4 commentaires
  • Uther
    Expert éminent sénior
    Envoyé par danieldou
    donc ça serai bien de savoir quels changements ça apportera a ceux qui développe
    Au niveau de l'API rien ne change. ART est totalement compatible avec Dalvlik. Les impacts sur les application sont donc minimes.
    Je suis passé a ART il y a un moment déjà sur mon Nexus 5 et je n'ai rencontré rencontré de soucis sur aucune des applications que j'utilise. De ce que j'ai lu, seules certaines application qui réclament un accès "root" au téléphone pour faire des opération bas niveau peuvent parfois poser problème.

    Sinon, le gain en fluidité, notamment au démarrage d'une application est sensible.

    Envoyé par Grabeuh
    Je pense que c'est plus lié à la bataille juridique contre Oracle. C'est justement Dalvik qui est dans le collimateur des avocats d'Oracle, et Google, sentant le vent tourner après un 1er procès à leur avantage, a du préférer changer pour limiter la casse quand ils vont devoir payer des royalties.
    Ca ne change rien a la situation juridique vis a vis d'Oracle.
    Vu que ART est complètement compatible avec Davlik, il repose tout autant que lui sur l'écosystème JAVA.
  • danieldou
    Membre habitué
    selon moi, ce changement est peut être bien sur le plan technique puisque apparemment art est plus rapide que dalvik, mais je me demande si il y aura de lourds changements a faire coté développement, parce que depuis le début, android utilise dalvik, mais si maintenant pour la première fois, ça change, alors c'est possible que tous ce que nous connaissons en développement android sera quelque peu erroné apparemment, je ne suis pas sur de ce que je dit mais cela semble logique, d'autant plus que
    Envoyé par Hinault Romaric
    Quoi qu’il en soit, c’est un signe que les développeurs devraient déjà utiliser la version expérimentale de ART dans KitKat et optimiser leurs applications pour ce nouveau moteur d’exécution.
    donc ça serai bien de savoir quels changements ça apportera a ceux qui développe

    merci
  • youtpout978
    Expert confirmé
    Bonjour,
    juste une petite coquille dans l'article:
    "ART serait une solution qui devrait renvoyer des les tiroirs Dalvik"
    je pense que c'est dans les tiroirs plutôt que des les tiroirs.

    J'ai essayé de l'envoyer par le bouton signaler mais quand on clique sur envoyer on a juste la fenêtre qui devient blanche sur Firefox je ne sais pas si ça marche donc.
  • Grabeuh
    Membre éclairé
    Personnellement, j'ai du mal à croire à cette histoire de "on le fait juste pour les performances".

    Je pense que c'est plus lié à la bataille juridique contre Oracle. C'est justement Dalvik qui est dans le collimateur des avocats d'Oracle, et Google, sentant le vent tourner après un 1er procès à leur avantage, a du préférer changer pour limiter la casse quand ils vont devoir payer des royalties.