6.3.1 Kotlin/Native

原文链接: https://kotlinlang.org/docs/native-overview.html

6.3.1 Kotlin/Native

Kotlin/Native 是一种把 Kotlin 代码编译为无需虚拟机即可运行的原生二进制的技术。Kotlin/Native 包含基于 LLVM 的 Kotlin 编译器后端,以及 Kotlin 标准库的原生实现。

为什么选择 Kotlin/Native?

Kotlin/Native 的主要设计目标是支持为那些不适合或无法使用虚拟机的平台(例如嵌入式设备或 iOS)进行编译。当你需要生成一个自包含、不需要额外运行时或虚拟机的程序时,它非常理想。

把编译后的 Kotlin 代码集成到用 C、C++、Swift、Objective-C 及其他语言编写的现有项目中很容易。你也可以直接在 Kotlin/Native 中使用现有的原生代码、静态或动态 C 库、Swift/Objective-C 框架、图形引擎以及其他任何东西。

Kotlin/Native 入门

目标平台

Kotlin/Native 支持以下平台:

  • Linux
  • Windows(通过 MinGW)
  • Android NDK
  • 面向 macOS、iOS、tvOS 和 watchOS 的 Apple 目标

注意: 要编译 Apple 目标,你需要安装 Xcode及其命令行工具。

查看受支持目标与宿主机的完整列表。

互操作

Kotlin/Native 支持与不同操作系统的原生编程语言进行双向互操作。编译器可以为许多平台创建可执行文件、静态或动态 C 库,以及 Swift/Objective-C 框架。

与 C 的互操作

Kotlin/Native 提供与 C 的互操作。你可以直接在 Kotlin 代码中使用现有的 C 库。

要了解更多,请完成以下教程:

与 Swift/Objective-C 的互操作

Kotlin/Native 通过 Objective-C 提供与 Swift 的互操作。你可以在 macOS 和 iOS 上的 Swift/Objective-C 应用中直接使用 Kotlin 代码。

要了解更多,请完成 Kotlin/Native 作为 Apple 框架教程。

跨平台共享代码

Kotlin/Native 包含一组预构建的平台库,帮助在不同项目之间共享 Kotlin 代码。POSIX、gzip、OpenGL、Metal、Foundation 以及许多其他流行库和 Apple 框架都已预导入,并作为 Kotlin/Native 库包含在编译器发行包中。

Kotlin/Native 是 Kotlin Multiplatform 技术的一部分,后者帮助在包括 Android、iOS、JVM、Web 和原生在内的多个平台之间共享通用代码。多平台库为通用 Kotlin 代码提供必要的 API,并让你可以在一处用 Kotlin 编写项目的共享部分。

内存管理器

Kotlin/Native 使用类似于 JVM 和 Go 的自动内存管理器。它有自己的追踪式垃圾回收器,并且也与 Swift/Objective-C 的 ARC 集成。

内存消耗由自定义内存分配器控制。它优化内存使用,并帮助防止内存分配突然激增。