47 votes

Quelle est la différence entre les ROMs odexées et déodexées ?

Quelle est la différence entre odexed et deodexed ? ROMs ? Quelles sont les ROMs standard (stock) que les navires utilisent ?

42voto

David Negron Points 971

A .dex est essentiellement une version compilée en bytecode d'une application qui a été construite pour la VM Dalvik sur laquelle les applications Android fonctionnent. Je crois que c'est l'abréviation de Dalvik Executable, mais je ne suis pas sûr de m'en souvenir correctement.

Un site .odex est un fichier optimisé .dex (d'où le "o"), ce qui signifie qu'il a été pré-compilé pour une plate-forme spécifique. L'avantage de cette méthode est que le démarrage est beaucoup plus rapide, car la VM n'a pas à effectuer d'optimisation au démarrage/à l'exécution. Les inconvénients sont les suivants : 1) cela prend de l'espace supplémentaire et 2) une application odexée ne fonctionnera pas correctement si elle est placée sur un autre appareil, et elle doit avoir le code d'accès associé. .odex pour s'exécuter du tout.

Les ROMs sont généralement publiées sous forme deodexée parce qu'elles peuvent être thématisées et modifiées assez facilement, alors que thématiser/modifier une ROM odexée est pratiquement impossible (au mieux, les choses se planteraient comme des fous). Certaines personnes choisissent également de publier leurs ROMs en version odexée pour les personnes qui préfèrent les gains de performance.

La plupart des ROMs stock que j'ai vu sont odexées, je suppose que c'est parce que les transporteurs/fabricants veulent augmenter les performances. Ils n'ont pas non plus de méthodes officielles de thématisation, donc ils ne se soucient probablement pas que vous ne puissiez pas changer les couleurs de vos icônes d'état ou de votre texte système ou autre. De plus, ils ont l'avantage de savoir sur quel appareil ils veulent faire fonctionner leur système, ce qui leur permet de précompiler le code source de l'application. .odex des fichiers très facilement, j'imagine. En prime, cela rend difficile le fait de tirer .apk les fichiers de l'appareil et les partager avec d'autres personnes.

Edit : Puisque je viens de réaliser que je n'ai pas été très explicite sur la différence ici - une ROM "odexée" est une ROM où les applications ont été précompilées, et contiennent donc des applications associées. .odex qui sont externes à l .apk fichiers. Une ROM "deodexée" est une ROM dans laquelle les données qui seraient optimisées dans le fichier .odex a été plus ou moins fusionné dans le dossier de l'UE. .apk (ce qui signifie qu'il n'est pas optimisé, mais qu'il est fondamentalement indépendant de la plate-forme). .apk sont autonomes et il n'y a pas de .odex des fichiers. Cela se fait généralement à l'aide d'un utilitaire de deodexing, tel que smali/baksmali .

0 votes

La dernière modification, rendant les choses plus explicites, a été très utile. +1

10voto

Codeversed Points 371

J'ai personnellement voulu connaître la réponse à cette question il y a quelque temps. Voici ce que j'ai trouvé :

Odexed et Deodexed

Une ROM standard est censée être odexée pour la sortie, 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 l'utilisateur, le .odex est utilisé pour lancer le chargement de l'application. Une ROM qui est désodexée ne contient que le fichier .apk. Lorsque l'application est appelée en mémoire à partir des 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 que l'on me pose trop souvent sont les suivantes :

  1. Pourquoi les ROM personnalisées sont-elles déodées ?
  2. Dois-je utiliser une ROM odexée ou dédexée ?

Pour répondre à ces questions, il suffit d'un mot, la thématisation. Si vous parlez à quelqu'un qui thématise des ROM's, il vous dira qu'il est extrêmement plus facile de thématiser une ROM deodexée. Depuis que nous avons commencé à utiliser des ROM deodexées, les thématiseurs peuvent maintenant créer des thèmes à appliquer à une ROM plutôt que l'option fastidieuse de thématiser la ROM elle-même (sortir une ROM personnalisée pour un thème). Si vous utilisez une ROM odexée et essayez d'appliquer des thèmes, cela ne fonctionnera pas ou ne thématisera que certains aspects visuels, ce qui vous donnera une interface utilisateur terrible à expérimenter.

Deodex Cons

Je parie que vous vous demandez maintenant pourquoi pourquoi il y a même une option pour télécharger une ROM personnalisée qui est odexée ? La réponse à cette question est la vitesse. Vous vous souvenez que j'ai dit que les fichiers odexés sont optimisés pour une récupération plus facile ? En termes simples ils sont optimisés (comme l'indexation d'une table de données) pour que le système puisse ouvrir le fichier .apk plus rapidement.

Deodex et zipalign

Tout le monde voulait le meilleur des deux mondes, alors rapidement après que la tendance au deodexed ait atteint son apogée, ces développeurs de ROM avisés ont trouvé une solution pour aligner la fermeture éclair au démarrage. Cela optimise chaque .apk à chaque redémarrage, ce qui permet au système d'accéder aux applications plus efficacement et, surtout, plus rapidement. Bien sûr, l'inconvénient est un temps de démarrage légèrement plus lent.

Résumé

Si vous avez le choix de télécharger la ROM personnalisée odexed ou deodexed, j'irais juste avec la ROM deodex. On ne sait jamais quand on voudra essayer un thème ou faire quelques modifications soi-même et c'est bien d'avoir des options faciles plutôt que de flasher une toute nouvelle ROM. Avec les appareils récents, vous ne verrez peut-être même pas de différence notable avec zipalign au démarrage. Si votre appareil est plutôt lent et dépassé, alors je vous suggère d'y réfléchir un peu plus. Je parie que certains d'entre vous préféreraient obtenir une ROM minimale optimisée (odexée) pour de meilleures performances et une plus grande vitesse plutôt que de personnaliser l'interface utilisateur.

Si vous êtes novice en la matière, vous trouverez quelques termes courants dans 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 raté quelque chose, faites-le moi savoir :)

2voto

Thej Points 655

Un fichier .dex (exécutable dalvik) est fondamentalement similaire aux fichiers .exe de Windows (sauf qu'il s'agit du langage de la VM Dalvik, au lieu du code compilé). En fait, .odex (exécutable dalvik optimisé) et deodex (exécutable dalvik désoptimisé) concernent la façon dont les fichiers de ressources sont traités dans les applications. Le .odex est un fichier .dex qui a été optimisé par le programme dexopt : http://www.netmite.com/Android/mydroid/dalvik/docs/dexopt.html

Avantage

  • odex est plus rapide
  • cela facilite la création de thèmes

Désavantage

  • deodex est plus lent au premier démarrage
  • les fichiers .odex rendent la création de thèmes plus difficile

0 votes

Deodex " ne signifie pas " de-optimized .dex ", cela signifie supprimer les fichiers .odex (de-add les fichiers .odex, en substance). eldarerathis a raison.

0 votes

Merci d'avoir donné l'information essentielle sur le fait que l'odexing est une question de ressources ! Cela dit : La comparaison avec l'exe n'est pas terrible.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X