Android 如何将 Java 方法编译为编译方法?

How does Android compile a Java method to an compiled method?

最近我用 dex2jar、jd-gui 和 Android studio.

反编译了一些 Android APK

为什么有的classes的方法可以看到源码,有的classes的方法只能看到/编译后的代码/?
这两个class在编译的时候有什么区别?

而且,我想对我的代码做同样的编译工作以确保安全。我可以寻找哪些工具?

这可能是因为您的 JAVA 文件由于不正确的字节码而无法读取,或者它可能已被加密。您无法区分正确和不正确的 JAVA 文件类型。

无论如何,要正确编译您的 JAVA 文件,您也可以使用 Luyten(与 jd-gui 相同)。

Source Link

当 Android Studio 打开一个 .class 文件并且无法反编译代码时,它只会显示 "compiled code" 消息。有很多东西可以阻止反编译,因为很多东西在字节码中是合法的,而在 Java 中是非法的。 (例如,具有名为 iffor 的方法是完全合法的字节码,但这些是 Java 关键字,不能用于命名 Java 方法。)当 ProGuard 处理 .class 文件时,这些事情很容易出现,并且可能由 APK 构建过程中的其他工具处理。