Právě se mi rozbil pevný disk v notebooku a já jsem přišel o všechny zdrojové kódy aplikace, na které jsem pracoval poslední dva měsíce. Mám jen soubor APK, který je uložený v e-mailu z doby, kdy jsem ho poslal kamarádovi.
Existuje nějaký způsob, jak z tohoto souboru APK získat můj zdrojový kód?
Soubor APK
sice můžete dekompilovat, ale pravděpodobně narazíte na jeden velký problém:
nevrátí kód, který jste napsali. Místo toho vrátí to, co kompilátor inlinoval, přičemž proměnné budou mít náhodná jména, stejně jako funkce budou mít náhodná jména. Pokus o dekompilování a obnovení kódu, který jste měli, by mohl zabrat podstatně více času, než kdybyste začali znovu.
Takové věci bohužel zničily mnoho projektů.
Do budoucna vřele doporučuji naučit se nějaký systém pro správu verzí, například CVS, SVN a git atd.
a jak je zálohovat.
apktool je to nejlepší, co můžete vyzkoušet. Uložil jsem s ním nějaké xml, ale upřímně řečeno nevím, jak to bude fungovat s .java kódem.
Doporučil bych ti mít úložiště kódu, i když jsi jediný kodér. Já'pro své vlastní projekty používám Project Locker. Poskytuje vám zdarma repozitáře svn a git.
apktool bude fungovat. K extrakci zdrojového kódu ani nepotřebujete znát úložiště klíčů (což je trochu děsivé). Hlavní nevýhodou je, že zdrojový kód je prezentován ve formátu Smali namísto Javy. Ostatní soubory, jako je ikona a main.xml, však projdou naprosto v pořádku a možná se vám vyplatí obnovit alespoň ty. Nakonec budete muset s největší pravděpodobností přepsat kód Javy od začátku.
Nástroj apktool najdete zde. Stačí si stáhnout apktool a příslušného pomocníka (pro Windows, Linux nebo Mac OS). K jejich rozbalení doporučuji použít nástroj, jako je 7-zip.