¿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?
- Serializar objetos entre Android y PC (Dalvik vs JVM)
- Casting resultado de la multiplicación de dos enteros positivos a largo es el valor negativo
- Programación funcional pura en android
- JAVA_OPTS para aumentar el tamaño del montón
- Android Studio: Error al crear el código de error JVM: -1
- Pruebas automatizadas en el desarrollo de Android
- ¿Qué no puedes hacer en la VM de Dalvik (VM de Android) que puedes usar en Sun VM?
- Android Studio Gradle proyecto "No se puede iniciar el proceso de daemon / inicialización de VM"
- Error al iniciar Android Studio: Error al crear JVM: código de error-6
- ¿Llevar la Java VM de Android al iPhone?
- Traducción de código Python a JVM
- No se pudo crear la máquina virtual de Java
- Dx Advertencia cuando ejecute mi aplicación Android
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.
- Obtener la fecha actual como advertencia de cadena obsoleta toGmtString () issue
- Borrar todas las tareas recientes Programáticamente