classes.dex 文件不包含我的 java 类

classes.dex file does't contain my java classes

我在 android 工作室开发了一个应用程序,并在我的 phone 中对其进行了测试。我格式化了我的电脑,却忘了将我的项目保存到某个地方。现在我想取回我的源代码。我从 phone 获取 APK 文件(通过使用 adb 和其他一些工具)。

我正在使用 dex2jar 并反编译我的 classes.dex 文件,但它没有显示我自己的 Java 类。有可能让他们回来吗?

你可以很容易地反编译它,下面是一个很棒的教程:

https://futurestud.io/tutorials/how-to-decompile-an-android-app-apk

4 个简单的步骤如下:

1- 像解压任何 zip 文件一样解压 apk

2-查找 classes.dex 个文件

3-使用 dexToJar 工具将它们转换为 jar 文件

4- 使用 JD-Gui 应用程序打开 jar 文件(适用于 windows/ubuntu/mac)

这通常是由一些混淆器完成的,例如Proguard。这意味着,除其他外,您的 classes 的 class 名称将更改为无意义的名称(例如 A/B/C),这些名称在完全限定路径中仍然会有所不同a java class,例如您可能在不同的包中有多个“"A" classes,但除此之外,您将多次使用这些 class 名称。在大多数情况下,它不会损害程序的功能,但这会使逆向工程变得更加困难。

如果这是您的应用并且您可以重建它,则可以禁用 ProGuard 或其部分功能,否则您将需要自行对其进行逆向工程。