Práve sa mi pokazil pevný disk v notebooku a ja som prišiel o všetky zdrojové kódy aplikácie, na ktorej som pracoval posledné dva mesiace. Mám len súbor APK, ktorý je uložený v mojom e-maile, keď som ho poslal priateľovi.
Existuje nejaký spôsob, ako z tohto súboru APK získať môj zdrojový kód?
Aj keď sa vám možno podarí dekompilovať súbor APK
, pravdepodobne narazíte na jeden veľký problém:
nevráti kód, ktorý ste napísali. Namiesto toho vráti to, čo kompilátor inlinoval, pričom premenným boli pridelené náhodné názvy, ako aj funkciám náhodné názvy. Pokus o dekompiláciu a obnovenie kódu, ktorý ste mali, by mohol zabrať podstatne viac času, ako keby ste mali začať odznova.
Bohužiaľ, takéto veci zničili mnoho projektov.
Do budúcnosti vrelo odporúčam naučiť sa systém na správu verzií, napríklad CVS, SVN a git atď.
a ako ho zálohovať.
apktool je to najlepšie, čo môžete vyskúšať. Uložil som s ním nejaké xml, ale úprimne neviem, ako to bude fungovať s .java kódom.
Odporúčal by som vám mať úložisko kódu, aj keď ste jediný kóder. Ja'som používal Project Locker pre svoje vlastné projekty. Poskytuje vám bezplatné repozitáre svn a git.
apktool bude fungovať. Na extrakciu zdrojového kódu dokonca nepotrebujete poznať ani úložisko kľúčov (čo je trochu desivé). Hlavnou nevýhodou je, že zdrojový kód je prezentovaný vo formáte Smali namiesto Javy. Ostatné súbory, ako napríklad ikona a main.xml, však prechádzajú úplne v poriadku a možno sa vám oplatí obnoviť aspoň tie. Nakoniec budete musieť s najväčšou pravdepodobnosťou prepísať kód Javy od začiatku.
Apktool nájdete tu. Stačí si stiahnuť apktool a príslušného pomocníka (pre Windows, Linux alebo Mac OS). Na ich rozbalenie odporúčam použiť nástroj, napríklad 7-zip.