¿Por qué Android necesita una máquina virtual (DVM)?

Las máquinas virtuales se utilizan para ejecutar aplicaciones en diferentes sistemas operativos (Java compila el código en archivos .class independientes del sistema operativo que se interpreta en bytecode). Dado que las aplicaciones de Android se ejecutan en el mismo sistema operativo (es decir, Android), no requiere una VM (podría estar equivocado aquí). Entonces, ¿por qué necesita una VM Dalvik?

Android Platform puede ejecutarse en diferentes arquitecturas – ARM, MIPs y x86. Para resumir la necesidad de compilar binarios para cada arquitectura VM entra en juego. También hace la gestión de memoria para el desarrollador.

Necesitamos que alguien compile y convierta las clases java en bytecode que puede ser ejecutado por el intérprete.

Es similar a JVM … tienes archivos .java que serán compilados por el compilador java en archivos .class. los archivos .class no son más que bytecode que será ejecutado por la JVM. JVM puede residir en cualquier plataforma (windows, linux o unix).

En android también los archivos se compilan en archivos .dex y se ejecutan por DVM. sólo para dar una idea, cuando se instala la aplicación, el sistema operativo Android asigna un identificador de usuario único de Linux, se asigna un DVM para cada aplicación. Así que en resumen cada aplicación tiene su propio proceso linux, DVM y linux user id.

Los archivos java se compilan en archivos .dex que consumen menos memoria en comparación con los archivos .class.

Ahora suponga que 10 aplicaciones están teniendo 10 DVM individuales y el sistema operativo tiene 10 procesos para manejar.

El despachador o programador en el sistema operativo Android es responsable de manejar estos 10 procesos …. que es por eso que tenemos el ciclo de vida de la actividad de Android.

Necesita DVM para mantener el estado de ejecución de cada proceso (cada aplicación).

¿Por qué Android necesita una máquina virtual es sobre la base de que Google diseñó Android API para utilizar ampliamente una interfaz de Java. El propio Java se ejecuta normalmente en una máquina virtual.

La propia JVM es una máquina basada en la pila VM, mientras que la VM de Android (llamada Dalvik) es una VM basada en registro (esto es por el bien de menos código generado y velocidad más rápida para obtener un mejor rendimiento de cualquier dispositivo que esté usando Android)

El propósito de una máquina virtual es poder abstraer el hardware simulándolo. Si usted hace una máquina virtual y la compila para trabajar en cada hardware posible, usted consigue lo que hizo originalmente Java subir a la popularidad: escribir una vez ejecutar en cualquier lugar la portabilidad.

Podría escribir código, sin tener que cambiarlo y ejecutarlo en cualquier hardware en el que pueda funcionar su máquina virtual.

Digressing, Android se construye principalmente en C (y C + +?), Pero la API que manipula el sistema operativo se interconecta a través de Java, por lo que se requiere una máquina virtual.

  • Instalación de Android Studio, no apunta a un error de instalación de JVM válido
  • Error de Android Studio: "La variable de entorno no apunta a una instalación de JVM válida"
  • Lenguaje basado en JVM sin tiempo de ejecución de lenguaje
  • Android Studio se ejecuta en Windows 7 64bit falla
  • Problemas de inicialización de la clase cargando java.util.logging.LogManager en Android Dalvik VM
  • ¿Cuáles son las principales diferencias entre una VM de base de registro y una basada en una pila?
  • ¿El sistema android incluye JVM?
  • ¿Cómo se ajustan jvm args para la memoria dex en gradle?
  • Android java.exe terminado con valor de salida no nulo 1
  • ¿Cómo funciona NDK en Android - ¿Cuál es la orden que NDK, JNI etc se utilizan?
  • Cadena de byte con UTF-8 da diferentes resultados en Android que en Windows JVM
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.