De harde schijf van mijn laptop is zojuist gecrasht en ik ben alle broncode kwijtgeraakt voor een app waar ik de afgelopen twee maanden aan gewerkt heb. Alles wat ik heb is het APK-bestand dat is opgeslagen in mijn e-mail van toen ik het naar een vriend stuurde.
Is er een manier om mijn broncode uit dit APK-bestand te halen?
Hoewel u misschien uw APK
bestand kunt decompileren, zult u waarschijnlijk een groot probleem tegenkomen:
het zal niet de code teruggeven die je schreef. In plaats daarvan zal het teruggeven wat de compiler inlined, met variabelen met willekeurige namen, evenals functies met willekeurige namen. Het zou aanzienlijk meer tijd kunnen kosten om te proberen het te decompileren en terug te zetten in de code die je had, dan het zal zijn om opnieuw te beginnen.
Helaas hebben dit soort dingen al veel projecten de das omgedaan.
Voor de toekomst raad ik ten zeerste aan om een Versie Beheer Systeem te leren, zoals CVS, SVN en git etc.
en hoe het te back-uppen.
apktool is het beste wat je kunt proberen. Ik heb er wat xml mee opgeslagen, maar eerlijk gezegd weet ik niet hoe het zal werken met de .java code.
Ik zou je aanraden om een code repository te hebben, zelfs als je de enige coder bent. Ik'heb Project Locker gebruikt voor mijn eigen projecten. Het geeft je gratis svn en git repos.
apktool zal werken. Je hoeft niet eens de sleutelbewaarplaats te kennen om de broncode uit te pakken (wat een beetje eng is). Het grootste nadeel is dat de broncode wordt gepresenteerd in Smali formaat in plaats van Java. Andere bestanden, zoals het pictogram en main.xml, komen echter prima door en het kan de moeite waard zijn om op zijn minst die bestanden te herstellen. Uiteindelijk zult u waarschijnlijk uw Java code vanaf nul moeten herschrijven.
U kunt apktool vinden hier. Download gewoon apktool en de juiste helper (voor Windows, Linux, of Mac OS). Ik raad aan om een tool zoals 7-zip te gebruiken om ze uit te pakken.