请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于反编译 kotlin 的问题

我找到两种反编译 kotlin 的方法:
1、在 kotlin 的源码,通过 AndroidStudio 的 Tools -> Kotlin -> show kotlin bytecode -> decompile
2、将生成的 apk,通过 jadx 查看 java 代码

发现生成的 java 代码不一样

以那个为准呢??下面是代码例子:

    Log.d("coroutineScope", "start")
    try {
        coroutineScope{
            Log.d("coroutineScope", "launch-start")
            launch {
                Log.d("coroutineScope", "launch-middle")
            }
            Log.d("coroutineScope", "launch-end")
        }
    } catch (e: Exception) {
        Log.d("coroutineScope", "end")
    }

正在回答 回答被采纳积分+3

1回答

bennyhuo 2020-10-16 18:34:59

反编译的代码不一样,那不是很正常么= =、、不过逻辑应该是差不多的。

另外,要明白一点,反编译只能用来参考,反编译的代码不能与原代码等价,代码编译之后会丢失一些信息,反编译之后就没有了。还有,不同的编译器版本反编译的结果也不同。

0 回复 有任何疑惑可以回复我~
  • 提问者 xxxxjase #1
    那我如何更好的阅读 kotlin 的代码呢??逼近编译器的黑魔法没法从源码直接看出来。不是嘛。。。
    回复 有任何疑惑可以回复我~ 2020-10-16 18:38:14
  • bennyhuo 回复 提问者 xxxxjase #2
    阅读 Kotlin 代码一般不需要反编译啊。。。或者直接看字节码就好了
    回复 有任何疑惑可以回复我~ 2020-10-16 18:42:21
  • 提问者 xxxxjase 回复 bennyhuo #3
    你都是看字节码的???字节码很绕哦。。。而且 kotlin 代码也没有 java 那么直观
    回复 有任何疑惑可以回复我~ 2020-10-16 18:46:26
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信