Kotlin Multiplatform (KMP) 能够跨不同平台共享 Kotlin 代码。Kotlin Multiplatform 由 JetBrains 开发,使用 KMP 针对移动平台是稳定且可用于生产环境的。
多平台 Jetpack 库
Google 官方支持 Kotlin Multiplatform,用于在 Android 和 iOS 之间共享业务逻辑。我们的许多 Jetpack 库已迁移,以利用 KMP。
以下 Jetpack 库提供 KMP 支持
Maven Group ID | 最新更新 | 稳定版 | 发布候选版 | Beta 版 | Alpha 版 | 文档 |
---|---|---|---|---|---|---|
annotation (*) | 2025 年 5 月 7 日 | 1.9.1 | - | - | - | |
collection | 2025 年 3 月 12 日 | 1.5.0 | - | - | - | |
datastore | 2025 年 5 月 20 日 | 1.1.7 | - | - | 1.2.0-alpha02 | 文档 |
lifecycle (*) | 2025 年 6 月 4 日 | 2.9.1 | - | - | - | |
paging (*) | 2025 年 2 月 12 日 | 3.3.6 | - | - | - | |
room | 2025 年 4 月 23 日 | 2.7.1 | - | - | - | 文档 |
savedstate | 2025 年 5 月 7 日 | 1.3.0 | - | - | - | |
sqlite | 2025 年 5 月 7 日 | 2.5.1 | - | - | - | 文档 |
参考文档
这些库的参考文档根据 API(例如 DataStoreFactory
)在通用代码、Android 和原生平台上的可用性进行标记。您还可以在每个页面顶部按平台筛选声明。
支持的平台
适用于官方支持平台 Android 和 iOS 的 Jetpack 库版本保持相同的质量和兼容性要求。然而,随着我们努力将 Jetpack 的 Kotlin 多平台支持扩展到其他平台,工具和基础设施支持可能仍在开发中。
每个平台的当前支持级别可分为以下几层:
第 1 层:
- 在 CI 中经过全面测试;包括主机端测试和设备端测试
- 源代码和二进制兼容性跟踪,符合我们的语义版本控制策略
第 2 层:
- 在 CI 上部分测试;仅限于主机端测试
- 无源代码或二进制兼容性跟踪
第 3 层:
- 未在 CI 上测试
- 无源代码或二进制兼容性跟踪
平台 | 支持级别 |
---|---|
Android | 第 1 层 |
JVM | 第 1 层 |
iOS | 第 1 层 |
macOS | 第 2 层 |
Linux | 第 2 层 |
watchOS | 第 3 层 |
tvOS | 第 3 层 |
Windows | 第 3 层 |
JavaScript | 第 3 层 |
WASM | 第 3 层 |
工具支持
您可以在 Android Studio 中打开、编辑和运行多平台项目。但是,某些 IDE 功能尚不适用于这些项目。要创建新项目,请使用 JetBrains 的 Kotlin Multiplatform 向导,或者您可以使用 Kotlin Multiplatform Android Studio 插件。
我们还在通过测试新版本中的核心场景来确保 Android Gradle 插件与 Kotlin 多平台兼容。
更多资源
The kotlin-multiplatform-samples - 展示了 KMP 项目中 Jetpack 库的一些功能。
KMP 入门 Codelab - 指导您如何将 KMP 添加到项目中。
将 Room 迁移到 Room KMP Codelab - 指导您将仅限 Android 的 Room 迁移到 KMP。
反馈
如果您对这些库有任何反馈,请通过问题跟踪器分享。