¿Cuál es la diferencia entre DVM y ART? ¿Por qué DVM ha sido oficialmente reemplazado por ART en Lollipop?

Desde Android Lollipop, Google ha reemplazado DVM con ART porque el ART es más rápido que DVM. ¿Hay alguna otra razón para eso?

Hay algunas mejoras de rendimiento importantes que ART trae que faltaban en Dalvik. Pero todos los pros tienen algunos contras también. Voy a tratar de discutir las ventajas y desventajas aquí.

1) Enfoque de compilación

Esta es, con mucho, la mayor ventaja de ART sobre Dalvik. El viejo Dalvik utilizó el método Just-In-Time (JIT) en el que la compilación se realizó bajo demanda. Todos los archivos dex se convirtieron en sus respectivas representaciones nativas sólo cuando era necesario.

Pero ART utiliza el enfoque Ahead-Of-Time (AOT) , en el que los archivos dex fueron compilados antes de que fueran demandados. Esto en sí macizo mejora el rendimiento y la duración de la batería de cualquier dispositivo Android.

Por ejemplo

En caso de Dalvik, cada vez que toque un icono de la aplicación para abrirlo, los archivos dex necesarios se convierte en sus códigos nativos equivalentes. La aplicación sólo comenzará a funcionar cuando se complete esta compilación. Por lo tanto, la aplicación no responde hasta que esto termina.

Por otra parte, este proceso se repite cada vez que se abre una aplicación perdiendo ciclos de CPU y valioso jugo de la batería.

Pero en el caso de ART, cuando instalas una aplicación, todos los archivos dex se convierten de una vez por todas . Así que la instalación lleva algún tiempo y la aplicación toma más espacio que en Dalvik, pero el rendimiento se ha mejorado enormemente y la vida de la batería se conserva inteligentemente .

2) Tiempo de arranque

En caso de Dalvik, la caché se construye con el tiempo que el dispositivo se ejecuta y las aplicaciones se utilizan como se indica por el enfoque JIT. Así que el tiempo de arranque es muy rápido.

Pero en el caso de ART, la caché se construye durante el primer arranque, por lo que el tiempo de arranque es considerablemente mayor en el caso de ART . Es posible que vea un cuadro de diálogo "Optimizar las aplicaciones" a veces arranca.

3) Uso del Espacio

El espacio utilizado por las aplicaciones que se ejecutan en ART es mucho más que el de Dalvik. Como una aplicación de 20 MB en Dalvik, toma más de 35 MB en ART.

Así que si usted está en un dispositivo de almacenamiento bajo, entonces esto puede ser una gran desventaja para usted.

4) El arte es un maldito ayuno

Como se ha discutido anteriormente, el ART es extremadamente rápido y suave . Las aplicaciones son muy ágil y sensible. Cualquier comparación entre Dalvik y ART, seguramente hará que el dispositivo ART ganar por un margen significativo.

ART es la respuesta a todos aquellos que argumentaron que iOS es más rápido y más suave que Android y también es más eficiente de la batería.

Esto es lo que Wikipedia dice sobre este tema:

"A diferencia de Dalvik, ART introduce el uso de la compilación anticipada (AOT) al compilar aplicaciones enteras en el código nativo de la máquina después de su instalación.Al eliminar la interpretación de Dalvik y la compilación JIT basada en trazas, ART mejora la eficiencia general de ejecución y reduce la potencia Al mismo tiempo, ART ofrece una ejecución más rápida de las aplicaciones, una mejor asignación de memoria y mecanismos de recolección de basura (GC), nuevas funciones de depuración de aplicaciones y un perfil más preciso de aplicaciones de alto nivel. " (Obtenido el 2015-08-12)

Así que para responder a su pregunta, además de ser más rápido, ART reduce el consumo de energía, y tiene características que hacen más fácil para depurar y afinar las aplicaciones.

Hay muchos otros artículos interesantes e informativos y publicaciones de blog sobre "Davlik versus ART". Google puede ayudarlo a encontrarlos.

En Android Lolipop, DVM ha sido reemplazado por ART. Dado que DVM convierte bytecode cada vez que inicia una aplicación específica. Pero ART lo convierte sólo una vez en el momento de la instalación de la aplicación. Esto facilita la ejecución de la CPU. ARM es una arquitectura. Como MIPS, x86, etc DVM / ART se ejecuta en la parte superior de ARM. Ambos no pueden reemplazarse. Espero que esto despeje su confusión.

