KMP&CMP 社区首版本开启 Beta

来源:百家号 2026-06-17

  近日,在华为开发者大会 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 ,自动完成绘制指令转换、节点化承载与局部刷新。

图片 1.png

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

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

  更高效帧调度:仅在 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.png

  2、退后台释放 DMA-BUF

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

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

图片 3.png

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

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

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

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

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

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

图片 4.png

  2、DFX解决方案

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

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

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

图片 5.png

  3、编译优化

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

图片 6.png

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

图片 7.png

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

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

图片 8.png

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

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

  即刻体验

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

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

  用 KMP&CMP 平行社区版本搭建应用:

图片 9.png

类型:广告
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
发布
X
第三方账号登录
  • 微博认证登录
  • QQ账号登录
  • 微信账号登录

企业俱乐部