10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

京东正式开源 Taro on HarmonyOS C-API 版本,为鸿蒙应用跨端开发提供高性能框架

  • 2025-06-23
    北京
  • 本文字数:1826 字

    阅读完需:约 6 分钟

京东正式开源Taro on HarmonyOS C-API版本,为鸿蒙应用跨端开发提供高性能框架

近日,京东正式开源了 Taro on HarmonyOS C-API 版本,为鸿蒙应用跨端开发提供高性能框架。这次版本的发布,带来了更丰富的样式适配、更高效的渲染性能、更全面的组件支持,让开发者以 Web 范式的方式来开发出媲美鸿蒙性能的应用,为鸿蒙应用生态的丰富注入强大的动力。

图:京东鸿蒙版应用

 

整体技术架构

Taro on HarmonyOS 技术方案支持开发者使用 React DSL 来开发鸿蒙应用,在整体架构上可以简单分为三层:

 图:Taro on HarmonyOS React


最上层是应用业务代码所在的 ArkVM 层,这一层在 C-API 版本中主要运行业务代码、React 的核心代码以及少量的 Taro 运行时代码。

 

中间层是 Taro 的 CSSOM 和 TaroElement 树,负责处理上层 Taro 运行时代码传递下来的指令,比如 TaroElement 节点树创建,绑定关系以及设置属性等操作。

 

最下层存放的是 TaroRenderNode 虚拟节点树,这棵节点树和真正的上屏节点树是一一对应的关系,同时在 TaroRenderNode 节点树内会创建对应的 Yoga 节点。

 图:Taro on HarmonyOS React DOM

 

同时,Taro 还基于鸿蒙提供的 VSync 机制设置一套任务处理管线,来处理中间层和下层节点树产生的样式匹配、节点测量、节点布局、样式设置以及节点上屏等任务,来保证任务的时序性和最后上屏渲染结果的正确性。

 

重点特性

在特性方面,Taro on HarmonyOS 技术方案具备“丰富的能力支持、媲美 ArkTS 的高性能、支持 C-API 渲染模式”等三大重点特性。

 

(1) 丰富的能力支持

C-API 版本的 Taro on HarmonyOS 支持常用组件和 API,不仅支持 React 18+,还支持 View、Text、Image、Video 等近 33 个 Taro 组件,以及支持如 getSystemInfo、getStorage 等常用的 API,针对逻辑较为复杂的 API 如:createSelectorQuery 以及 createIntersectionObserver,也在 C++侧进行了重新的实现,大幅提升了执行性能。

 

此外 C-API 版本支持大部分常见的 CSS 能力:

支持常见的 CSS 样式和布局,支持 flex、伪类和伪元素

支持常见的 CSS 定位,绝对定位、fixed 定位

支持常见的 CSS 选择器和媒体查询

支持常见的 CSS 单位,比如 vh、vw 以及计算属性 calc

支持 CSS 变量以及安全区域等预定义变量

同时,在参考浏览器 CSSOM 的实现方式基础上,在 C++实现了一套 CSSOM 逻辑,里面包含了样式解析、样式匹配、样式合成和应用整个链路的样式处理逻辑。

 图:Taro on HarmonyOS CSS

 

另外,Taro 引入了 Yoga 布局引擎来计算渲染节点的位置和大小,最大程度保证 Taro 构建出来的鸿蒙应用中渲染样式和 W3C 规范的一致性。

 图:Taro on HarmonyOS Style

 

(2)媲美 ArkTS 的高性能

在 C-API 的版本中,ArkVM 层的 Taro 运行时内容已削减到非常薄,将 TaroElement 的大部分内容都下沉到了 C++侧,并在 ArkVM 层取消了他们之间父子关系的绑定,极大地提升了 TaroElement 相关逻辑的性能。

 图:Taro on HarmonyOS CAPI


另一方面,在 C++侧 Taro 会指令式地调用 ArkUI 在 C++侧提供的 API,来高效地创建节点、设置属性、绑定事件以及绘制上屏。

 

Taro 还针对长列表场景针对性地提供了长列表类型组件,并对长列表类型组件进行了优化,提供了懒加载、预加载和节点复用等功能,有效地解决大数据量下的性能问题,提高应用的流畅度和用户体验。

 图:Taro on HarmonyOS Virtual List

 

(3)支持 C-API 的渲染模式

Taro 的组件和 API 是以小程序作为基准来进行设计的,因此在实际的鸿蒙应用开发过程中,会出现部分所需的组件和 API 在 Taro 中不存在的情况,因为针对这种情况,在 C-API 版本中,Taro 支持将初始页面或者组件混合编译到 Taro 鸿蒙项目中,支持 Taro 组件和鸿蒙组件在页面上的混合使用。

 图:Taro on HarmonyOS CAPI Hybrid

 

