我笔记本电脑上的硬盘刚刚崩溃,我丢失了过去两个月一直在开发的应用程序的所有源代码。我只有一个APK文件,它存储在我发给朋友的电子邮件中。
有没有办法从这个APK文件中提取我的源代码?
我笔记本电脑上的硬盘刚刚崩溃,我丢失了过去两个月一直在开发的应用程序的所有源代码。我只有一个APK文件,它存储在我发给朋友的电子邮件中。
有没有办法从这个APK文件中提取我的源代码?
当前回答
可能是最容易看到的来源:
在Android studio 2.3中,构建->分析APK->选择要反编译的APK。你会看到它的源代码。
参考链接:https://medium.com/google-developers/making-the-most-of-the-apk-analyzer-c066cb871ea2
其他回答
是的,这是可能的。
有很多软件可以对android.apk文件进行反向工程。
最近,我在我的网站上整理了47个最好的APK反编译器的最终列表。我把它们分成4个不同的部分。
开源APK分解器在线APK分解器适用于Windows、Mac或Linux的APK解压缩程序APK分解器应用程序
我希望这本书对你有帮助。
链接:https://www.edopedia.com/blog/best-apk-decompilers/
apktool是最好的选择。在线apktool服务也存在:http://www.javadecompilers.com/apktool
显然,由于服务的“在线性质”,存在一些限制:您可以提取和研究资产和清单文件,但目前不可能重新编译应用程序。
尽管如此,这是一种“打开”android应用程序的简单方法。
对于java文件
使用此处给出的公认答案
对于XML文件
你不必使用公认答案中给出的方法,因为我觉得它很复杂。
我所做的是将APK文件转换为ZIP并解压缩。解压缩后,我得到了一个名为res的文件夹:
我刚打开它,发现了很多文件夹。对于布局,您需要找到名为layout的文件夹,而不是像layout land之类的其他文件夹。同样的事情也可以用其他资源来完成,比如绘图、菜单等。。。
注意:会有很多随机文件不是由您创建的。你可以找到自己制作的文件,然后使用它们!
希望这能帮助到其他人!
最简单的方法是使用Apk OneClick分解器。这是一个用于反编译和反汇编APK(android软件包)的工具包。
特征
所有功能都集成到Windows的右键单击菜单中。将APK类分解为Java源代码。将APK分解为smali代码并解码其资源。通过右键单击将APK安装到手机。编辑smali代码和/或资源后重新编译APK。重新编译期间:优化png图像签署apks优化
要求
必须安装Java Runtime Environment(JRE)。
你可以从这个链接下载Apk OneClick解压程序
好好享受吧。
这是另一种描述,以防有人被上面的描述卡住。遵循以下步骤:
从以下位置下载apktool.bat(或适用于Linux的apktool)和apktool_<version>.jarhttp://ibotpeaches.github.io/Apktool/install/ 将jar文件从上面重命名为apktool.jar,并将两个文件放在同一文件夹中打开一个dos框(cmd.exe)并切换到该文件夹;验证是否安装了Java环境(对于Linux,请查看有关所需库的说明)开始:apktool解码[apk文件]中间结果:资源文件,AndroidManifest.xml使用您选择的解包器解压缩APK文件中间结果:classes.dex从http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=将classes.dex拖放到dex2jar.bat上(或在DOS框中输入<path_to>\dex2jar.classes.dex;对于Linux,使用dex2jars.sh)中间结果:classes_dex2jar.jar解包classes_dex2jar.jar(可能是可选的,取决于使用的反编译器)反编译类文件(例如,使用JD-GUI或DJ反编译程序)结果:源代码
注意:不允许对第三方软件包进行反编译;本指南仅用于从APK文件恢复个人源代码;最后,生成的代码很可能会被混淆