¿Cuál es la diferencia entre ROM odexed y desodexed?


43

¿Cuál es la diferencia entre ROM odexed y desodexed ? ¿Cuál es la ROM estándar (estándar) que se envía?

Respuestas:


39

Un .dexarchivo es básicamente una versión compilada de bytecode de una aplicación que se ha creado para Dalvik VM en la que se ejecutan las aplicaciones de Android. Creo que es la abreviatura de Dalvik Executable, pero no estoy seguro de recordarlo correctamente.

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

Por lo general, las ROM se lanzan en forma desdexada porque pueden ser temáticas y modificadas con bastante facilidad, mientras que el tema / modificación de una ROM odexada es básicamente imposible (en el mejor de los casos, las cosas se estrellarían como locas). Algunas personas también optan por lanzar sus ROM en versiones indexadas para las personas que preferirían las mejoras de rendimiento.

Supongo que la mayoría de las ROM de stock que he visto están indexadas, supongo porque los operadores / fabricantes quieren el aumento del rendimiento. Tampoco tienen ningún tipo de métodos de temas oficiales, por lo que probablemente no les importe si no puede cambiar los colores de sus iconos de estado o el texto de su sistema o cualquier otra cosa. Además, tienen la ventaja de saber en qué dispositivo quieren que se ejecute su sistema, por lo .odexque imagino que pueden precompilar los archivos muy fácilmente. Como .apkbeneficio adicional, hace que sea difícil extraer archivos del dispositivo y compartirlos con las personas.

Editar: desde que me di cuenta de que no era muy explícito acerca de la diferencia aquí, una ROM "indexada" es aquella en la que las aplicaciones se han precompilado y, por lo tanto, contienen .odexarchivos asociados que son externos a los .apkarchivos. Una ROM "desodexada" es aquella en la que los datos que se optimizarían en los .odexarchivos se han fusionado más o menos en los .apkarchivos (lo que significa que no está optimizado sino que es básicamente .apkindependiente de la plataforma), por lo tanto, los archivos son independientes y no hay .odexarchivos . Esto generalmente se hace con una utilidad de desdexación, como smali / baksmali .


La última edición, hacer las cosas más explícitas fue muy útil. +1
rbrito

7

Yo personalmente quería saber la respuesta a esto hace un rato. Esto es lo que se me ocurrió:

Odexed y Deodexed

Se supone que una ROM estándar está indicada para su lanzamiento, lo que proporciona una carga más rápida y fluida de las aplicaciones en la memoria. Cada .apk tiene su correspondiente .odex. Cuando el sistema o el usuario usan la aplicación, el .odex se usa para comenzar a cargar la aplicación. Una ROM que está desdexada solo tiene el archivo .apk. Cuando la aplicación se llama a la memoria solo extrayendo los datos de su .apk, esto lleva más tiempo debido a que no está optimizada para una recuperación más fácil del sistema.

Las preguntas comunes que me hacen con demasiada frecuencia son:

  1. ¿Por qué se desodexan las ROM personalizadas?
  2. ¿Debo usar una ROM odexed o desodexed?

Para responder a estas preguntas, todo se reduce a una palabra, themability. Si habla con alguien sobre los temas de las ROM, le dirán que es extremadamente más fácil crear un tema para una ROM descodificada. Desde que comenzamos a usar ROM desodexadas, los temáticos ahora podían crear temas para aplicar a una ROM en lugar de la tediosa opción de crear un tema para la ROM en sí (lanzar una ROM personalizada para un tema). Si usa una ROM odexed e intenta aplicar temas, no funcionará o solo presentará algunos aspectos visuales, lo que le brindará una interfaz de usuario terrible para experimentar.

Desodex Contras

Apuesto a que ahora se pregunta por qué ... ¿por qué hay incluso una opción para descargar una ROM personalizada que está indexada? La respuesta a eso es la velocidad. ¿Recuerdas cómo dije que los archivos indexados están optimizados para una recuperación más fácil? En pocas palabras ... está optimizado (como indexar una tabla de datos) para que el sistema pueda abrir el archivo .apk más rápido.

Deodex y zipalign

Todos querían lo mejor de ambos mundos tan rápido después de que la tendencia de desodice comenzó a alcanzar su punto máximo, estos desarrolladores de ROM inteligentes idearon una solución para zipalign en el arranque. Esto optimiza cada .apk en cada reinicio, lo que permite que el sistema acceda a las aplicaciones de manera más eficiente y, lo que es más importante, más rápido. Por supuesto, la desventaja es que los tiempos de arranque son un poco más lentos.

Resumen

Si tiene la opción de descargar la ROM personalizada odexed o desodexed, simplemente iría con la ROM deodexed. Nunca se sabe cuándo desea probar un tema o hacer algunas modificaciones usted mismo y es bueno tener opciones fáciles en lugar de flashear una ROM completamente nueva. Con los dispositivos más nuevos, es posible que ni siquiera vea una diferencia notable para zipalign en el arranque. Si su dispositivo es bastante lento y anticuado, entonces sugeriría pensar un poco más en esto. Apuesto a que algunos de ustedes preferirían obtener una ROM mínima optimizada (indexada) para un mejor rendimiento y velocidad en lugar de personalizar la interfaz de usuario.

Si eres nuevo en el tema, puedes encontrar algunos términos comunes en mi artículo original aquí: http://codeversed.com/deodexed-vs-odexed-rom

De lo contrario, lo anterior le muestra todo lo que necesita saber. Si me perdí algo, hágamelo saber :)


1

Un archivo .dex (ejecutable dalvik) es básicamente similar a los archivos .exe de Windows (excepto en el lenguaje Dalvik VM, en lugar del código compilado). Básicamente, .odex (ejecutable dalvik optimizado) y deodex (ejecutable dalvik no optimizado) se relacionan con la forma en que se manejan los archivos de recursos en las aplicaciones. El .odex es un archivo .dex que ha sido optimizado por el programa dexopt: http://www.netmite.com/android/mydroid/dalvik/docs/dexopt.html

Ventaja

  • odex es más rápido
  • facilita el tema

Desventaja

  • deodex es más lento en el primer inicio
  • los archivos .odex hacen que el tema sea más difícil

"Deodex" no significa desdex optimizado, significa eliminar los archivos .odex (en esencia, quitar los archivos .odex). Eldarerathis tiene razón.
Mateo leyó el

¡Gracias por dar la información crítica de la odexación sobre los recursos! Dicho esto: la comparación de exe no es genial.
Paul
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.