Depuis Android Lollipop, Google remplace DVM par ART car ART est plus rapide que DVM. Y a-t-il une autre raison à cela?
Il y a quelques améliorations de la performance) apportées par l'ART qui manquaient à Dalvik. Mais tous les avantages ont aussi des inconvénients. Je vais essayer de discuter des avantages et des inconvénients ici.
C’est de loin le plus gros avantage de l’ART par rapport à Dalvik. _ {Le vieil homme Dalvik utilisait l'approche Just-In-Time (JIT)} dans laquelle la compilation était faite à la demande. Tous les fichiers dex ont été convertis en leurs représentations natives respectives uniquement lorsque cela était nécessaire.
Mais ART utilise l'approche Ahead, dans laquelle les fichiers dex ont été compilés avant d'être demandés. Cela améliore considérablement les performances et la durée de vie de la batterie de tout appareil Android.
Par exemple
Dans le cas de Dalvik, chaque fois que vous touchez une icône d'application pour l'ouvrir, les fichiers dex nécessaires sont convertis en leurs codes natifs équivalents. L'application ne commencera à fonctionner que lorsque cette compilation sera terminée. Donc, l'application ne répond pas jusqu'à la fin.
De plus, ce processus est répété à chaque fois que vous ouvrez une application, ce qui gaspille des cycles de processeur et une batterie de grande valeur.
Mais dans le cas d'ART, chaque fois que vous installez une application, tous les fichiers dex sont convertis une fois pour toutes. Ainsi, l'installation prend du temps et l'application prend plus de place que dans Dalvik, mais les performances sont considérablement améliorées et la durée de vie de la batterie est intelligemment conservée}.
Dans le cas de Dalvik, le cache est construit avec le temps que le périphérique s'exécute et les applications sont utilisées comme indiqué par l'approche JIT. _ {Le temps de démarrage est donc très rapide.
Mais dans le cas d'ART, le cache est construit lors du premier démarrage, le temps de démarrage est donc considérablement plus long dans le cas d'ART. Une boîte de dialogue "Optimisation des applications" peut parfois s'afficher.
L'espace utilisé par les applications exécutées sur ART est bien plus que celui de Dalvik. Comme une application de 20 Mo sur Dalvik, prend plus de 35 Mo sous ART.
Donc, si vous utilisez un périphérique de stockage faible, cela peut être un inconvénient majeur pour vous.
Comme discuté ci-dessus, ART est extrêmement rapide et fluide. Les applications sont très vives et réactives. Toute comparaison entre Dalvik et ART fera sûrement gagner l’appareil ART par une marge significative.
ART est la réponse à tous ceux qui ont soutenu qu'iOS est plus rapide et plus fluide qu'Android et qu'il est également plus économe en énergie.
Dans Android Lolipop, le DVM a été remplacé par ART. Parce que DVM convertit le bytecode chaque fois que vous lancez une application spécifique. Mais ART le convertit une seule fois au moment de l'installation de l'application. Cela facilite l'exécution du processeur. ARM est une architecture. Comme MIPS, x86, etc., DVM/ART est basé sur ARM. Les deux ne peuvent pas se remplacer. J'espère que cela efface votre confusion.
Dans les versions Android 4.4 et supérieure, avec Dalvik, Google a introduit un nouveau runtime Android appelé «ART».
Différence entre ART et Dalvik
ART (Android RunTime) a pour caractéristique principale la compilation AOT (Ahead-of-Time),
AOT vs JIT
Le format des applications Android est .apk et toutes les classes Java converties en bytecode DEX. Le format de code intermédiaire DEX est indépendant de l'architecture du périphérique et doit être converti en code machine natif pour pouvoir être exécuté sur le périphérique. Il en va de même pour les runtimes ART et Dalvik.
Différence principale, ART (Android RunTime) utilisé dans la compilation AOT, Dalvik est utilisé dans la compilation Just-in-Time (JIT)
Avec Dalvik, la compilation Just-in-Time (JIT) à chaque exécution de l'application permet de convertir le code dexte dex en code machine et de le mettre en cache.
voir ici plus de détails http://androidboost.over-blog.com/2016/10/art-vs-dalvik.html
Android 4.4 KitKat, Google a décidé d'introduire une nouvelle façon d'exécuter des applications sur le système d'exploitation Android. Regardons de plus près ce que cette nouvelle exécution, appeléeART
ART est le projet secret en cours de deux ans de Google, qui vise à améliorer les performances de nos appareils Android.
Android L (5.0) ART a été créé comme environnement d'exécution par défaut (ART a complètement remplacé Dalvik).
ART (Android RunTime) est la prochaine version de Dalvik. Dalvik est le runtime, le bytecode et VM utilisés par le système Android pour exécuter des applications Android.
Dalvik est basé sur JIT (juste à temps) compilation. Cela signifie que chaque fois que vous exécutez une application, la partie du code nécessaire à son exécution va être traduite (compilée) en code machine à ce moment. Au fur et à mesure que vous avancez dans l'application, du code supplémentaire va être compilé et mis en cache, afin que le système puisse le réutiliser pendant l'exécution de l'application. JIT ne compilant qu’une partie du code, sa mémoire est moins encombrante et elle utilise moins d’espace physique sur le périphérique.
ART vs Dalvik/AOT vs JIT
Avantages de ART sur Dalvik:
Inconvénients de l'ART
Les temps d’installation sur mon Nexus 4, pour l’un de nos plus gros projets, ont grimpé de 17 s à ~ 25 s.
Résultats de Dalvik contre ART (Android 4.4): Linpack
Filetage simple ---> Dalvik (135) ---> ART (149) ---> 10,93%
Multifilaire ---> Dalvik (336) ---> ART (383) ---> 13,82%