Quelle est la différence entre les ROM odexed et désodexées?

43

Quelle est la différence entre les ROM odexed et désodexées ? Quelles sont les ROM standard (en stock) utilisées?

Jeremy Edwards
la source

Réponses:

39

Un .dexfichier est essentiellement une version compilée de code temporel d'une application créée pour la machine virtuelle Dalvik sur laquelle les applications Android sont exécutées. Je crois que c'est l'abréviation de Dalvik Executable, mais je ne sais pas si je m'en souviens bien.

Un .odexfichier est un .dexfichier optimisé (d'où le «o»), ce qui signifie qu'il a été précompilé pour une plate-forme spécifique. L'avantage de ceci est que le temps de démarrage est beaucoup plus rapide, car la VM n'a à effectuer aucune optimisation au démarrage / à l'exécution. Les inconvénients sont 1) le fait que cela prenne de l'espace supplémentaire et 2) une application odexed ne fonctionnera pas correctement si elle est installée sur un autre appareil et le .odexfichier associé doit être exécuté.

Les ROM sont généralement libérées sous forme désodexée car elles peuvent être thématisées et modifiées assez facilement, alors que thématiser / modifier une ROM odexed est fondamentalement impossible (au mieux, les choses planteraient comme un fou). Certaines personnes choisissent également de publier leurs ROMs dans des versions odexed pour ceux qui préfèrent les gains de performances.

La plupart des ROM en stock que j'ai vues sont odexed, je suppose, car les opérateurs / fabricants veulent une amélioration de leurs performances. Ils n’ont pas non plus de méthodes de thématisation officielles, aussi ne se soucient-ils probablement pas de ne pas pouvoir changer les couleurs de vos icônes d’état, de votre texte système ou autre chose. De plus, ils ont l’avantage de savoir sur quel périphérique ils souhaitent que leur système fonctionne, afin de pouvoir pré-compiler les .odexfichiers très facilement, j’imagine. En prime, il est difficile d'extraire des .apkfichiers de l'appareil et de les partager avec des personnes.

Edit: Puisque je viens de me rendre compte que je n’étais pas très explicite sur la différence, une ROM "odexed" est une ROM où les applications ont été précompilées et contiennent donc des .odexfichiers associés qui sont externes aux .apkfichiers. Une ROM "désodexée" est une ROM dans laquelle les données qui seraient optimisées dans les .odexfichiers ont été plus ou moins fusionnées dans les .apkfichiers (ce qui signifie qu'elle n'est pas optimisée mais essentiellement .apkindépendante de la plate-forme), de sorte que les fichiers sont autonomes et qu'il n'y a pas de .odexfichiers. . Cela se fait généralement avec un utilitaire de désextraction, tel que smali / baksmali .

eldarerathis
la source
La dernière édition, rendre les choses plus explicites était très utile. +1
vendredi
7

Personnellement, je voulais connaître la réponse à cette question il y a un moment. Voici ce que je suis venu avec:

Odexed et Deodexed

Une ROM standard est supposée être odexed pour la publication, ce qui permet un chargement plus fluide et plus rapide des applications en mémoire. Chaque .apk a un .odex correspondant. Lorsque l'application est utilisée par le système ou par l'utilisateur, le .odex est utilisé pour commencer à charger l'application. Une ROM désodexée ne contient que le fichier .apk. Lorsque l'application est appelée dans la mémoire en extrayant uniquement les données de son fichier .apk, cela prend plus de temps car il n'est pas optimisé pour une récupération plus facile à partir du système.

Les questions courantes que l'on me pose trop souvent sont les suivantes:

  1. Pourquoi les ROM personnalisées sont-elles désodexées?
  2. Devrais-je utiliser une ROM odexed ou désodexée?

Répondre à ces questions se résume à un mot, capacité. Si vous parlez à quelqu'un de thèmes de ROM, ils vous diront qu'il est extrêmement facile de thématiser une ROM désodexée. Depuis que nous avons commencé à utiliser des ROM désodexées, les utilisateurs pouvaient désormais créer des thèmes à appliquer à une ROM plutôt que l’option fastidieuse de thématiser la ROM elle-même (publier une ROM personnalisée pour un thème). Si vous utilisez une ROM odexed et essayez d’appliquer des thèmes, cela ne fonctionnera pas ou seulement certains aspects visuels, ce qui vous donnera une interface utilisateur épouvantable à expérimenter.

Deodex Cons

Je parie que vous vous demandez maintenant pourquoi… pourquoi existe-t-il même une option pour télécharger une ROM personnalisée odexed? La réponse à cette question est la vitesse. Rappelez-vous comment j'ai dit que les fichiers odexed sont optimisés pour une récupération plus facile? En bref, il est optimisé (comme l’indexation d’une table de données) afin que le système puisse ouvrir le fichier .apk plus rapidement.

Deodex et zipalign

Tout le monde voulait le meilleur des deux mondes si rapidement après le début de la tendance à la désodexation, ces développeurs de ROM bien avertis ont proposé une solution permettant de compresser au démarrage. Cela optimise chaque fichier .apk à chaque redémarrage, ce qui permet ensuite au système d’accéder aux applications plus efficacement et plus rapidement encore. Bien entendu, l’inconvénient est que les temps de démarrage sont légèrement plus lents.

Sommaire

Si vous avez le choix de télécharger la ROM personnalisée odexed ou déodexée, je voudrais simplement aller avec la ROM deodex. Vous ne savez jamais quand vous voudrez essayer un thème ou apporter des modifications vous-même. Il est agréable d'avoir des options simples plutôt que de flasher une toute nouvelle ROM. Avec les nouveaux appareils, vous ne verrez peut-être même pas une différence notable avec zipalign au démarrage. Si votre appareil est assez lent et obsolète, alors je vous conseillerais d'y réfléchir un peu plus fort. Je parierais que certains d'entre vous préféreraient obtenir une belle ROM optimisée (odexed) minimale pour de meilleures performances et une plus grande rapidité que la personnalisation de l'interface utilisateur.

Si vous êtes nouveau sur le sujet, vous pouvez trouver quelques termes courants sur mon article original ici: http://codeversed.com/deodexed-vs-odexed-rom

Sinon, ce qui précède vous montre tout ce que vous devez savoir. Si j'ai manqué quelque chose, s'il vous plaît faites le moi savoir :)

Codé
la source
1

Un fichier .dex (fichier exécutable dalvik) est fondamentalement similaire aux fichiers .exe de Windows (sauf dans la langue de Dalvik VM, au lieu du code compilé). Fondamentalement, .odex (exécutable optimisé pour Dalvik) et déodex (exécutable non optimisé pour Dalvik) sont liés à la manière dont les fichiers de ressources sont gérés dans les applications. Le fichier .odex est un fichier .dex optimisé par le programme dexopt: http://www.netmite.com/android/mydroid/dalvik/docs/dexopt.html

Avantage

  • Odex est plus rapide
  • cela facilite la thématisation

Désavantage

  • deodex est plus lent au premier démarrage
  • les fichiers .odex compliquent la thématisation
Lie Ryan
la source
"Deodex" ne veut pas dire .dex dés-optimisé, cela signifie supprimer les fichiers .odex (enlevez les fichiers .odex, en substance). eldarerathis a raison.
Matthew Lu
Merci d’avoir donné l’information essentielle d’odexing sur les ressources! Cela dit: la comparaison exe n'est pas géniale.
Paul