Android 4.4 KitKat, Google decidió introducir una nueva forma de ejecutar aplicaciones en la parte superior del sistema operativo Android. Echemos un vistazo a lo que este nuevo tiempo de ejecución, llamado ART

ART es el proyecto secreto de dos años de duración de Google, cuyo objetivo es mejorar el rendimiento de nuestros dispositivos Android.

Android L (5.0) ART se ha realizado como tiempo de ejecución predeterminado (ART ha reemplazado completamente a Dalvik).

ART (Android RunTime) es la próxima versión de Dalvik. Dalvik es el tiempo de ejecución, bytecode y VM utilizados por el sistema Android para ejecutar aplicaciones de Android.

Dalvik se basa en la compilación JIT (justo a tiempo) . Esto significa que cada vez que ejecutas una aplicación, la parte del código requerida para su ejecución se va a traducir (compilado) al código de la máquina en ese momento. A medida que avance a través de la aplicación, se va a compilar y almacenar en caché un código adicional, para que el sistema pueda volver a usar el código mientras se ejecuta la aplicación. Dado que JIT compila sólo una parte del código, tiene una huella de memoria menor y utiliza menos espacio físico en el dispositivo.

ART vs Dalvik / AOT vs JIT

Ventajas de ART sobre Dalvik:

  1. La velocidad de lanzamiento de las aplicaciones es increíblemente rápida en el caso de ART, ya que nada se compila en la ejecución.
  2. La velocidad de arranque es más rápida que dalvik ya que nada se ejecuta desde la partición dalvik como en el caso de la ROM odexed en dalvik
  3. Aumenta la batería de respaldo al reducir el trabajo de la CPU debido a la ausencia de trabajo de compilación en la ejecución de las aplicaciones.
  4. Mejor colección de basura (GC)
  5. Y finalmente es una gran recompensa para los desarrolladores porque la mayoría de los desarrolladores están preocupados de que las ROMs odexed sean más rápidas que las ROM deodexed pero que deodex sus ROMs ya que fuertemente el tema. En el caso de ART si la ROM es odexed o deodexed no importa, compila el código completo en lenguaje de máquina en la instalación de aplicaciones. Por lo que incluso los ROM deodexed son tan rápidos como odexed en ART

Desventajas de ART

  1. Dado que ART precompila aplicaciones en la instalación, tarda un 10-20% más de espacio al instalarlo que dalvik.
  2. Como los bytecodes dex se convierten en código de máquina nativo en la instalación, la instalación tarda más tiempo.

Instalar veces en mi Nexus 4, para uno de nuestros proyectos más grandes, saltó de ~ 17 s a ~ 25 s.

Dalvik vs ART Benchmark Resultados (Android 4.4): Linpack

Hilo simple —> Dalvik (135) —> ART (149) —> 10.93%

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

En Android 4.4 y versiones anteriores, junto con Dalvik, Google presentó un nuevo Android Runtime llamado "ART".

Diferencia entre ART vs Dalvik

ART (Android RunTime) tiene la característica principal Ahead-of-Time (AOT) de compilación,

AOT vs JIT

El formato de las aplicaciones de Android es .apk y todas las clases de Java se convierten en bytecode DEX. El formato de bytecode DEX es independiente de la arquitectura del dispositivo y necesita ser traducido al código de máquina nativo para que se ejecute en el dispositivo. Esto es lo mismo para los tiempos de ejecución de ART y de Dalvik.

Diferencia principal, ARTE (androide RunTime) utilizó la compilación de Ahead-of-Time (AOT), Dalvik se utiliza Just-in-Time (JIT) compilación

Con Dalvik, Just-in-Time (JIT) compilación cada vez que ejecuta la aplicación, se convierte dex byte código en código de la máquina y en caché.

Vea aquí más detalle http://androidboost.over-blog.com/2016/10/art-vs-dalvik.html

  • Convertir cuerda a Uri
  • Haciendo la vista de lista de android desplazable
  • Android Shared Service?
  • Limitación del diccionario de reconocimiento de voz para una mejor coincidencia y buena precisión
  • ¿Qué hacer con nunca suceder, excepciones inútiles?
  • ¿Es necesario establecer los oyentes de la interfaz Fragment a null en detach?
  • Notificación de DeleteIntent roto en versiones posteriores de Android
  • Obtenga el país de un determinado huso horario de Java
  • Recurso no encontrado Excepción
  • Cómo agregar una clase personalizada que extiende la vista a la actividad principal?
  • Cómo configurar gradle-2.2.1-all.zip manualmente
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.