Kotlin 代码如何在 Android 应用程序中执行,它与 Java 有何不同?

Ash*_*ari 0 java android kotlin

我正在学习 Kotlin 并想了解编译后的代码如何执行,以及它与使用 Android 执行 Java 代码有何不同。

我也想知道为什么我们写MainActivity::class.java( class.java) 来引用类文件。

谢谢!

Ale*_*nov 8

它与使用 Android 执行 Java 代码有何不同

不是。Android 不执行 Java 代码或 Kotlin 代码。相反,有以下链:

  1. Java/Kotlin/Scala/等。编译器采用 Java/Kotlin/Scala 代码并在.class文件中发出 JVM 字节码。

  2. Android Gradle 插件获取 JVM 字节码,将其转换为 Dalvik 字节码(使用dx程序)并将其打包成.apk.

  3. .apk文件安装在设备上时,ART会将它包含的 Dalvik 字节码转换为机器码。

  4. 这是执行的机器代码(和/或 Dalvik 字节码)。ART 不知道在第 1 步中使用的是哪种语言源代码并且不在乎。

我也想知道为什么我们写 MainActivity::class.java (class.java) 来引用类文件。

你没有。您编写它以引用ClassMainActivity该类对应的对象。