Sé que dalvik vm utiliza dalvik bytecode. ¿Art utiliza dalvik bytecode o algo más?
Respuestas
¿Demasiados anuncios?ART utiliza el bytecode de Dalvik, pero a diferencia de Dalvik, que sólo crea una versión optimizada de su bytecode antes de que todo sea interpretado por la VM, ART puede compilar parte del bytecode de Dalvik a código nativo mientras que otro código se interpreta.
Sin embargo, los APKs de Android siguen conteniendo archivos DEX, que es el código de bytes de Dalvik.
ART es simplemente Dalvik 2.x (y superior) si se comprueba la versión de Dalvik. Tiene que ser capaz de ejecutar cualquier archivo *.apk válido por lo que obviamente debe soportar todas las instrucciones de Dalvik VM. El formato de las instrucciones sigue siendo el mismo que antes, y también lo son los instrucciones
El tiempo de ejecución de Android (ART) es el tiempo de ejecución gestionado que utilizan las aplicaciones y algunos servicios del sistema en Android. ART y su predecesor Dalvik se crearon originalmente de forma específica para el proyecto Android. ART como tiempo de ejecución ejecuta el formato Dalvik Executable y la especificación de bytecode Dex .
ART y Dalvik son tiempos de ejecución compatibles que ejecutan bytecode Dex por lo que las aplicaciones desarrolladas para Dalvik deberían funcionar cuando se ejecutan con ART. Sin embargo, algunas técnicas que funcionan en Dalvik no funcionan en ART. Para obtener información sobre los problemas más importantes, consulte Verificación del comportamiento de las aplicaciones en el tiempo de ejecución de Android (ART).
...
En el momento de la instalación, ART compila las aplicaciones utilizando la herramienta dex2oat en el dispositivo. Esta utilidad acepta archivos DEX como entrada y genera un ejecutable de aplicación compilado para el dispositivo de destino. La utilidad debería ser capaz de compilar todos los archivos DEX válidos sin dificultad .
0 votos
Sí a ambos - DEX (Dalvik) y "algo más" (nativo ELF ). Para más detalles, véase, por ejemplo, el Artículo de Wikipedia sobre ART .