企业宣传,产品推广,广告招商,广告投放联系seowdb

京东鸿蒙上线前瞻

背景

2024 年 1 月,京东正式启动 鸿蒙 原生运行开发,基于NEXT 的全场景、原生 默认 、原生安保等好处特性,为消费者打造更流利、更默认、更安保的购物体验。同年 6 月,京东鸿蒙原生运行尝鲜版上架华为运行市场,方案 9 月成功正式版的上架。

早在 2020 年,京东与华为就签署了策略协作协定,不时放大技术投入探求OS 的翻新特性。作为华为鸿蒙生态的首批头部协作同伴,在适配鸿蒙 操作系统 的环节中,京东与华为不时坚持着亲密的技术沟通与共创,双方共同攻坚行业适配难点,并推进多端一致开发处置方案 Taro 在业界率先成功对鸿蒙 ArkUI 的原生开发允许。

本文将论述京东鸿蒙原生运行在开发时所驳回的技术方案、技术特点、性能体现以及未来的优化方案。 经过引见选用 Taro 作为京东鸿蒙原生运行的开发框架的要素,剖析 Taro 在允许 Web 范式开发、极速迁徙存量名目、渲染性能优化、高阶配置允许以及混合开发形式等方面的好处。

技术方案

京东在开发鸿蒙原生运行的环节中,须要思考如何在有限的期间内高效成功名目,同时统筹运行的性能与用户体验。为了达成这一指标,选用适合的技术方案至关关键。

在技术选型方面,开发一个鸿蒙原生运行,普通会有两种选用:

经常使用原生 ArkTS 启动鸿蒙开发

经常使用跨端框架启动鸿蒙开发

经常使用原生 ArkTS 启动鸿蒙开发,面临着 开发周期简短、保养多端多套运行代码老本高昂的应战 。在交付期间紧、义务重的状况下,京东果决选用跨端框架来开发鸿蒙原生运行,以期在有限的期间内高效成功名目。

作为在业界具有代表性的开源跨端框架之一,Taro 是由京东凹凸试验室团队开发的一款放开式跨端跨框架处置方案,它允许 开发者 经常使用一套代码,实如今 H5、小程序以及鸿蒙等多个平台上的运转。

经过 Taro 提供的编译才干,开发者可以将整个 Taro 名目轻松地转换为一个独立的鸿蒙运行,无需额外的开发上班。

另外,Taro 也允许 将名目里的局部页面以模块化的方式打包进原生的鸿蒙运行中 ,京东鸿蒙原生运行便是经常使用这种形式启动开发的。

京东鸿蒙原生运行的基础基建才干如路由、定位、权限等才干由京东批发 mpass 团队来提供,而原生页面的渲染以及与基建才干的桥接则由 Taro 来担任,业务方只有要将写好的 Taro 名目经过执行相应的命令,就可以将名目以模块的方式一键打包到鸿蒙运行中,最终在运行内渲染出对应的原生页面,整个环节方便高效。

技术特点

Taro 作为一款放开式跨端跨框架处置方案,在允许开发者一套代码多端运转的同时,也为开发鸿蒙原生运行提供了诸多便利。在掂量多方要素后,我们最终选用了 Taro 作为开发鸿蒙原生运行的技术方案,总的来说,经常使用 Taro 来开发鸿蒙原生运行会有上方几点好处:

允许开发者经常使用 Web 范式来开发鸿蒙原生运行

与鸿蒙原生开发相比,经常使用 Taro 启动开发的最大好处在于 Taro 允许开发者经常使用前端 Web 范式来开发鸿蒙原生运行,基于这一特点,我们 对大局部 CSS 才干启动了适配

允许经常出现的 CSS 样式和规划,允许 flex、伪类和伪元素

允许经常出现的 CSS 定位,相对定位、fixed 定位

允许经常出现的 CSS 选用器和媒体查问

允许经常出现的 CSS 单位,比如 vh、vw 以及计算属性 calc

允许 CSS 变量以及安保区域等预约义变量

在编译流程上,我们 驳回了 Rust 编写的 LightningCSS,极大地优化了 CSS 文件的编译和解析速度

(图片来自 LightningCSS 官方)

在运转时上,我们 参考了 WebKit 阅读器内核的处置流程 ,关于 CSS 规定的婚配和标脏启动了架构上的更新,大幅优化了 CSS 运行和更新的性能。

允许存量 Taro 名目的极速迁徙

