鸿蒙版KMP/CMP框架开启首个版本Beta

描述

近日,在华为开发者大会 2026(HDC 2026)上,华为终端 BG 软件部总裁龚体正式宣布,备受开发者关注的鸿蒙版 KMP&CMP 框架开启首版本 Beta 。

作为面向鸿蒙跨平台开发的重要能力升级, KMP&CMP 社区版本 Beta 基于上游社区 KMP 2.2.21 与 CMP 1.9.2,深度适配鸿蒙平台,围绕高性能、低内存、高效开发三大核心特征,构筑差异化竞争力,给鸿蒙开发者带来更加灵活、高效的跨平台开发新选择。

随着鸿蒙生态持续壮大,越来越多应用希望在保持跨平台开发效率的同时,充分发挥鸿蒙系统在渲染、内存、设备协同等方面的原生能力。

此次 KMP&CMP 社区版本 Beta 的发布,正是面向这一需求,在延续 Compose 开发范式的基础上,进一步打通鸿蒙底层系统能力,让跨平台应用在鸿蒙设备上获得更流畅、更轻量、更贴近原生体验的运行效果。

一、高性能:接入鸿蒙统一渲染服务,告别传统自渲染开销

传统跨平台 UI 采用自渲染方式,易带来额外初始化与合成开销。 KMP&CMP 社区版本引入统一渲染路径,让 Compose 底层对接鸿蒙 Render Service ,自动完成绘制指令转换、节点化承载与局部刷新。

内存

这一能力可以帮助应用带来五大收益:

更快首帧:减少自渲染初始化等待,提升启动、跳转和首屏展示速度

更高效帧调度:仅在 Compose 状态变化时请求帧更新,避免空转绘制

更细粒度更新:支持 RenderNode 局部录制,只重绘实际变化的区域

更稳定流畅:长列表、动画和混排场景中节点组缓存复用减少重复绘制

更轻量的内存占用:复用 ArkUI 渲染资源,省去 Compose 独立 GPU 上下文与离屏 buffer 的双份开销

开发者无需改变 Compose 开发范式,即可获得更流畅、更省内存的鸿蒙体验。

二、低内存:CommonGC+ 后台 DMA-BUF 释放,双管齐下

KMP&CMP 运行时内存由 KN 堆内存(GC 管理)和图形渲染缓存构成。KMP&CMP社区版本在两方面分别做了深度优化。

1、CommonGC——低碎片、低延迟、高并发的全新 GC 算法

一方面,新版本引入 CommonGC 全新算法,替代原 CMS 算法,通过一系列关键技术,消除碎片,平均降低 30% 的 KN 堆内存占用。

关键技术包括:

Copying GC:From/To 空间复制,紧凑排列,无碎片

Region 分区管理:固定大小 Region,精细化管理

分代收集:年轻代频繁回收,必要时 Full GC

读屏障:GC 与应用线程并发工作,大幅减少暂停时间。

指针碰撞分配:在连续 To-Space 中维护起始指针,分配新对象时只需移动指针,分配极快。

精确栈扫描:通过编译器生成的 StackMap 精确识别栈帧中的对象引用。

内存

2、退后台释放 DMA-BUF

另一方面,针对 CMP 页面中 Compose 实例原本持有 5 个 DMA-BUF 缓冲区(前后台均占用)的问题,新版本也进行了全面优化。

优化后:退后台时释放 GL 上下文与 EGL 会话,断开 Buffer Queue 的 Producer,仅保留 1 个 last buffer,显著降低了后台内存占用的情况。在涉及多图片的页面场景收益更加显著。

内存

三、高效开发:跨语言通信、 DFX 、编译优化、多设备适配

在高效开发方面,KMP&CMP 社区版本围绕跨语言通信、DFX 诊断、编译优化和多设备适配等关键环节进行系统增强,帮助开发者更快完成鸿蒙跨平台应用开发和调优。

1、跨语言通信:Kotlin ArkTS  双向互操作

互操作机制:基于 NAPI 与 Kotlin CInterop,实现函数与数据结构的双向导出

注解式开发:通过声明式注解标记需导出的函数或类,无需手写胶水代码

运行时协同优化:String 等关键数据实现跨语言内存共享;对象传递采用代理模式,优化 Kotlin 访问 ArkTS 对象的性能

内存

2、DFX解决方案

Kotlin 抓栈能力:支持抓取 Kotlin 业务栈及跨语言回栈,快速定位 Crash / AppFreeze

Kotlin 堆内存监控:支持实时查看 Kotlin 堆内存占用

二次分配堆栈追踪:支持分析 KMP 二次内存分配的堆栈信息,辅助排查内存问题

内存

3、编译优化

并行编译:对 ModuleOptimization 与LTO Optimization 两大耗时阶段,采取“LLVM IR 文件拆分 → 多核并行优化 → 合并”的方案,在百万行级别的生产应用中编译耗时平均缩短 20%+。

内存

模块化编译拆分:支持按业务维度将 KMP 工程拆分为多个独立 .so 及头文件,运行时库独立抽离,配合分布式编译进一步降低编译时间。

内存

4、多设备高效开发:完整移植 Navigation3 实现平行视界

平行视界核心能力包括:应用内分屏、左右窗口协同、主从页面并行展示、窗口模式自动切换。我们基于 Navigation3 完整实现,动态根据窗口尺寸(宽度/高度阈值、宽高比)及设备类型,自动切换单栏 / 双栏布局。

内存

开发者收益:一套导航模型覆盖多设备形态,声明式编写导航代码,仅通过配置即可启用平行视界,手机、折叠屏、平板的差异由分栏策略自动处理。

用户收益:少跳转、更连续的大屏体验——商品列表与详情、消息列表与会话、文档目录与正文等场景,均可同屏并行浏览与操作,充分发挥鸿蒙多设备形态优势。

即刻体验

KMP&CMP 社区版本 Beta 的发布,不仅为鸿蒙跨平台开发提供了新的技术路径,也为开发者在性能、内存、开发效率和多设备体验之间找到更优平衡点提供了重要支撑。通过对鸿蒙统一渲染服务、内存管理机制、跨语言互操作、DFX 诊断、编译优化和平行视界等能力的深度适配, KMP&CMP 正在帮助跨平台应用更好地发挥鸿蒙系统能力。

目前,开发者可通过登录“AtomGit 官网”,首页搜索“CPF-KMP-CMP / docs ”,访问相关文档快速体验 KMP&CMP 社区版本,并加入 KMP&CMP 平行社区,参与版本规划与技术共建。面向未来,随着社区持续共建和能力不断演进, KMP&CMP 有望进一步降低鸿蒙跨平台开发门槛,助力更多应用高效完成鸿蒙化适配,共同推动鸿蒙开发生态繁荣发展。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分