par Brunal »
sam. 14 sept. 2013 22:16
Salut à tous,
Je vais tenter d'expliquer les principales différences entre un système ODEX et un système DEODEX.
Par défaut, les ROM Android sont toutes ODEX, ou "odexées" (les Nexus de Google, les appareils Samsung...). C'est à dire que chaque fichier APK ou JAR du système est accompagné d'un fichier .odex.
Dans le cas d'une ROM DEODEX ou "deodexée" (comme les ROM officielles PiPO par ex), les fichiers odex se trouvent directement dans les fichiers APK ou JAR du système. Il s'agit du fichier classes.dex contenu dans les APK ou JAR (Les fichiers APK ou JAR n'étant en fait que des fichiers ZIP)
Classes.dex ou fichier odex..... comment ça marche ?
Android est un système utilisant la machine virtuelle Dalvik. La VM Dalvik est une alternative à la machine virtuelle Java d'Oracle adaptée aux systèmes embarqués avec peu de ressources (Nos téléphones et tablettes).
Les exécutables de la VM Dalvik sont les fichiers .dex (Dalvik EXecutable) ou .odex (Optimized Dalvik EXecutable).
Dans le cas d'une ROM odex, la VM Dalvik n'a pas besoin d'extraire l'exécutable des APK ou JAR puisqu'il existe déjà un fichier .odex. L'exécution est donc plus rapide (En théorie...)
Si la ROM est deodex, la VM Dalvik devra d'abord extraire le fichier classes.dex avant de pouvoir l'exécuter. Cela demande plus de temps (Toujours en théorie...)
Comment la VM Dalvik contourne-t-elle le problème de perte de temps lors de l'extraction des classes.dex ?
La VM Dalvik utilise le "dalvik-cache" (Qui se trouve dans /data/dalvik-cache). Au démarrage du système, la VM Dalvik va scruter les APK deodex. Pour chaque APK et s'il n'y est pas déjà, le fichier classes.dex est extrait puis stocké dans le "dalvik-cache". Ainsi, il ne sera plus nécessaire de l'extraire à chaque fois. Le temps n'est donc vraiment perdu qu'une seule fois. C'est pourquoi l'exécution d'un APK deodex n'est pas vraiment moins rapide que pour un APK odex.
Avantages d'une ROM odex :
- S'exécute plus rapidement. Le système est théoriquement plus fluide.
- Plus d'espace disponible dans /data pour les applications. Les applis odex ne remplissant pas le "dalvik-cache"
Inconvénients d'une ROM odex :
- Modification des thèmes et autres options du système difficile (voire pas possible...)
Avantages d'une ROM deodex :
- Il est beaucoup plus simple de bidouiller les thèmes et le système en profondeur.
- Il est plus simple de supprimer une application système car il suffit de supprimer le fichier APK (Pas de fichier odex en plus)
Inconvénients d'une ROM deodex :
- S'exécute moins vite. Les système est théoriquement moins fluide
En résumé, si vous ne pensez pas modifier le thème de votre ROM, ou faire d'autres bidouilles, vous pouvez installer la version ODEX qui est théoriquement plus optimisée. (Ce serait en fait cette version qui serait la vraie version normale par rapport au système fourni par Google sur ses Nexus)
Si par contre vous souhaitez faire des modification en profondeur de votre système ou personnaliser le thème de la ROM (Bidouilleurs avancés), préférez plutôt la version "normale" qui est deodexée. (Version normale pour les ROM officielles PiPO)
J'espère ne pas vous avoir embrouillé avec mes explications.
Si vous souhaitez en savoir plus, vous pouvez rechercher des infos sur le fonctionnement de la VM Dalvik.
Envoyé depuis ma PiPo M6 avec Tapatalk 4
Tablette : PiPo M6 noire version WIFI 16Go
ROM :
Customisations :
Version Android : 4.2.2