【发布时间】:2018-11-13 15:54:50
【问题描述】:
我是一名 kotlin 和 Java 开发人员,最近开始分析 kotlin 生成的字节码。我发现了很多包装器代码和编译器生成的其他内容,以便将我在 Kotlin 中编写的代码转换为 Java。
所以,我的问题是:
想象一下,我有一个应用程序,它的代码 100% 用 kotlin 编写。 依赖项和主应用程序。所有科特林。
- 这是否意味着将使用不同的编译器来避免与 Java 兼容的字节码?
- 或者在这种情况下编译器是否做了优化?
非常感谢。
我知道Kotlin Native,但我认为它将来只会应用于Android。
【问题讨论】:
-
你说的为了避免字节码是什么意思?
-
kotlin 有自己的编译器,是的
-
@TimCastelijns 但它仍然会变成 Java 字节码,尽管它绝对是一团糟。
-
是什么让你说“一团糟?”不是。
-
@yole 好吧,我想我不知道字节码,但是当它被反编译时,使用 Android Studio 的反编译器、JADx 或 APKTool(Java、Java、Smali),要遵循代码要困难得多与 Java 应用程序相比。 Kotlin 类在编译时仍然使用
kotlin.String、kotlin.Int和kotlin.Unit类型,而不是java.lang.String、int和void。
标签: android kotlin decompiler