Harddisken på min bærbare computer er lige gået ned, og jeg har mistet hele kildekoden til en app, som jeg har arbejdet på i de sidste to måneder. Alt jeg har er APK-filen, som er gemt i min e-mail fra dengang jeg sendte den til en ven.
Er der nogen måde at udtrække min kildekode fra denne APK-fil på?
Selv om du måske kan dekompilere din APK
-fil, vil du sandsynligvis støde på et stort problem:
den vil ikke returnere den kode, du har skrevet. Den vil i stedet returnere det, som compileren har indføjet, med variabler, der har fået tilfældige navne, og funktioner, der har fået tilfældige navne. Det kan tage betydeligt mere tid at forsøge at dekompilere og gendanne den til den kode, du havde, end det vil være at starte forfra.
Desværre har ting som dette dræbt mange projekter.
For fremtiden vil jeg stærkt anbefale at lære et versionskontrolsystem, som CVS, SVN og git osv.
og hvordan man tager backup af det.
apktool er det bedste, du kan prøve. Jeg har gemt noget xml med det, men jeg ved ærligt talt ikke hvordan det vil virke med .java-koden.
Jeg vil anbefale dig at have et kode repository, selvom du er den eneste koder. Jeg har brugt Project Locker til mine egne projekter. Det giver dig gratis svn og git repos.
apktool vil fungere. Du behøver ikke engang at kende keystore for at udtrække kildekoden (hvilket er en smule skræmmende). Den største ulempe er, at kilden præsenteres i Smali-format i stedet for Java. Andre filer som ikonet og main.xml kommer dog helt fint igennem, og det kan være værd at bruge tid på i det mindste at gendanne dem. I sidste ende skal du højst sandsynligt skrive din Java-kode om fra bunden.
Du kan finde apktool her. Du skal blot downloade apktool og den relevante hjælper (til Windows, Linux eller Mac OS). Jeg anbefaler, at du bruger et værktøj som 7-zip til at pakke dem ud.