CPF-KMP-CMP:在鸿蒙上用 Kotlin 写跨平台应用

Kotlin Multiplatform + Compose Multiplatform 进入 OpenHarmony 生态的完整实践

一、背景:Kotlin 跨平台的鸿蒙拼图

Kotlin 作为 JetBrains 推出的现代编程语言,早已不只是 Android 的"官方语言"。通过 Kotlin Multiplatform(KMP),开发者可以将业务逻辑代码在 Android、iOS、Desktop、Web 等平台间共享;而 Compose Multiplatform(CMP) 则更进一步——它把 Android 上广受好评的声明式 UI 框架 Compose 带到了所有平台。

但 OpenHarmony(开源鸿蒙)作为新兴的独立操作系统,既不属于 Android 也不属于 iOS,JetBrains 官方并未提供原生支持。这意味着:

  • 已有的 KMP/CMP 项目无法直接在鸿蒙上运行
  • 鸿蒙开发者无法享受 Kotlin 跨平台带来的代码复用红利
  • 声明式 UI 的鸿蒙开发生态尚属空白

CPF-KMP-CMP 正是为填补这一空白而诞生的社区。

二、CPF-KMP-CMP 是什么

CPF-KMP-CMP(Cross-Platform Framework - Kotlin Multiplatform & Compose Multiplatform)致力于将 Kotlin Multiplatform 和 Compose Multiplatform 的开发体验带入鸿蒙生态(OpenHarmony)。

其核心价值主张:

特性说明
声明式 UI基于 Compose Multiplatform 的声明式 UI 框架,让鸿蒙应用开发更简洁高效
跨平台复用一套 Kotlin 代码,同时编译为 Android、iOS 和 HarmonyOS 平台产物
原生性能通过自研编译工具链和统一渲染引擎,在鸿蒙上提供接近原生的运行性能
完整工具链从工程创建、编码调试、编译构建到签名推包的一站式开发体验

三、社区生态数据

截至 2026 年 9 月,CPF-KMP-CMP 组织的生态数据如下:

指标数据
组织成员202 人
关注者236
核心仓库数6+
总 Star150+
总 Fork150+
主要语言Kotlin、C++、Java、Markdown

这是一个规模可观的社区——202 名成员的参与,说明鸿蒙生态对 Kotlin 跨平台方案有着强烈的需求。

四、技术架构:四大核心组件

CPF-KMP-CMP 的技术栈由四个核心仓库构成,形成从语言到 UI、从渲染到工具链的完整闭环。

1. kotlin — 跨平台语言基础

kotlin 是 KMP 的核心编译器仓库,基于 JetBrains 官方 Kotlin 进行鸿蒙平台适配。

Star 43 | Fork 58 | 分支 main-2.2.21-OH

它允许开发者在不同平台(Android、iOS、HarmonyOS)之间共享业务逻辑代码。适配后的 Kotlin 编译器能够将 Kotlin 代码编译为鸿蒙平台可执行的产物,是整个跨平台方案的语言基础。

2. compose-multiplatform — 声明式 UI 框架

compose-multiplatform 是基于 KMP 的声明式 UI 框架,用于跨平台开发。

Star 34 | Fork 19 | 分支 develop-1.9.2-OH

Compose Multiplatform 在鸿蒙上的适配意味着:

  • 开发者可以用 Jetpack Compose 的语法编写鸿蒙 UI
  • UI 代码可以在 Android 和 HarmonyOS 之间直接复用
  • 底层使用 OHRenderer 提供硬件加速渲染
  • 支持 Compose HTML 在 WebView 中渲染 UI

3. skiko — 渲染引擎

skiko 是 KMP 使用的渲染框架,提供原生绑定和运行时桥接能力。

Star 15 | Fork 20 | 分支 develop-0.9.22.2-OH | 语言 C++

Skiko 是 Compose Multiplatform 的底层渲染引擎,基于 Skia 图形库。在鸿蒙适配中,它负责将 Compose UI 绘制到鸿蒙的原生 Canvas 上,是实现"原生性能"的关键组件。

4. ohos-kmp-toolchain — Android Studio 插件

ohos-kmp-toolchain 是 KMP 鸿蒙应用开发的 Android Studio 插件。

Star 25 | Fork 13 | 语言 Kotlin

