Saltar al contenido

Rol del archivo classes.dex en un archivo apk

Recabamos por distintos sitios para darte la solución para tu dilema, si tienes alguna difcultad puedes dejarnos la inquietud y contestamos porque estamos para ayudarte.

Solución:

Para crear un archivo APK, primero se compila un programa para Android y luego se empaquetan todas sus partes en un solo archivo. Esto contiene todo el código de ese programa (Estos son los .dex files), recursos, activos, certificados y archivo de manifiesto.

Los programas se escriben comúnmente en Java y compilado para bytecode. Luego se convierten de Java Virtual Machine-compatible .class files a Dalvik-compatible .dex (Dalvik Executable) antes de la instalación en un dispositivo. El formato compacto Dalvik Executable está diseñado para ser adecuado para sistemas que están limitados en términos de memoria y velocidad del procesador.

  • classes.dex: Las clases compiladas en el formato de archivo dex comprensible por la máquina virtual Dalvik

Como los archivos .dex contienen los recursos APK, cualquier edición en estos archivos afectará directamente al APK.

archivo .dex
Archivo de código de aplicación de Android compilado.

Desde las GUÍAS API de Android

Los programas de Android se compilan en .dex (Dalvik Executable) archivos, que a su vez se comprimen en un único .apk archivo en el dispositivo. Los archivos .dex se pueden crear mediante la traducción automática de aplicaciones compiladas escritas en el lenguaje de programación Java.

Y sí, si elimina esos archivos, afectará a APK.

classes.dex es esencialmente toda la lógica de la aplicación. El código de la aplicación dada se escribe en java y luego se compila en archivos de clase, luego estos archivos de clase se compilan de forma cruzada (con muchas optimizaciones) en formato dalvik VM. Tenga en cuenta que también puede haber algunos archivos .so que también son código de aplicación, pero se generan cuando se usa el NDK. No puede eliminar este archivo. Sin embargo, puede cambiarlo ejecutando primero esta utilidad https://github.com/JesusFreke/smali que generará un código pequeño a partir de este dex compilado que es algo similar a Java y podría entenderse. También puede usar las herramientas ApkOneClick o ApkMultiTool para obtener la fuente de Java de los archivos pequeños, pero probablemente no sean perfectos y requieran más arreglos. Cuando cambie el código que desea, debe compilar el archivo classes.dex nuevamente y colocarlo en el archivo zip/apk existente que tiene. Tenga en cuenta que los archivos de certificado existentes (META-INF) ya no serán válidos y deberá eliminar esta carpeta y volver a iniciar el paquete apk para instalarlo en el teléfono o el emulador.

Para obtener más información, también puede consultar esta pregunta. ¿Qué son los archivos .dex en Android?

También este es un excelente tutorial sobre cómo desensamblar archivos dex usando las herramientas existentes http://blog.vogella.com/2011/02/14/disassemble-android-dex

Calificaciones y comentarios

Si estás de acuerdo, tienes la habilidad dejar un ensayo acerca de qué te ha parecido esta división.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *