关于反编译 kotlin 的问题

来源:12-2 案例:仿官方框架实现 launch 2

xxxxjase普通

2020-10-16

我找到两种反编译 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")
    }
写回答

1回答

bennyhuo

2020-10-16

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

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

0
6
xxxxjase普通
回复
bennyhuo
奥。。。。@
2020-10-16
共6条回复

学会Kotlin 突破开发语言瓶颈

如果有一门语言可以取代Java,那么它一定是Kotlin。

1760 学习 · 481 问题

查看课程