我笔记本电脑上的硬盘刚刚崩溃,我丢失了过去两个月一直在开发的应用程序的所有源代码。我只有一个APK文件,它存储在我发给朋友的电子邮件中。

有没有办法从这个APK文件中提取我的源代码?


当前回答

是的,这是可能的。

有很多软件可以对android.apk文件进行反向工程。

最近,我在我的网站上整理了47个最好的APK反编译器的最终列表。我把它们分成4个不同的部分。

开源APK分解器在线APK分解器适用于Windows、Mac或Linux的APK解压缩程序APK分解器应用程序

我希望这本书对你有帮助。

链接:https://www.edopedia.com/blog/best-apk-decompilers/

其他回答

虽然您可以反编译APK文件,但您可能会遇到一个大问题:

它不会返回您编写的代码。相反,它将返回编译器内联的任何内容,变量为随机名称,函数为随机名称。尝试反编译并将其还原为您所拥有的代码可能需要比重新开始花费更多的时间。

可悲的是,这样的事情已经扼杀了许多项目。对于未来,我强烈建议学习版本控制系统,如CVS、SVN和git等。

以及如何备份。

apktool将工作。您甚至不需要知道提取源代码的密钥库(这有点吓人)。主要缺点是源代码以Smali格式而不是Java格式呈现。其他文件,如icon和main.xml,通过的很好,但可能值得您花时间至少恢复这些文件。最终,您很可能需要从头开始重新编写Java代码。

你可以在这里找到apktool。只需下载apktool和适当的助手(适用于Windows、Linux或Mac OS)。我建议使用7-zip之类的工具来打开它们。

Android工作室为您提供分析任何apk文件的功能。

1-从构建菜单中选择分析apk选项并选择apk文件。2-这将导致classes.dex文件和其他文件。3-单击classes.dex,它将为您提供文件夹、包、库和文件的列表。4-从和android工作室设置安装一个名为“Dex to Jar”的插件5-单击提取项目的任何活动文件,然后从构建菜单中选择dex-to-jar。

这将生成java文件的实际代码。

干杯

Android应用程序的APK文件可以使用以下任何方法反编译:

APKTool(需要在电脑上安装Java)APKTool M(Android应用程序)JavaDecompilers(在线工具包括APKTool实用程序)

资料来源:https://droidmaze.com/how-to-extract-code-from-apk/

apktool是你能尝试的最好的方法。我用它保存了一些xml,但老实说,我不知道它如何与.java代码一起工作。

我建议您拥有一个代码库,即使您是唯一的程序员。我一直在为自己的项目使用Project Locker。它为您提供免费svn和git repo。