android - 如何从 .apk 文件中提取 java 文件

标签 android apk bytecode decompiling dex2jar

不幸的是,我删除了我的 Android 源代码。尝试使用 dex2jar 和 baksmali 获取 jar,并使用 jd-gui 使用我的 .apk 文件获取 java 源文件。是的,我得到了文件,但我遇到的问题是,在 java 文件的更多地方,代码是字节格式的。需要把它变成可读的格式才能让我自己继续前进。

最佳答案

反编译不是一门完美的科学,您很少能得到您键入的准确 Java 代码。

当你编译你的代码时,会对其进行一系列优化,如果你的目标是获得原始代码,这会使反编译变得更加困难。

充其量,您将获得大量经过适当反编译的代码以及一些字节代码。在编写原始代码时,您应该能够根据字节码在程序中的位置找出用什么 Java 代码替换该字节码​​。

对于大多数简单的应用程序,从头开始重写比反编译并尝试修复反编译的代码更容易。

tl;dr:不要忘记备份您的代码。曾经。

关于android - 如何从 .apk 文件中提取 java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15983962/

相关文章:

android - 在缓慢的工作日保持忙碌/增加编码印章

java - 使用ASM访问第n条指令

java - 使用 ASM 重写 Java 本地方法

安卓错误 : Failed to install : timeout

android - API 级别 28 的编译错误

android - 使用 Gradle 更改 apk 名称

java - 从字节码获取调用层次结构(在 Eclipse 中)

android - 在覆盖DefaultUncaughtExceptionHandler的同时,我还能在市场上获得错误报告吗?

android - 如何减少移动使用的 mp3 流媒体流量消耗?

java - 更新自定义 ListView 项目