278

我不小心从Eclipse中删除了我的项目,只剩下我转移到手机上的APK文件。有没有办法逆转将应用程序导出到 .apk 文件的过程,以便我可以取回我的项目?

4

13 回答 13

318

有两个有用的工具可以从未知的 APK 文件生成 Java 代码(粗略但足够好)。

  1. 从dex2jar下载 dex2jar 工具。

  2. 使用该工具将 APK 文件转换为JAR:Windows:

     $ d2j-dex2jar.bat demo.apk
     dex2jar demo.apk -> ./demo-dex2jar.jar
    

    macOS / Linux:

     $ d2j-dex2jar.sh -f demo.apk -o demo.jar
    
  3. 生成 JAR 文件后,使用JD-GUI打开 JAR 文件。您将看到 Java 文件。

输出将类似于:

京东图形

然后,您可以使用其他工具从 APK 文件中检索 AndroidManifest.xml 和资源文件(如图像、翻译等)。

于 2012-10-04T18:29:49.703 回答
87

首先我推荐this视频,这可以消除你所有的疑惑

如果没有,请通过它

Procedure for decoding .apk files, step-by-step method:

Step 1:

创建一个新文件夹并将 .apk 文件放入其中(您要解码)。现在将此.apk文件的扩展名重命名为.zip(例如:从 filename.apk 重命名为 filename.zip)并保存。

如果在转换成 .zip 时出现问题,请参考link

获得 .zip 后,现在您将获得 classes.dex 文件等。在此阶段您可以看到可绘制文件,但看不到 xml 和 java 文件,所以继续。如果您没有看到扩展,请检查配置

Step 2:

现在在同一文件夹中提取此 zip apk 文件。现在从这里下载 dex2jarlink

并将其解压缩到同一个文件夹。现在打开命令提示符并将目录更改为该文件夹。

然后写入dex2jar classes.dex并按回车。现在您classes.dex.dex2jar在同一文件夹中获取文件。

然后下载java反编译器

现在双击 jd-gui 并单击打开文件。然后classes.dex.dex2jar从该文件夹中打开文件。现在你得到类文件并通过 src 名称保存所有这些类文件(单击文件然后单击 jd-gui 中的“保存所有源”)。提取该 zip 文件(classes_dex2jar.src.zip),您将获得应用程序的所有 java 文件。

在这个阶段,您获得了 java 源代码,但 xml 文件仍然无法读取,所以继续。

Step 3:

现在打开另一个新文件夹并将这些文件

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

  2. windows v1.x为And下载 ApktoolApktool

使用谷歌安装窗口并放在同一个文件夹中

  1. 使用 google 下载 framework-res.apk 文件并放在同一个文件夹中(并非所有 apk 文件都需要 framework-res.apk 文件)

  2. 打开命令窗口

  3. 导航到 APKtool 的根目录并键入以下命令: apktool if framework-res.apk.

上面的命令应该导致Framework installed ....

  1. apktool d "appName".apk ("appName" 表示您要解码的应用程序) 现在您在该文件夹中获得了一个文件夹,现在您也可以轻松读取 xml 文件。

Step 4: 最后我们得到了res/项目的java代码,这是我们开始时的目标。

P.S.如果您无法通过上述步骤获取 res 文件夹,请安装新的apktool

  • 是否安装了 Java 1.7? 安装 Apktool 2.x
  • 是否安装了 Java 1.6 或更高版本? 安装 Apktool 1.x

Enjoy and happy coding

于 2013-05-14T13:35:06.983 回答
65

没有软件&没有太多步骤..

只需上传您的 APK 并从该站点获取您的所有资源..

https://www.apkdecompilers.com/

本网站将反编译 APK 文件中嵌入的代码并提取文件中的所有其他资产。

注意:我反编译我的 APK 文件并在一分钟内从该网站获取代码

更新 1

我找到了另一个在线反编译器网站,

http://www.javadecompilers.com/apk/ - 不能连续工作,要求阻止弹出窗口

更新 2:

我在 Play 商店中找到了 apk 反编译器应用程序,

https://play.google.com/store/apps/details?id=com.njlabs.showjava

