Tengo algunas preguntas sobre los archivos dex
- ¿Qué es un
dexarchivo en Android? - ¿Cómo funciona dex para Android?
- ¿Cómo se usan para depurar una aplicación de Android?
- ¿Son similares a los archivos de clase de Java?
Necesito información específica, por favor ayuda en esto y cualquier ejemplo real es bienvenido.

Respuestas:
Sobre el archivo .dex:
Una de las características más notables de
Dalvik Virtual Machine(el caballo de batalla bajo el sistema Android) es que no utiliza el código de bytes de Java. En cambio, se introdujo un formato local llamado DEX y ni siquiera las instrucciones de bytecode son las mismas que las de Java.Los programas de Android se compilan en
.dexarchivos (Dalvik Executable), que a su vez se comprimen en un solo.apkarchivo en el dispositivo..dexLos archivos se pueden crear traduciendo automáticamente las aplicaciones compiladas escritas en el lenguaje de programación Java.Formato de archivo Dex:
Android tiene documentación sobre los
Dalvik Executable Format( archivos .dex ). Puede encontrar más información en los documentos oficiales: Formato de archivo Dex.dexlos archivos son similares a los archivos de clase java, pero se ejecutaron bajo la máquina virtual Dalkvik (DVM) en versiones anteriores de Android, y se compilaron en el momento de la instalación en el dispositivo con código nativo con ART en las versiones más recientes de Android.Puede
decompile.dex utilizando ladexdumpherramienta que se proporciona en android-sdk.También hay algunas técnicas de ingeniería inversa para hacer un
jar fileojava class filedesde un.dexarchivo.fuente
dexdumpno es un descompilador sino un desensambladorArchivo compilado de código de aplicación de Android.
Los programas de Android se compilan en archivos .dex (Dalvik Executable), que a su vez se comprimen en un solo archivo .apk en el dispositivo. Android puede crear automáticamente archivos .dex traduciendo las aplicaciones compiladas escritas en el lenguaje de programación Java.
fuente
dexEl archivo es un archivo que se ejecuta en la máquina virtual Dalvik.Dalvik VM incluye varias funciones para la optimización, verificación y supervisión del rendimiento, una de las cuales es Dalvik Executable (DEX) .
El compilador de Java compila el código fuente de Java en
.classarchivos. Luego, ladxherramienta (dexer), parte del SDK de Android, procesa los.classarchivos en un formato de archivo llamadoDEXque contiene el código de bytes Dalvik. Ladxherramienta elimina toda la información redundante que está presente en las clases. EnDEXtodas las clases de la aplicación se empaquetan en un solo archivo. La siguiente tabla proporciona una comparación entre los tamaños de código para los archivos jar JVM y los archivos procesados pordexherramienta.La tabla compara los tamaños de código para las bibliotecas del sistema, las aplicaciones del navegador web y una aplicación de uso general (aplicación de despertador). En todos los casos, la herramienta dex redujo el tamaño del código en más del 50%.
En entornos Java estándar, cada clase en código Java da como resultado un
.classarchivo. Eso significa que si el archivo de código fuente Java tiene una clase pública y dos clases anónimas, digamos para el manejo de eventos, entonces el compilador de Java creará un total de tres.classarchivos.El paso de compilación es el mismo en la plataforma Android, lo que resulta en múltiples
.classarchivos. Pero después de.classque se generan los archivos, la herramienta "dx" se usa para convertir todos los.classarchivos en un solo.dexarchivo, o Dalvik Executable. Es el.dexarchivo que se ejecuta en la máquina virtual Dalvik. El.dexarchivo se ha optimizado para el uso de memoria y el diseño se basa principalmente en el intercambio de datos.fuente