3

我这里有个问题……这让我很紧张。

我正在开发这款游戏,它进行得很好,所以我在笔记本电脑上复制了一份,以便在远离电脑的情况下做一些工作。

长话短说,硬盘故障+糟糕的备份导致我失去了一个非常重要的课程。

有没有办法反编译apk来找回丢失的代码?它并不过分复杂或复杂,只是如果不阅读所有内容就不可能重写它。单身的。线。的。代码。在整个应用程序中,因为它初始化了很多类并以特定方式加载了一堆东西。

通过快速的谷歌搜索,我找到了 apktool,它将它反编译成一堆 .smali 文件,我认为这些文件不是为人类阅读而设计的。

我需要恢复的只是课堂上的一种非常大的方法。我找到了包含它的 smali 文件,我想我找到了它开始的那一行。就像是

.method public 声明-同步加载(Lcom/X/X/game/X;)I

任何帮助将不胜感激,因为如果没有这种方法,我将不得不废弃整个游戏。

4

1 回答 1

5

一个快速的谷歌导致了一种反编译 apk 的方法(将 apk 反编译为 java 源)。但是,即使它生成 java 代码,您也可能不会有任何变量名称(只是默认名称,param1如循环将改为 while 循环,由于编译器优化,if/else 块可能不代表您的原始控制流。

作为一般建议:使用某种源代码控制。在你自己的服务器上,用 github 的付费帐户无所谓,但使用源代码控制。即使您只是一个开发项目的人。它有助于解决这种情况,它有助于恢复到以前的版本,它有助于找到你引入的错误。当工具可用时,使用它们。

于 2011-11-25T00:43:35.397 回答