我们可以在我们的android手机中反编译apk文件。我们还可以查看此应用程序中的 java & xml 文件

更新 3:

我们可以使用另一个选项从 Android studio 2.2 版本分析 APK功能

构建 -> 分析 APK -> 选择您的 APK -> 它给出结果

在此处输入图像描述

于 2015-01-16T10:05:36.583 回答
8

在 Android Studio 3.5 中,这非常容易,您只需一分钟即可实现。以下是一个逐步的过程。

1:打开 Android Studio,按窗口按钮 -> 键入 Android Studio -> 点击图标打开 android studio 启动画面,如下所示。

在此处输入图像描述

2:在这里你可以看到一个选项“Profile or debug APK”点击它并选择你的apk文件然后点击ok。

在此处输入图像描述

3: 它会在一分钟内打开你所有的清单和java类,具体取决于apk的大小。

在此处输入图像描述

就是这样。

于 2019-11-13T08:02:49.897 回答
5

并不真地。有许多 dex 反汇编器/反编译器套件,例如 smalidex2jar,它们将生成半人类可读的输出(在 dex2jar 的情况下,您可以通过使用JD-GUI之类的东西来获取 java 代码,但过程是不完美,你不太可能 100% 重新创建源代码。但是,它可能会给你一个开始重建源代码树的地方。

于 2012-10-04T17:54:38.103 回答
5

有一种新方法可以做到这一点。

Android Studio 2.2 有 APK Analyzer 它会提供很多关于 apk 的信息,在这里查看:- http://android-developers.blogspot.in/2016/05/android-studio-22-preview-new-ui.html

ap

于 2016-06-14T06:38:38.377 回答
3

是的,您可以恢复您的项目。只需将yourproject.apk文件重命名为yourproject.zip,您将获得该 ZIP 文件中的所有文件。我们正在将文件扩展名从 .apk 更改为 .zip。从该 ZIP 文件中,提取classes.dex文件并通过以下方式对其进行反编译。

首先,您需要一个工具来将 DEX 上的所有(已编译)类提取到 JAR。有一个叫dex2jar的,是一个中国学生做的。

然后,您可以使用JD-GUI将 JAR 中的类反编译为源代码。生成的源代码应该非常可读,因为 dex2jar 应用了一些优化。

于 2012-10-04T18:03:21.950 回答
3

对于 Android 平台,您可以尝试Play 商店中提供的ShowJava 。

您可以通过应用程序界面查阅生成的代码,生成的 java 文件和文件夹结构与转换生成的文件一起存储在ShowJava文件夹中。/sdcard.jar

该应用程序是免费的,主视图底部有一个广告横幅,但有一个应用内购买选项(3,99 美元)可以将其删除。除了删除广告横幅外,应用内购买不会添加任何功能。

披露:我不是该应用程序的开发人员,我也与他没有任何关系。

于 2018-04-24T11:12:42.713 回答
3

试试这个工具:https ://decompile.io ,它可以在 iPhone/iPad/Mac 上运行 在此处输入图像描述

于 2020-05-11T01:58:47.453 回答
2

请按照以下步骤执行此操作或简单地使用apkToJava gem进行此过程,它甚至会负责安装所需的工具以使其正常工作。

  • 将apk文件转换为zip
  • 解压文件
  • 从中提取 classes.dex
  • 使用dex转jar将classes.dex转成jar文件
  • 使用jadx gui打开jar文件作为java源代码
于 2016-01-31T06:24:38.693 回答
2

如果您正在寻找专业的替代方案,请查看 PNF Software 的JEB Decompiler

有一个演示版本可以让您反编译大多数代码。

于 2017-05-06T16:25:35.020 回答
2

以下是一些可用于执行从 APK 文件到源代码的逆向工程的工具:

  1. dex2jar
  2. Java反编译器
  3. APK工具
  4. APK 分析器
于 2017-07-20T09:28:12.140 回答
1

您可能想要使用的另一个工具是APK Studio 它依赖于第三方工具:Apktool、jadx、ADB 和 Uber APK 签名器,您需要单独下载。

于 2020-08-01T09:44:01.553 回答