有没有办法从APK文件中获取源代码?

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

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

简单方法:使用在线工具https://www.decompiler.com/,上传apk并获取源代码


解码.apk文件的步骤,分步方法:

步骤1:

  1. 创建一个新文件夹并复制到要解码的.apk文件上

  2. 现在将这个.apk文件的扩展名重命名为.zip(例如,从filename.apk重命名为filename.zip)并保存它。现在您可以访问classes.dex文件等。在这个阶段,您可以看到可绘制文件,但不能看到xml和java文件,所以继续

步骤2:

  1. 现在在同一个文件夹(或新文件夹)中解压缩这个.zip文件

  2. 下载dex2jar并将其解压缩到同一文件夹(或新文件夹)

  3. 将classes.dex文件移动到dex2jar文件夹中

  4. 现在打开命令提示符并将目录更改为该文件夹(或新文件夹)。然后编写d2j-dex2jar classes.dex(对于mac终端或ubuntu编写/d2j-dex2jar.sh classes.dex)并按enter键。现在,classes.dex.dex2jar文件位于同一文件夹中

  5. 下载java反编译器,双击JDGUI,单击open file,然后从该文件夹中打开classes.dex.dex2jar文件:现在就可以得到类文件了

  6. 按src名称保存所有这些类文件(在jd gui中,单击文件->保存所有源文件)。在这个阶段,您获得了java源代码,但是.xml文件仍然无法读取,所以继续

步骤3:

现在打开另一个新文件夹

  1. 放入要解码的.apk文件

  2. 下载最新版本的apktool和apktool安装窗口(都可以从同一链接下载),并将它们放在同一文件夹中

  3. 打开命令窗口

  4. 现在运行命令,如apktool if framework-res.apk(如果您没有它,请在此处获取),然后执行下一步

  5. apktool d myApp.apk(其中myApp.apk表示要解码的文件名)

现在,您在该文件夹中获得了一个文件文件夹,可以轻松地读取apk的xml文件

步骤4:

这不是任何步骤,只需将两个文件夹(在本例中为两个新文件夹)的内容复制到单个文件夹即可

并享受源代码

发表评论