2025 年 9 月 25 日
白强
软件工程师
石文涛
渲染团队工程主管 @ Lynx
Lynx 团队
lynxjs.org
如 Lynx 开源博客所介绍,我们的愿景始终是为 更多平台与更多用户 解锁原生能力。随着 HarmonyOS NEXT 的发布为市场带来新的平台和设备多样性,我们希望 Lynx 开发者也能够像在 Android、iOS 和 Web 上一样,轻松地触达这些用户。
今天,我们很高兴地宣布,Lynx 现已提供 HarmonyOS 的公开测试版支持,在 CSS、UI 元件、API 上实现了功能对等,并带来同等级别的性能表现与原生体验。
在之前 教程:产品双列 中,我们使用 Lynx 实现了一个复杂的页面,我们来看一下 Lynx 分别运行 Android 与 HarmonyOS 上的表现;如下图所示,整体 能实现像素级对齐。基于此, Lynx 开发者可以做到一次编写,多端运行,使用同一份代码库同时构建 Android、iOS、Web 和 HarmonyOS 应用,提高开发效率和代码可维护性。
Lynx 在 Android、iOS、HarmonyOS 上 CSS、原生组件等功能高度一致得益于 Lynx 的架构实现:在多平台上 Lynx 的渲染流水线是共用、一致的。在 HarmonyOS 上,Lynx 渲染指令与 HarmonyOS 的 ArkUI 渲染组件对接,进而实现 CSS 属性绘制、动画、自定义组件等。
Lynx 渲染指令直接对接 ArkUI 组件,Lynx 与 OpenHarmony 一起探索了两种对接方式:ArkTS 与 C API。
Lynx for HarmonyOS 最终选择 C API 方式将 Lynx platform-ui-tree 直接映射为 HarmonyOS 的原生组件。既能保证 Lynx 的性能优势,同时也能结合 ArkTS 的丰富生态与能力。
原生组件渲染:利用了 ArkUI 的 C API 将 element-tree 操作直接转换为对原生 UI 节点的调用,其渲染指令可以绕开 ArkTS 虚拟机的执行开销,不存在语言间数据传递的转换,在 HarmonyOS 上实现接近甚至超越原生 ArkTS 的渲染性能。
自定义元件:通过 HarmonyOS 提供的 BuilderNode
和 Builder
可动态构建 ArkTS 子树,直接嵌入到 Lynx 创建的 ArkUI 节点树,以实现高度定制自定义元件。
Lynx 在 HarmonyOS 构建了一套完整的事件处理机制,能在复杂交互场景下捕获和响应手势与事件。
手势识别 | 混合场景自定义手势控制 |
---|---|
![]() | ![]() |
tap
、longpress
等,保障在使用 Lynx for HarmonyOS 时拥有与原生一致的手势体验。user-interaction-enabled
和 block-native-event
,允许开发者可控制事件的穿透和消费逻辑,可高效处理与原生页面的混合滚动等复杂场景。