我笔记本电脑上的硬盘刚刚崩溃,我丢失了过去两个月一直在开发的应用程序的所有源代码。我只有一个APK文件,它存储在我发给朋友的电子邮件中。
有没有办法从这个APK文件中提取我的源代码?
我笔记本电脑上的硬盘刚刚崩溃,我丢失了过去两个月一直在开发的应用程序的所有源代码。我只有一个APK文件,它存储在我发给朋友的电子邮件中。
有没有办法从这个APK文件中提取我的源代码?
当前回答
最简单的方法是使用Apk OneClick分解器。这是一个用于反编译和反汇编APK(android软件包)的工具包。
特征
所有功能都集成到Windows的右键单击菜单中。将APK类分解为Java源代码。将APK分解为smali代码并解码其资源。通过右键单击将APK安装到手机。编辑smali代码和/或资源后重新编译APK。重新编译期间:优化png图像签署apks优化
要求
必须安装Java Runtime Environment(JRE)。
你可以从这个链接下载Apk OneClick解压程序
好好享受吧。
其他回答
用于反向工程第三方、封闭的二进制Android应用程序的Apktool。
它可以将资源解码为几乎原始的形式,并在进行一些修改后重建它们。
它使逐步调试smali代码成为可能。此外,它还使使用应用程序变得更容易,因为它具有类似项目的文件结构和一些重复任务的自动化,如构建apk等。
http://ibotpeaches.github.io/Apktool/
apktool将工作。您甚至不需要知道提取源代码的密钥库(这有点吓人)。主要缺点是源代码以Smali格式而不是Java格式呈现。其他文件,如icon和main.xml,通过的很好,但可能值得您花时间至少恢复这些文件。最终,您很可能需要从头开始重新编写Java代码。
你可以在这里找到apktool。只需下载apktool和适当的助手(适用于Windows、Linux或Mac OS)。我建议使用7-zip之类的工具来打开它们。
此网站https://www.apkdecompilers.com/自动完成。
我先尝试了被接受的答案中提到的网站,但这对我来说不起作用。
apktool是你能尝试的最好的方法。我用它保存了一些xml,但老实说,我不知道它如何与.java代码一起工作。
我建议您拥有一个代码库,即使您是唯一的程序员。我一直在为自己的项目使用Project Locker。它为您提供免费svn和git repo。
有一个应用程序可以实现这一点,通常只需点击几下即可完成。https://github.com/Nuvolect/DeepDive-Android
选择应用程序,在“已安装的应用程序”下选择您的应用程序。如果不是在那里你可以加载APK。选择“提取APK”选择“解压缩APK”选择“使用Jadx分解”。这可能需要几秒钟或几分钟,具体取决于取决于设备的速度
之后,您可以浏览源代码,使用elFinder将其下载到另一台计算机,或使用Lucene进行搜索。
除了Jadx,它还有CFR和Fernflower反编译器。