来自JetBrains网站:
Kotlin / Native是一种将Kotlin编译为在没有任何VM的情况下运行的本机二进制文件的技术。
但Kotlin如何与JNI交互,据我所知,如果使用JNI的C / C ++程序想要访问它必须使用GetFieldID
函数的java字段,但C程序需要来自JVM描述的信息对象及其价值。
如果Kotlin使得不依赖于VM的程序如何获得Java字段的值,kotlin / Native如何解析字段的值?
答案 0 :(得分:2)
Kotlin / Native与JNI不做同样的事情,该网站描述了像这样的Kotlin / Native ......
Kotlin / Native是一种将Kotlin编译为在没有任何VM的情况下运行的本机二进制文件的技术。它包含一个基于LLVM的Kotlin编译器后端和Kotlin运行时库的本机实现。 Kotlin / Native主要用于允许编译不适合或不可能使用虚拟机的平台(例如iOS,嵌入式目标),或者开发人员需要生成不需要额外运行时的合理大小的自包含程序。 [Source]
JNI允许Java代码与本机代码通信,而Kotlin / Native允许您将Kotlin代码编译为不需要运行JVM的本机可执行文件。