这个插件将鸿蒙开发集成到了开发者熟悉的 Android Studio 工作流中,支持:

  • KMP 鸿蒙模版新建
  • 工程同步(Gradle Sync)
  • 构建、运行、调试
  • 设备管理与日志查看

开发者无需切换到 DevEco Studio 就能完成鸿蒙应用的开发和调试。

五、版本发布:v2.2.21-1.0.0 正式版

2026 年,CPF-KMP-CMP 发布了首个正式版本:KMP v2.2.21-1.0.0 & CMP v1.9.2-1.0.0。

版本矩阵

组件版本状态
kotlin2.2.21-1.0.0正式版
compose-multiplatform1.9.2-1.0.0正式版
compose-multiplatform-core1.9.2-1.0.0正式版
skiko0.9.22.2-1.0.0正式版
akinterop1.0.0正式版

运行环境要求

环境要求
DevEco Studio6.0.0
HarmonyOS SDKAPI17
Android Studio (Mac)Hedgehog+ 2023.1.1 Patch 2 及以上
Android Studio (Windows)Otter 2 Feature Drop 2025.2.2 Patch 1 及以上
ROMAPI17,HarmonyOS Level 5.0 Release 及以上

正式版核心更新

KMP 部分:

  • 首次支持 Windows/macOS/Linux 三平台开发鸿蒙应用
  • 新增 sharedLib / staticLib / kexe 三种产物类型
  • 支持 HTTP/HTTPS 本地请求
  • 新增 LRU 缓存、异步文件 IO、协程调度器

CMP 部分:

  • Compose 1.9 升级,OHRenderer ArkUI 5.0 渲染框架
  • 支持 Navigation3、侧边栏、Column、折叠栏等组件
  • 新增 Shadow、Material3 AlertDialog
  • CMP UI 支持与 HarmonyOS 原生 Navigation/Navigation3 互操作

互操作能力:

  • 新增 @Composable 和 @ArkEntry 互调能力
  • 支持 ArkTS 与 Compose UI 双向调用
  • DMA 共享内存实现高效数据交换

六、开发环境与快速上手

环境要求

工具用途
Android Studio (>=2024.2.1)Kotlin/KMP 工程开发
DevEco Studio鸿蒙工程管理、签名与推包
HarmonyOS 模拟器或真机运行鸿蒙应用
华为开发者账号签名调试

快速上手步骤

1. 安装 Android Studio,配置 Gradle JDK 为 JDK17
2. 安装 Kotlin 和 Kotlin Multiplatform 插件
3. 安装 ohos-kmp-toolchain 工具链插件(离线安装)
4. Gradle Sync → 启动鸿蒙工程 → 运行到模拟器或真机

七、文档与资源

CPF-KMP-CMP 提供了完善的中文文档,涵盖:

分类内容
入门快速开始、入门指南、工具链手册、框架介绍、架构介绍
UI 开发核心概念、布局、导航、资源管理、ViewModel、CMP 组件库
深入开发功能开发、三方库、平台集成(FFI/CAPI)、编译构建、调试
资源FAQ、示例工程

Release Notes

八、总结

CPF-KMP-CMP 解决了一个关键问题:让 Kotlin 跨平台开发者能够用已有的技术栈进入鸿蒙生态。

它的价值不仅在于技术适配,更在于降低了鸿蒙应用开发的门槛——开发者可以用熟悉的 Kotlin 语法、Android Studio 工具链、Compose 声明式 UI,编写出同时支持 Android、iOS 和 HarmonyOS 三大平台的应用。

传统鸿蒙开发使用 CPF-KMP-CMP
需要学习 ArkTS用 Kotlin 即可
使用 DevEco StudioAndroid Studio 也能开发
UI 框架与 Android 不兼容Compose UI 可复用
业务逻辑无法跨平台一套代码三端运行
工具链生态尚不成熟复用 Android/KMP 生态

对于已有 KMP/CMP 项目的团队,迁移到鸿蒙的路径已经打通;对于新的跨平台项目,从第一天起就可以将鸿蒙纳入目标平台。

九、相关链接


如果你是 Kotlin 开发者,想要进入鸿蒙生态,CPF-KMP-CMP 提供了一条从语言到 UI、从工具到文档的完整路径。202 名社区成员正在共同推动这个生态的成长。

Logo

一站式 AI 云服务平台

更多推荐