J'ai des questions concernant les fichiers dex
- Qu'est-ce qu'un
dex
fichier sous Android? - Comment fonctionne dex pour Android?
- Comment sont-ils utilisés pour déboguer une application Android?
- Sont-ils similaires aux fichiers de classe Java?
J'ai besoin d'informations spécifiques, veuillez m'aider à ce sujet et tous les exemples réels sont les bienvenus!
Réponses:
À propos du fichier .dex:
L'une des caractéristiques les plus remarquables du
Dalvik Virtual Machine
(le cheval de bataille sous le système Android) est qu'il n'utilise pas de bytecode Java. Au lieu de cela, un format local appelé DEX a été introduit et même les instructions de bytecode ne sont pas les mêmes que les instructions de bytecode Java.Compiled Android application code file.
Les programmes Android sont compilés dans des
.dex
fichiers (Dalvik Executable), qui sont à leur tour compressés en un seul.apk
fichier sur l'appareil..dex
Les fichiers peuvent être créés en traduisant automatiquement les applications compilées écrites dans le langage de programmation Java.Format de fichier Dex:
1. File Header 2. String Table 3. Class List 4. Field Table 5. Method Table 6. Class Definition Table 7. Field List 8. Method List 9. Code Header 10. Local Variable List
Android a une documentation sur les
Dalvik Executable Format
( fichiers .dex ). Vous pouvez en savoir plus sur la documentation officielle: Format de fichier Dex.dex
Les fichiers sont similaires aux fichiers de classe Java, mais ils ont été exécutés sous la machine virtuelle Dalkvik (DVM) sur les anciennes versions d'Android, et compilés au moment de l'installation sur l'appareil en code natif avec ART sur les versions plus récentes d'Android.Vous pouvez
decompile
.dex en utilisant l'dexdump
outil fourni dans android-sdk.Il existe également des techniques d'ingénierie inverse pour créer un fichier
jar file
ou àjava class file
partir d'un.dex
fichier.la source
dexdump
n'est pas un décompilateur mais un désassembleur.dex file
Fichier de code d'application Android compilé.
Les programmes Android sont compilés en fichiers .dex (Dalvik Executable), qui sont à leur tour compressés en un seul fichier .apk sur l'appareil. Les fichiers .dex peuvent être créés automatiquement par Android, en traduisant les applications compilées écrites dans le langage de programmation Java.
la source
dex
file est un fichier exécuté sur la VM Dalvik.Dalvik VM comprend plusieurs fonctionnalités d'optimisation, de vérification et de surveillance des performances, dont Dalvik Executable (DEX) .
Le code source Java est compilé par le compilateur Java dans des
.class
fichiers. Ensuite, l'dx
outil (dexer), qui fait partie du SDK Android, traite les.class
fichiers dans un format de fichier appeléDEX
qui contient du code d'octet Dalvik. L'dx
outil élimine toutes les informations redondantes présentes dans les classes. DansDEX
toutes les classes de l'application sont regroupées dans un seul fichier. Le tableau suivant fournit une comparaison entre les tailles de code pour les fichiers jar JVM et les fichiers traités par l'dex
outil.Le tableau compare les tailles de code pour les bibliothèques système, les applications de navigateur Web et une application à usage général (application de réveil). Dans tous les cas, l'outil dex a réduit la taille du code de plus de 50%.
Dans les environnements Java standard, chaque classe du code Java se traduit par un
.class
fichier. Cela signifie que si le fichier de code source Java a une classe publique et deux classes anonymes, disons pour la gestion des événements, alors le compilateur Java créera au total trois.class
fichiers.L'étape de compilation est la même sur la plate-forme Android, entraînant ainsi plusieurs
.class
fichiers. Mais une fois les.class
fichiers générés, l'outil «dx» est utilisé pour convertir tous les.class
fichiers en un seul.dex
fichier, ou exécutable Dalvik. C'est le.dex
fichier qui est exécuté sur la VM Dalvik. Le.dex
fichier a été optimisé pour l'utilisation de la mémoire et la conception repose principalement sur le partage de données.la source