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

标签 java android kotlin

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

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

谢谢!

最佳答案

how is it different from Java code execution with Android

事实并非如此。 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 步中的源代码是哪种语言,也不在乎。

I also want to know why we write MainActivity::class.java (class.java) to reference class file.

你不知道。您编写它来引用与 MainActivity 类对应的 Class 对象。

关于java - Kotlin 代码如何在 Android 应用程序中执行,它与 Java 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47153013/

相关文章:

visual-studio - 同一台计算机上的 JDK 和 Visual Studio 有问题吗?

java - 在 Java 中创建管道式 SQL/NOSQL 查询

android - Android 应用程序崩溃时处理对象的正确方法是什么?

java - 调试器跳过递归 Java 程序中的方法

java - ImageView 导致延迟

ListView 和远程数据库中的 java.lang.NullPointerException

java - 从应用程序打开系统设置的特定部分

android - 带有类型参数的 Kotlin Poet super 接口(interface)

kotlin - 您可以在 Kotlin 中在运行时连接语句吗?

kotlin - 为什么 Kotlin 隐式调用属性的 getter 和 setter?