Kotlin Multiplatform (KMP) 支持跨不同平台共享 Kotlin 代码。Kotlin Multiplatform 由 JetBrains 开发,将 KMP 用于定位移动平台的功能已处于稳定阶段,并可实际投入使用。
Multiplatform Jetpack 库
Google 正式支持 Kotlin Multiplatform,可在 Android 和 iOS 之间共享业务逻辑。我们的许多 Jetpack 库已迁移,以便利用 KMP。
以下 Jetpack 库提供 KMP 支持:
Maven 组 ID | 最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 | 文档 |
---|---|---|---|---|---|---|
annotation (*) | 2024 年 10 月 30 日 | 1.9.1 | - | - | - | |
collection | 2024 年 11 月 13 日 | 1.4.5 | - | - | 1.5.0-alpha06 | |
datastore | 2024 年 5 月 1 日 | 1.1.1 | - | - | - | 文档 |
lifecycle (*) | 2024 年 11 月 13 日 | 2.8.7 | - | - | 2.9.0-alpha07 | |
paging (*) | 2024 年 11 月 13 日 | 3.3.4 | - | - | - | |
room | 2024 年 10 月 30 日 | 2.6.1 | - | - | 2.7.0-alpha11 | 文档 |
sqlite | 2024 年 10 月 30 日 | 2.4.0 | - | - | 2.5.0-alpha11 | 文档 |
这些库的参考文档会按 API 在通用代码、Android 代码和原生代码中是否可用对 API 进行标记。您还可以在每个页面顶部按平台筛选声明。
kotlin-multiplatform-samples GitHub 仓库展示了这些库的部分功能。
如果您对这些库有任何反馈意见,请通过问题跟踪器分享您的意见。
支持的平台
面向官方支持的平台(Android 和 iOS)的 Jetpack 库版本保持相同的质量和兼容性要求。不过,随着我们努力将 Jetpack 的 Kotlin Multiplatform 支持扩展到其他平台,工具和基础架构支持可能仍在完善中。
每个平台当前的支持级别可分为以下层级:
第 1 层级:
- 在 CI 中进行了全面测试;包括主机端测试和设备端测试
- 根据我们的语义版本控制政策跟踪源代码和二进制文件兼容性
第 2 层级:
- 在 CI 上进行了部分测试;仅限主机端测试
- 不跟踪源代码或二进制文件兼容性
第 3 层级:
- 未在 CI 上进行测试
- 不跟踪源代码或二进制文件兼容性
平台 | 支持级别 |
---|---|
Android | 第 1 层级 |
JVM | 第 1 层级 |
iOS | 第 1 层级 |
macOS | 第 2 层级 |
watchOS | 第 3 层级 |
tvOS | 第 3 层级 |
Linux | 第 2 层级 |
Windows | 第 3 层级 |
WASM | 第 3 层级 |
工具支持
您可以在 Android Studio 中打开、修改和运行多平台项目。不过,部分 IDE 功能尚无法用于这些项目。如需创建新项目,请使用 JetBrains 中的 Kotlin Multiplatform 向导。
此外,我们还将针对新版本测试各种核心场景,确保 Android Gradle 插件与 Kotlin Multiplatform 兼容。