4

Il semble que le classes.dex du fichier apk dans le dossier de sortie est quelque chose de différent de celui de l'application installée. J'utilise le fichier classes.dex pour certains problèmes de sécurité, donc habituellement j'ai décompressé le fichier final apk et j'ai obtenu des informations du fichier classes.dex. Mais quand je lis le fichier classes.dex à la taille du fichier d'exécution est si différent. (8MB vs 46KB)Est-ce qu'Android Studio compresse le fichier classes.dex?

application elle-même travaille beaucoup. Quelqu'un a dit que Proguard rend le fichier classes.dex plus léger mais j'ai désactivé Proguard. (UseProguard faux, minifyEnabled faux build.gradle)

Est-ce que je peux essayer? Merci d'avance.

Un résumé de la phrase: classes.dex du fichier app/build/outputs/apk/app.apk construit par Android diffère du studio classes.dex que je pouvais trouver à partir de l'application empl installée appareil Android.

+0

Votre question n'est pas claire. Qu'essayez-vous d'accomplir? – Abhi

+0

@Abhi j'ai ajouté un résumé :) Merci – wtkim

Répondre

1

En fait, studio android fait la conversion et le terme que vous avez utilisé «compresser» se produit par défaut lors de la construction.

Le processus de compilation pour les applications Android est très différent des autres applications Java. Mais il commence de la même manière: vos fichiers de code source Java sont compilés dans .class fichiers en utilisant la commande javac: conversion_to_class_file

Les fichiers .class contiennent Java standard JVM Oracle octet codes. Mais les appareils Android n'utilisent pas ce format de code octet. Au lieu de cela, Android a son propre format de code octet distinct appelé Dalvik. Les octets de Dalvik, comme les octets codés Oracle JVM, sont des instructions de code machine pour un processeur théorique.

Le processus de compilation doit convertir les fichiers .class et toutes les bibliothèques .jar en un seul fichier classes.dex contenant les octets Dalvik. Ceci est fait avec la commande dx: Voici comment le fichier classes.dex est généré.

conversion_to_dex_file

Le fichier classes.dex et les ressources de votre application, telles que les images et les mises en page, sont ensuite compressés dans un fichier zip comme un paquet appelé Android ou fichier .apk. Cela se fait avec l'outil Asset Packaging Android ou aapt:

conversion_to_apk_file

Vos règles ProGuard, au cours du processus de construction, aident à

  • Shrink - Détecte et supprime les classes non utilisées, les champs, les méthodes, et attributs. Optimiser - analyse et optimise le bytecode des méthodes.
  • Occultation - renomme les autres classes, les champs et les méthodes utilisant des noms courts sans signification.

espérons qu'il vous aidera dans une certaine mesure.
Si vous voulez en savoir plus sur la façon dont les applications Android sont construites et gérées, Read this.

.