Quelle est la différence entre DVM et ART? Pourquoi DVM a été officiellement remplacé par ART dans Lollipop?

Depuis Android Lollipop, Google a remplacé DVM par ART car ART est plus rapide que DVM. Y a-t-il d'autres raisons à cela?

  • Bouton dans ViewPager faites défiler jusqu'à la page spécifique
  • Synchronisation du modèle de base de données partielle du serveur au client
  • Android AudioRecord quels réglages enregistrer
  • Comment puis-je exécuter mes tests indépendants d'interface utilisateur Robotium en parallèle?
  • Comment utiliser l'algorithme de remplissage d'inondation dans Android?
  • Android softkeyboard showSoftInput vs toggleSoftInput
  • Emulation d'émetteurs Android et Wear
  • Style de case à cocher Android
  • Désélectionner l'élément sélectionné dans ListView
  • Pouvez-vous utiliser un LoaderManager à partir d'un service?
  • Impossible d'identifier le lancement Activité: Activité par défaut Non trouvée
  • Comment puis-je détecter un clic dans un auditeur OnTouch?
  • 5 Solutions collect form web for “Quelle est la différence entre DVM et ART? Pourquoi DVM a été officiellement remplacé par ART dans Lollipop?”

    Il existe des améliorations majeures de la performance apportées par ART qui manquaient de Dalvik. Mais tous les avantages ont des inconvénients aussi. Je vais essayer de discuter à la fois des avantages et des inconvénients ici.

    1) Approche de compilation

    C'est de loin le plus grand avantage d'ART sur Dalvik. Le vieil homme Dalvik a utilisé l'approche Just-In-Time (JIT) dans laquelle la compilation a été effectuée sur demande. Tous les fichiers dex ont été converties en représentations natives respectives uniquement lorsqu'ils étaient nécessaires.

    Mais ART utilise l'approche Ahead-Of-Time (AOT) , dans laquelle les fichiers dex ont été compilés avant d'être demandés. Cela améliore massivement 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 codes natifs équivalents. L'application ne fonctionnera que lorsque cette compilation sera terminée. Ainsi, l'application ne répond plus jusqu'à ce que cela se termine.

    De plus, ce processus est répété chaque fois que vous ouvrez une application qui gaspille des cycles de processeur et un précieux jus de batterie.

    Mais en cas d'ART, chaque fois que vous installez une application, tous les fichiers dex se transforment une fois pour toutes . Ainsi, l'installation prend du temps et l'application prend plus d'espace que dans Dalvik, mais la performance est considérablement améliorée et la durée de vie de la batterie est intelligemment conservée .

    2) Temps de démarrage

    Dans le cas de Dalvik, le cache est construit avec le temps que l'appareil exécute et les applications sont utilisées, comme l'indique l'approche JIT. Le temps de démarrage est donc très rapide.

    Mais dans le cas d'ART, le cache est construit pendant le premier démarrage, de sorte que le temps de démarrage est beaucoup plus important en cas d'ART . Vous pouvez parfois voir une boîte de dialogue "Optimiser les applications", parfois, vous démarrez.

    3) Utilisation de l'espace

    L'espace utilisé par les applications exécutées sur ART est bien plus que celui de Dalvik. Comme une application de 20 MB sur Dalvik, prend plus de 35 Mo sur ART.

    Donc, si vous êtes sur un périphérique de stockage bas, cela peut être un inconvénient énorme pour vous.

    4) L'art est dingue rapide

    Comme discuté ci-dessus, l' ART est extrêmement rapide et lisse . Les applications sont très rapides et réactives. Toute comparaison entre Dalvik et ART rendra sûrement le gain d'ART par une marge significative.

    ART est la réponse à tous ceux qui ont fait valoir que iOS est plus rapide et plus fluide que Android et est également plus efficace sur batterie.

    Voici ce que Wikipedia dit sur ce sujet:

    "Contrairement à Dalvik, ART introduit l'utilisation de la compilation à l'avance (AOT) en compilant des applications entières en code machine natif lors de leur installation. En éliminant l'interprétation de Dalvik et la compilation JIT tracée, ART améliore l'efficacité d'exécution globale et réduit l'alimentation La consommation, ce qui se traduit par une autonomie améliorée de la batterie sur les appareils mobiles. Parallèlement, ART apporte une exécution d'applications plus rapide, des réparations améliorées de la mémoire et des mécanismes de collecte des ordures (GC), des fonctionnalités de débogage des nouvelles applications et un profil plus précis des applications. " (Récupéré le 2015-08-12)

    Donc, pour répondre à votre question, en plus d'être plus rapide, ART réduit la consommation d'énergie et possède des fonctionnalités qui facilitent le débogage et l'optimisation des applications.

    Il y a beaucoup d'autres articles intéressants et informatifs et des articles de blog sur "Davlik contre ART". Google peut vous aider à les trouver.

    Dans Android Lolipop, DVM a été remplacé par ART. Parce que DVM convertit bytecode chaque fois que vous lancez une application spécifique. Mais ART le convertit juste une 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 fonctionne sur ARM. Les deux ne peuvent pas se remplacer. J'espère que cela efface votre confusion.

    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. Examinons de plus près ce nouveau runtime appelé ART

    ART est le projet secret continu de Google de 2 ans, qui vise à améliorer la performance de nos appareils Android.

    L'Android L (5.0) ART a été créé comme temps d'exécution par défaut (ART a complètement remplacé Dalvik).

    ART (Android RunTime) est la prochaine version de Dalvik. Dalvik est l'exécution, le bytecode et la VM utilisés par le système Android pour exécuter des applications Android.

    Dalvik est basé sur la compilation JIT (juste à temps) . Cela signifie que chaque fois que vous exécutez une application, la partie du code requis pour son exécution sera traduite (compilée) en code machine à ce moment-là. Au fur et à mesure que vous avancez dans l'application, le code supplémentaire sera compilé et mis en cache afin que le système puisse réutiliser le code pendant l'exécution de l'application. Puisque JIT ne compile qu'une partie du code, il possède une empreinte mémoire réduite et utilise moins d'espace physique sur le périphérique.

    ART vs Dalvik / AOT vs JIT

    Avantages de ART sur Dalvik:

    1. La vitesse de lancement des applications est incroyablement rapide en cas d'ART car rien n'est compilé lors de l'exécution.
    2. La vitesse de démarrage est plus rapide que dalvik car rien n'est exécuté à partir de la partition dalvik en cas de ROM odexed dans dalvik
    3. Augmente la sauvegarde de la batterie en réduisant le fonctionnement de la CPU en raison de l'absence de travaux de compilation sur l'exécution des applications.
    4. Amélioration de la collecte des ordures (GC)
    5. Et finalement, c'est une excellente récompense pour les développeurs, car la plupart des développeurs s'inquiètent du fait que les ROM Odexed sont plus rapides que les ROM déconnectées, mais elles déodèreront leurs ROM car elles l'ont fortement débattues. Dans le cas d'ART, si le ROM est odexé ou déconnecté, cela ne compte pas, il compile le code complet en langage machine lors de l'installation des applications. Donc, même les ROM déodéxées sont aussi rapides que l'Odexed en ART

    Inconvénients de l'ART

    1. Comme ART précompacte les applications lors de l'installation, il faut 10-20% d'espace supplémentaire lors de l'installation que dalvik.
    2. Comme les bytecodes dex sont convertis en code machine natif lors de l'installation elle-même, l'installation prend plus de temps.

    Les temps d'installation sur mon Nexus 4, pour l'un de nos projets plus importants, ont sauté de ~ 17 s à ~ 25 s.

    Dalvik vs ART Benchmark Results (Android 4.4): Linpack

    Fil unique —> Dalvik (135) —> ART (149) —> 10.93%

    Multi-Filetage —> Dalvik (336) —> ART (383) —> 13.82%

    Dans Android 4.4 et versions antérieures, avec Dalvik, Google a lancé un nouvel Android Runtime appelé "ART".

    Différence entre ART vs Dalvik

    ART (Android RunTime) possède une compilation Ahead-of-Time (AOT) principale,

    AOT vs JIT

    Le format d'application Android est .apk et toutes les classes Java converties en bytecode DEX. Le format bytecode DEX est indépendant de l'architecture du périphérique et doit être traduit en code machine natif pour fonctionner sur le périphérique. C'est le même pour l'ART et les temps de fonctionnement de Dalvik.

    Main Difference, ART (Android RunTime) a utilisé la compilation Ahead-of-Time (AOT), Dalvik est une compilation Just-in-Time (JIT) utilisée

    Avec la compilation Dalvik, Just-in-Time (JIT) chaque fois que l'application s'exécute, elle convertit le code byte dex en code machine et en cache.

    Voir ici plus de détails http://androidboost.over-blog.com/2016/10/art-vs-dalvik.html

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.