1 votos

¿Qué es una aplicación "odex"?

Vi una aplicación (olvidé el nombre) en el Galaxy Mini de mi primo mientras estaba dentro de la aplicación Link2SD. Tenía el texto -Odex- al lado de su nombre. Era la única aplicación así en Link2SD. Me dio curiosidad, así que le pregunté, pero al parecer él tampoco lo sabe, por eso recurro ahora a aquí, ¿qué es exactamente una aplicación "odex"?

Basándome en algunas búsquedas en Google, llegué a la conclusión de que es una especie de "cosa" desglosada en piezas separadas. También hablan sobre "deodexing", pero siempre se refieren a roms y no a apps. Así que como pregunta adicional, ¿cómo puedo "deodexar" esa aplicación? (Soy un poco maniático como así :P)

5voto

Izzy Puntos 45544

Para resumir la información relevante, permítanme citar de la Q&A que eldarerathis enlazó arriba (todos los créditos van para él, ya que esta es su respuesta):

Un archivo .dex es básicamente una versión de bytecode compilada de una aplicación que ha sido construida para la Máquina Virtual Dalvik en la que se ejecutan las aplicaciones de Android. Creo que es una abreviatura de Ejecutable Dalvik, pero no estoy seguro si lo estoy recordando correctamente.

Un archivo .odex es un archivo .dex optimizado (de ahí la 'o'), lo que significa que básicamente ha sido precompilado para una plataforma específica. La ventaja de esto es que el tiempo de arranque es mucho más rápido ya que la VM no tiene que realizar ninguna optimización en el arranque/ejecución. Las desventajas son 1) que ocupa algo de espacio adicional y 2) una aplicación con extensión odex no se ejecutará correctamente si se coloca en otro dispositivo, y debe tener el archivo .odex asociado para ejecutarse en absoluto.

Cuando instalas una aplicación, Android analizará el archivo .apk y configurará la caché de Dalvik del dispositivo con una versión optimizada de su código, por lo que la aplicación se iniciará y ejecutará más rápido (después de un restablecimiento de fábrica de tu dispositivo, lo hace para todas las aplicaciones preinstaladas, e incluso para todas las aplicaciones de usuario, después de borrar la caché de Dalvik, lo cual es posible desde el menú de recuperación con la mayoría de las CustomROMs, por eso la primera arrancada tarda mucho más que las arrancadas posteriores).

Sin embargo, cuando se encuentra un "odex", simplemente se copiará en la caché de Dalvik. Como señaló eldarerathis, el archivo .odex se construyó para hardware específico (me recuerda al Assembly) - por lo que si ese "hardware específico" no es el que utiliza el dispositivo actual, seguramente tendrás problemas.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X