2016-10-10 1 views
-3

enter image description herefichier classes.dex does't contient mes classes java

J'ai développé une application en studio Android et tester dans mon téléphone. J'ai formaté mon ordinateur et j'ai oublié de sauvegarder mon projet quelque part. Maintenant, je veux récupérer mes codes sources. Je reçois le fichier APK de mon téléphone (soit en utilisant adb et d'autres outils). J'utilise dex2jar et décompile mon fichier classes.dex mais il n'affiche pas mes propres classes Java. Est-il possible de les récupérer?

+0

Même si vous avez obtenu vos CLASSIFICATION dES et les décompilé , ils seraient un mess presque illisible, et certainement pas maintenable – Carcigenicate

+0

pourquoi avez-vous besoin que. fichiers dex sont des fichiers dalvik UNIQUEMENT requis par le Dalvik ou JVM –

+0

La seule chose que je veux est de récupérer mes cours que j'ai écrit dans le projet, je ne veux pas les écrire à nouveau. avoir ma propre application dans mon téléphone et je peux pul le fichier apk. J'ai juste besoin d'obtenir mes classes à partir de ce fichier apk – parliament

Répondre

0

Vous pouvez décompiler si facilement un grand tutoriel ci-dessous:

https://futurestud.io/tutorials/how-to-decompile-an-android-app-apk

4 étapes ci-dessous:

1- Décompressez vous APK comme vous décompressez un fichier zip

2 -find classes.dex fichiers

3-les convertir en fichier jar en utilisant dexToJar outil

4- ouvrir le fichier jar en utilisant l'application JD-Gui (availbale pour Windows/ubuntu/mac)

+0

J'ai fait excatly ce que vous triste étape par étape. Cependant, dans JD-Gui, il y a juste quelques classes qui ne sont pas à moi. – parliament

+0

Avez-vous proguré votre apk? Avant de libérer? –

+0

Je ne sais pas ce qui est progaurd mais je n'ai rien fait de pareil. J'ai créé un projet dans un studio Android, puis l'exécuter sur mon téléphone branché. C'est tout – parliament

0

Cela se fait habituellement par certains obfuscateur, comme Proguard. Cela signifie, entre autres, que les noms de classe de vos classes seront changés en noms sans signification (tels que A/B/C), les noms seront toujours différents dans le chemin qualifié complet d'une classe Java, par ex. Vous pouvez avoir plusieurs classes "A" dans différents paquets, mais à part cela, vous aurez ces noms de classe plusieurs fois, dans la plupart des cas cela ne nuira pas à la fonctionnalité de votre programme, mais cela rendra plus difficile le reverse engineering.

Si ceci est votre application et vous pouvez le reconstruire, vous pouvez désactiver ProGuard ou un sous-ensemble de ses caractéristiques, sinon vous devrez désosser sur votre propre.