Pregunta ¿Cuál es la diferencia entre los archivos .class y .dex?


Por supuesto, .dex los archivos son para la máquina virtual Dalvik de Android y .class los archivos son para la JVM. Pero me pregunto si tienen diseños similares (Grupo constante, Campos, Métodos, Atributos, ...)? El bytecode es diferente, pero ¿hay códigos de operación específicos de Dalvik equivalentes a los de la JVM?


8
2017-11-21 10:13


origen


Respuestas:


Mientras que un archivo jar de Java tiene muchos archivos de clase, cada archivo APK tiene solo un archivo archivo classes.dex, como se muestra a continuación. De acuerdo con Google, el formato APK difiere del formato de archivo de clase por razones de rendimiento y seguridad.

enter image description here


16
2018-04-04 06:06



Hay una Formato de archivo Dex y el Especificación de formato de archivo de clase de la compañía respectiva.

Estos 2 archivos son completamente diferentes.


3
2017-11-21 10:19



El formato ejecutable de Dalvik es el código que ejecuta la máquina virtual. Dalvik VM no puede ejecutar bytecode de Java, debe compilarse a dex, ya que utiliza un conjunto de instrucciones alternativo.

Leer el artículo wiki.


-1
2017-11-21 10:26