Nylig har Vi publisert en veiledning om hvordan du legger til avhengigheter for bare bestemte productFlavors. Etter at vi har implementert de nødvendige trinnene, ønsket vi å sørge for at finalen .apk inneholder faktisk ikke noen uonskede klasser lenger. I dette innlegget viser vi deg hvordan du sjekker hvilke klasser og ressurser som er i en apk.
Merk: denne guiden er laget for dekompilering din egen apk, og ikke hardt arbeid av andre utviklere. Dermed inkluderte vi ikke noen trinn for å reversere eller omgå kode obfuscation.
Forberedelse: Installere Verktøy
En Android apk er i utgangspunktet en zippet katalog, som inneholder noen rå ressurser (bilder, layout filer, ..) og en classes.dex
fil. Denne filen inneholder all faktisk kode og interesserer oss mest. La oss laste ned alle verktøyene vi trenger:
- Du må pakke ut apk. Du kan enten bruke den innebygde funksjonaliteten til operativsystemet, eller installere din favoritt (un)arkiver som 7-Zip.
- for å reversere
classes.dex
filen til en.jar
, må du laste ned dex2jar-verktøyet. - Til Slutt, for å gjøre
.jar
filen lesbar for det menneskelige øye, last NED OG kjør JD-Gui.
Få Koden Tilbake
Ok, nå er det på tide å gjøre det faktiske arbeidet. Kopier apk-filen til en katalog du vil jobbe i. Unzip apk ved hjelp av verktøyet du ønsker, og du bør få en katalog med noen underkataloger og noen få filer.
føl deg fri til å bla iAndroidManifest.xml
ellerres
katalogen. Det mest interessante stykket er classes.dex
. Dermed bytter du til ditt nedlastede dex2jar
verktøy og åpner en ny terminal.
hvis Du er På Mac OS, kjør sh d2j-dex2jar.sh -f -o output.jar your_app_input.apk
. Windows-brukere kan bruke.bat
– filen til å opprette.jar
– filen. Når verktøyet gikk gjennom, bla til den nye.jar
fil.
Vise Den Dekompilerte Koden
Til Slutt starter du det nedlastedeJD-GUI
– verktøyet og bruker det til å åpne.jar
– filen.
du kan bla gjennom alle pakker og klasser, som er i apk. Koden er en strippet versjon og inneholder ingen kommentarer eller overflødige strukturer du ser i IDE. Husk at dette er kompilert minimering av appen din. Likevel bør det gi deg nok informasjon til å lære om det grunnleggende i appen. For eksempel hjalp det oss med å verifisere at det ikke er noen pakker relatert til admob-biblioteket i appen lenger.
Andre Alternativer
hvis du bare trenger en rask dekompilering, kan du bruke nettverktøyet på www.decompileandroid.com/.
for mer avanserte dekompileringsformål kan du ta en titt på apktool, som gir mange ekstra hjelpere.