使用指南

Taro on HarmonyOS 技术方案已开源至 Github,开发者可搜索“taro”以获取更多信息:

使用前,开发者可先安装 Harmony 插件

添加插件配置

 编译项目

如果需要编译鸿蒙应用,同时使用编译鸿蒙组件,可以在页面配置中添加 entryOption: false  表示该页面是组件,同时可以用过 componentName 指定组件导出名。

 

Taro on HarmonyOS C-API 版本经历了京东鸿蒙 APP 的实践,从综合性能、生态以及开发体验都更上一层楼。未来,京东团队还会基于当前的 Taro on HarmonyOS C-API 方案,进行多线程的架构升级以及 React 的 C++化,进一步提升 Taro 在鸿蒙端侧的性能,并极大地降低应用的丢帧率。欢迎广大开发者一起参与 Taro on HarmonyOS 的共建,推动 Taro 更好发展。

 

华为在未来也将持续携手生态伙伴共建创新,面向底座技术、通用能力、垂类行业等场景推出系列开发者场景化解决方案,不断提升鸿蒙应用的创新体验和开发效率,与广大开发者共建繁荣的鸿蒙生态。

 

2025-06-23 15:235510

评论

发布
暂无评论

播下开源教育的种子分论坛圆满举办

开放原子开源基金会

开源

重塑招聘的价值,AI能扮演好企业的“人才捕手”吗?

用友BIP

AI招聘

「模问题」AI原生小游戏强势来袭,一起为AI失眠吧!

飞桨PaddlePaddle

人工智能 游戏 文心大模型 AI原生应用

文体中心场地预订小程序开发笔记一-功能设计

CC同学

生成式 AI 的下一阶段将走向何方?

Baihai IDP

深度学习 程序员 AI 白海科技 GenAI

技术译文 | 微服务测试——契约测试

AREX 中文社区

微服务 测试 契约测试

大数据从业者必知必会的Hive SQL调优技巧 | 京东云技术团队

京东科技开发者

强大的字体设计编辑:FontLab 8最新激活版

胖墩儿不胖y

Mac软件 字体设计 字体编辑 设计字体软件

用友全球司库十问(八)|集团企业如何做好资金集中化管理?

用友BIP

全球司库 资金集中管理

DDD学习与感悟——向屎山冲锋 | 京东云技术团队

京东科技开发者

架构 DDD 六边形

文心一言 VS 讯飞星火 VS chatgpt (164)-- 算法导论13.1 4题

福大大架构师每日一题

福大大架构师每日一题

数仓调优实践丨SQL改写消除相关子查询

华为云开发者联盟

数据库 大数据 华为云 华为云开发者联盟 华为云GaussDB(DWS)

解决网络协议服务器问题的关键:定位能力与抓包技术

华为云开发者联盟

网络协议 开发 华为云 华为云开发者联盟

中国机械总院:大型集团视角下的智能费控与支出管理

用友BIP

业财融合

软件开发

Geek_8da502

IntelliJ IDEA安装教程

小魏写代码

大模型加持下,AI招聘的“下一站”

用友BIP

AI招聘

【收藏】法律人办案必备检索网站最新汇总!附检索技巧

科技汇

主馆位置即将售罄“2024北京信息通信展会”众多知名企聚京城

AIOTE智博会

通信展 信息通信展

DevSecOps端到端的安全能力构建为什么重要?

极狐GitLab

反向 Debug 了解一下?揭秘 Java DEBUG 的基本原理 | 京东云技术团队

京东科技开发者

Java debug 后端

《2023 中国信通院IOMM企业数字化转型发展双象限洞察》发布,转型者象限&赋能者象限各有40+企业上榜

信通院IOMM数字化转型团队

数字化转型 IOMM ICT深度观察

利用Prompt学习更多示例,提高大模型性能

百度开发者中心

人工智能 模型

2024年 Kubernetes 四大趋势预测

SEAL安全

Kubernetes 企业号12月PK榜 12 月 PK 榜

一起学Elasticsearch系列-写入原理

Java随想录

Java 大数据 elastic

终端闲思录(5)- 终端与缓冲的关系

蓬蒿

终端 缓冲

用友BIP国资云赋能国资监管迈入智能化新局面

用友BIP

国资监管

被面试官PUA了:创建索引时一定会锁表?

王磊

Java 面试

京东正式开源Taro on HarmonyOS C-API版本,为鸿蒙应用跨端开发提供高性能框架_HarmonyOS_HarmonyOS_InfoQ精选文章