Il disco rigido del mio portatile si è appena schiantato e ho perso tutto il codice sorgente di un'applicazione su cui ho lavorato negli ultimi due mesi. Tutto ciò che ho è il file APK che è memorizzato nella mia e-mail da quando l'ho inviato a un amico.
C'è un modo per estrarre il mio codice sorgente da questo file APK?
Mentre potreste essere in grado di decompilare il vostro file APK
, probabilmente incontrerete un grosso problema:
non restituirà il codice che avete scritto. Restituirà invece tutto ciò che il compilatore ha inserito, con variabili dai nomi casuali, così come le funzioni dai nomi casuali. Potrebbe essere necessario molto più tempo per cercare di decompilare e ripristinare il codice che avevate, piuttosto che ricominciare da capo.
Purtroppo, cose come questa hanno ucciso molti progetti.
Per il futuro, consiglio vivamente di imparare un sistema di controllo delle versioni, come CVS, SVN e git ecc.
e come fare il backup.
apktool è la cosa migliore che puoi provare. Ho salvato alcuni xml con esso, ma onestamente non so come funzionerà con il codice .java.
Ti consiglierei di avere un repository di codice anche se sei l'unico coder. Io sto usando Project Locker per i miei progetti. Ti dà svn e git repository gratuiti.
apktool funzionerà. Non è nemmeno necessario conoscere il keystore per estrarre il codice sorgente (il che è un po' spaventoso). Il principale svantaggio è che il sorgente è presentato in formato Smali invece di Java. Altri file come l'icona e il main.xml arrivano perfettamente bene e può valere la pena di recuperare almeno quelli. In definitiva, avrete molto probabilmente bisogno di riscrivere il vostro codice Java da zero.
Potete trovare apktool qui. Basta scaricare apktool e l'apposito helper (per Windows, Linux o Mac OS). Raccomando di usare uno strumento come 7-zip per scompattarli.