for nylig har vi udgivet en guide til, hvordan du tilføjer afhængigheder for kun specifikke productFlavors. Efter at vi har gennemført de nødvendige skridt, vi ønskede at sikre, at den endelige .apk indeholder faktisk ikke nogen uønskede klasser længere. I dette indlæg viser vi dig, hvordan du kontrollerer, hvilke klasser og ressourcer der er i en apk.
Bemærk: Denne vejledning er designet til dekompilering af din egen apk, og ikke det hårde arbejde fra andre udviklere. Således inkluderede vi ikke nogen trin til reverse-engineer eller arbejde rundt kode forvirring.
forberedelse: installation af værktøjerne
en Android apk er dybest set en lynlås mappe, som indeholder af nogle rå ressourcer (billeder, layout filer, ..) og enclasses.dex
fil. Denne fil indeholder alle faktiske kode og interesserer os mest. Lad os hente alle de værktøjer, vi har brug for:
- du skal pakke apk ud. Du kan enten bruge den indbyggede funktionalitet i dit operativsystem eller installere din foretrukne (un)arkiver som 7-lynlås.
- for at vende
classes.dex
filen til en.jar
, skal du hente værktøjet deks2jar. - endelig, for at gøre
.jar
fil læsbar for det menneskelige øje, hente og køre JD-Gui.
få din kode tilbage
Okay, nu er det tid til at gøre det egentlige arbejde. Kopier din apk-fil til et bibliotek, du vil arbejde i. Pak apk ud ved hjælp af det valgte værktøj, og du skal få et bibliotek med et par undermapper og et par filer.
du er velkommen til at gennemseAndroidManifest.xml
ellerres
mappe. Det mest interessante stykke er classes.dex
. Skift således til dit hentededex2jar
værktøj og åbn en ny terminal.
Hvis du bruger Mac OS, skal du udføresh d2j-dex2jar.sh -f -o output.jar your_app_input.apk
. Vinduer brugere kan bruge.bat
fil til at oprette.jar
fil. Når værktøjet løb igennem, skal du gå til den nye .jar
fil.
visning af den Dekompilerede kode
start endelig det hentedeJD-GUI
værktøj og brug det til at åbne.jar
fil.
Du kan gennemse alle pakker og klasser, som er i din apk. Koden er en strippet version og indeholder ikke nogen kommentarer eller overflødige strukturer, du ser i din IDE. Husk, dette er den kompilerede minimering af din app. Ikke desto mindre bør det give dig nok information til at lære om det grundlæggende i appen. For eksempel hjalp det os med at kontrollere, at der ikke længere er nogen pakker relateret til admob-biblioteket i appen.
andre muligheder
Hvis du bare har brug for en hurtig dekompilering, kan du bruge onlineværktøjet på www.decompileandroid.com/.
for mere avancerede dekompileringsformål kan du se på apktool, som giver mange ekstra hjælpere.