Les fichiers de programme Android sont au format APK. Les fichiers APK sont le programme final exécuté sur Android, et APK est l'abréviation d'Android Package, similaire aux fichiers sis dans le système d'exploitation Symbian ou aux fichiers JAR sur la plateforme J2ME. En fait, les fichiers APK ont le format ZIP, mais l'extension a été modifiée en APK. Après avoir décompressé avec RAR, on peut voir les fichiers Dex. Dex est l'acronyme de Dalvik VM executes, c'est-à-dire le programme d'exécution Dalvik d'Android, qui n'est pas du bytecode Java, mais du bytecode Dalvik.
La structure d'un fichier APK est la suivante :
- res/ : répertoire contenant les fichiers ressources
- META-INF/ : répertoire normalement présent dans les fichiers Jar
- resources.arsc : fichiers de ressources binaires compilés, principalement les chaînes utilisées dans le programme
- AndroidManifest.xml : fichier de configuration global du programme
- classes.dex : fichiers de bytecode Dalvik, les fichiers JAVA que nous écrivons sont compilés en bytecode au format DEX
Pour résumer, nous avons constaté que lorsqu'Android exécute un programme, il doit d'abord le décompresser, de manière similaire à Symbian, et différent des fichiers PE dans Windows Mobile. Cette méthode n'offre pas une sécurité ou une fiabilité très élevée pour les programmes. Un décodage peut être réalisé avec la commande dexdump, mais cette approche suit le cours de développement. Les Gadgets Windows de Microsoft ou WPF utilisent également ce type de structure.
1. Fichier Java ----- fichier source de l'application
Je pense que c'est le type de fichier auquel tout le monde pense quand on parle d'Android. Une grande partie d'Android est en fait développée en Java (dans le schéma architectural, les parties en bleu sont principalement développées en Java). Les applications Android doivent être développées en Java.
2. Fichier Class ------ fichier cible compilé en Java
Contrairement à J2SE où un fichier class peut être exécuté directement après compilation, sur la plateforme Android les fichiers class ne peuvent pas être exécutés directement. Comme Google utilise sa propre machine Dalvik pour exécuter les applications, ces fichiers class ne peuvent pas non plus être exécutés dans l'environnement Java de Sun. À mon avis, les fichiers class sur Android sont en réalité des fichiers intermédiaires du processus de compilation qui doivent être liés pour créer des fichiers dex afin de pouvoir être exécutés sur Dalvik.3. Fichier Dex -------- Fichier exécutable sur la plateforme Android
Le format de fichier bytecode pris en charge par la machine virtuelle Android Dalvik
Google a utilisé sa propre machine virtuelle Dalvik sur la nouvelle plateforme Android, définissant ainsi un type de machines virtuelles qui n'exécutent pas le bytecode Java, mais un autre type de bytecode : le bytecode au format dex. Après avoir compilé le code Java, il est possible de convertir le bytecode Java en bytecode Dex à l'aide des outils disponibles sur la plateforme Android. Bien que Google affirme que Dalvik est conçu pour les appareils mobiles, de nombreuses personnes de l'industrie pensent que cela vise à éviter de demander une licence Java à Sun. Comme peu de détails ont été divulgués, il est encore impossible de trouver l'implémentation exacte de Dalvik, on ne peut faire que quelques analyses simples basées sur le SDK.
Cette machine virtuelle Dalvik est optimisée pour les applications mobiles/CPU, capables d'exécuter plusieurs VM en même temps sans consommer trop de ressources. Le code source de Dalvik VM n'est pas encore rendu disponible pour téléchargement (à l'avenir, tout le système sera ouvert), du point de vue de Google, l'idée est de permettre à tout le monde de commencer à développer des applications avec ce SDK, et les détails du bas niveau seront publiés progressivement.
4. Fichier Apk --------- Fichier d'installation sur Android
Apk est l'extension d'un paquet d'installation Android. Un paquet d'installation Android contient tous les fichiers liés à une application Android. Le fichier apk regroupe le fichier AndroidManifest.xml, le code de l'application (.dex), les fichiers de ressources et d'autres fichiers dans un seul fichier compressé. Un projet ne peut être compilé que dans un seul fichier .apk
Quant à la manière de le pirater, cela dépend de chacun.
Si vous voulez voir comment pirater des jeux Android, allez-y.
Réponses (4)
Très probablement dans le .dex.
)╮(〉_〉")╭ haut
Je n'ai pas compris ! Hé hé
Je n'ai pas compris..
— Toutes les réponses chargées —