将现有业务适配到一个全新的端侧平台,无疑须要投入少量的人力物力。而 Taro 框架的关键好处,正是能够有效处置这种跨端场景下的名目迁徙难题。经过 Taro,我们可以以极低的老本,在保障高度恢复和高性能的前提下,极速地将现有的 Taro 名目迁徙到 鸿蒙系统 上。

渲染性能比肩原生开发

在 Taro 转换鸿蒙原生页面的技术成功上,我们摒弃了之前 经常使用 ArkTS 原生组件递归渲染节点树的方案 , 将更多的运转时逻辑如组件、动效、测算和规划等逻辑下沉到了层 ,极大地优化了页面的渲染性能。

另外,我们关于 Taro 名目中 CSS 样式的处置架构启动了一次性全体的重构和更新,并引入规划引擎Yoga,将页面的测量和规划放在 Taro 侧启动成功,基于这些优化,成功一套高效的渲染义务管线,使得 Taro 开发的鸿蒙页面在性能上足以和鸿蒙 ArkTS 原生页面比肩。

允许虚构列表和节点复用等高阶配置

长列表渲染是运行开发普遍会遇到的场景,在 商品 列表、订单列表、信息列表等须要有限滚动的组件和页面中宽泛存在,这些场景假设不启动不凡的处置,只是单纯对数据启动渲染和更新,在数据量十分大的状况下,或许会引发重大的性能疑问,造成视图在一段期间内不可响运行户操作。

在这个背景下, Taro 在鸿蒙端提供了长列表类型组件(Watelow & List) ,并对长列表类型组件启动了优化,提供了懒加载、预加载和节点复用等配置,有效地处置大数据量下的性能疑问,提高运行的流利度和用户体验。

(图片来自 HarmonyOS 官方)

允许原生混合开发等多种开发形式

Taro 的组件和 A是以小程序作为基准来启动设计的,因此在实践的鸿蒙运行开发环节中,会产生所需的组件和 API 在 Taro 中不存在的状况,由于针对这种状况,Taro 提供了原生混合开发的才干,允许将原生页面或许原生组件混合编译到 Taro 鸿蒙名目中, 允许 Taro 组件和鸿蒙原生组件在页面上的混合经常使用

性能体现

京东鸿蒙原生运行性能数据

经过对 Taro 的屡次优化和打磨,使得京东鸿蒙原生运行取得了优秀的性能体现,最终首页的渲染耗时,相比于之前的 ArkTS 版本,性能优化了;商详的渲染耗时,相比于之前的 ArkTS 版本,性能优化。

值得留意的是商详页性能优化清楚,经过剖析发现商详楼层泛滥,CSS 样式也复杂多样,因此在 ArkTS 版本中,在 CSS 的解析和属性运行阶段占用了过多的期间,在 CAPI 版本启动了CSSOM 模块的架构更新后,带来了清楚的性能优化。

基于 Taro 开发的页面,在华为性能工厂的专业测试下,大局部都以优秀的效果经过了性能验收,充沛证实了 Taro 在鸿蒙端的高性能体现。

总结和未来展望

Taro 目前曾经成为一个全业务域的跨端开发处置方案,成功 Web 类(如小程序、Hybrid)和原生类(、、鸿蒙)的一体化开发,在高性能的鸿蒙适配方案的加持下,业务能极速拓展到新兴的鸿蒙系统中去,可以极大满足业务粗放化开发的需求。

未来方案

后续,Taro 还会继续在性能上启动优化,以更好地适配鸿蒙系统:

将开发者的 JS 业务代码和运行框架层的 JS 代码与主线程的 UI 渲染逻辑分别 ,另起一条Script 线程,执行这些 JS 代码,防止下层业务逻辑梗塞主线程运转,防止页面产生卡顿、丢帧的现象。

成功视图节点拍平 ,将不影响规划的视图节点启动整合,缩小实践绘制上屏的页面组件节点数量,优化页面的渲染性能。

(图片来自 Ret Nave 官方)

成功原生性能级别的灵活更新才干 ,允许开发者在不从新编译和颁布运行的状况下,灵活更新运行中的页面和配置。

总结

京东鸿蒙原生运行是 Taro 打响在鸿蒙端侧适配的第一枪,证实了 Taro 方案适配鸿蒙原生运行的可行性。这标记着 Taro 在多端一致开发上的新打破,象征着 Taro 将为更多的企业和开发者提供优秀的跨端处置方案,使开发者能够以更高的效率开收回适配鸿蒙系统的高性能运行。审核编辑 黄宇

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender