Kotlin Multiplatform (KMP) 支持跨不同平台共享 Kotlin 代码。Kotlin Multiplatform 由 JetBrains 开发,并获得 Google 的正式支持,可在 Android 和 iOS 之间共享业务逻辑。使用 KMP 定位移动平台的功能已处于稳定阶段,并可实际投入使用。
Multiplatform Jetpack 库
我们的许多 Jetpack 库已迁移,以利用 KMP 的优势。以下 Jetpack 库提供 KMP 支持:
Maven 组 ID | 最近更新时间 | 稳定版 | 候选版 | Beta 版 | Alpha 版 | 文档 |
---|---|---|---|---|---|---|
annotation (*) | 2025 年 7 月 16 日 | 1.9.1 | - | - | - | |
collection | 2025 年 3 月 12 日 | 1.5.0 | - | - | - | |
datastore | 2025 年 5 月 20 日 | 1.1.7 | - | - | 1.2.0-alpha02 | 文档 |
lifecycle (*) | 2025 年 7 月 30 日 | 2.9.2 | - | - | 2.10.0-alpha01 | |
paging (*) | 2025 年 7 月 30 日 | 3.3.6 | - | - | 3.4.0-alpha02 | |
room | 2025 年 8 月 1 日 | 2.7.2 | - | 2.8.0-beta01 | - | 文档 |
savedstate | 2025 年 7 月 30 日 | 1.3.1 | - | - | 1.4.0-alpha01 | |
sqlite | 2025 年 8 月 1 日 | 2.5.2 | - | 2.6.0-beta01 | - | 文档 |
参考文档
这些库的参考文档(例如 DataStoreFactory
)会按 API 在通用代码、Android 代码和原生代码中是否可用对 API 进行标记。
您还可以在每个页面顶部按平台过滤声明。下表显示了每个标记的含义。
支持的平台
针对正式支持的平台(Android 和 iOS)发布的 Jetpack 库会保持相同的质量和兼容性要求。不过,随着我们努力将 Jetpack 的 Kotlin Multiplatform 支持扩展到其他平台,工具和基础架构支持可能仍在开发中。
每种平台的当前支持级别可总结为以下层级:
第 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 功能尚无法用于这些项目。
使用 Android Studio 创建新的 KMP 模块
您可以在 Android Studio 中创建 KMP 共享模块,开始向 KMP 迁移。此模块会自动应用所有必需的插件(包括 Android-KMP 插件),以便开始开发 Android 和 iOS 应用。
Kotlin Multiplatform Android Studio 插件
我们建议安装由 JetBrains 开发的 Kotlin Multiplatform Android Studio 插件。此插件提供多项功能,可简化开发体验:
- 新建项目向导:在 IDE 中创建新的多平台项目。
- 预检检查:预检检查可帮助您配置环境。
- 运行配置:直接从 IDE 中在 iOS 和 Android 上运行、调试和测试应用。
- IDE 中的基本 Swift 支持:在 IDE 中获得基本 Swift 支持,包括跨语言调试工具、导航和快速文档。
其他资源
如需详细了解整个多平台生态系统和更高级的配置,请参阅官方 Kotlin Multiplatform 文档。
kotlin-multiplatform-samples - 在 KMP 项目中展示了 Jetpack 库的部分功能。
“KMP 使用入门”Codelab - 引导式入门,介绍如何将 KMP 添加到您的项目中。
“将 Room 迁移到 Room KMP”Codelab - 将仅限 Android 的 Room 引导式迁移到 KMP。
反馈
如果您对这些库有任何反馈意见,请通过问题跟踪器分享您的意见。
为您推荐
- 注意:当 JavaScript 处于关闭状态时,系统会显示链接文字
- “将现有应用迁移到 Room KMP”Codelab
- “KMP 使用入门”Codelab
- 使用 Android-KMP Gradle 插件