当前位置:首页 >综合 >腾讯客户端工程师赵裕:跨平台自渲染UI引擎在Web平台的探索之旅​ 端工也能在Web上运行

腾讯客户端工程师赵裕:跨平台自渲染UI引擎在Web平台的探索之旅​ 端工也能在Web上运行

2024-05-15 11:55:28 [百科] 来源:避面尹邢网

腾讯客户端工程师赵裕:跨平台自渲染UI引擎在Web平台的腾讯台自台的探索探索之旅​

原创 精选 作者: 张诚 开发 前端 通过WebAssembly的适配工作,让基于我们框架开发的客户跨平业务不仅能够在移动端运行,在PC端运行,端工也能在Web上运行,程师甚至能让这个图表在一块嵌入式设备运行。赵裕之旅这样,渲染就可以快速部署到各式各样的引擎场景(从一块嵌入式终端设备到各大场景的浏览器)中。

近年来,腾讯台自台的探索基于自渲染的客户跨平跨平台框架成为大前端开发的热点之一。如何基于Web生态的端工WebGL和Wasm,将Mobile/PC平台的程师跨端体验以最小成本、最高性能的赵裕之旅方式移植到Web平台,成为跨平台大前端开发中遇到的渲染主要挑战。

腾讯客户端工程师赵裕:跨平台自渲染UI引擎在Web平台的探索之旅​ 端工也能在Web上运行

在WOT全球技术创新大会2023《大前端最佳实践》专场中,引擎腾讯客户端工程师赵裕带来了《跨平台自渲染UI引擎在Web平台的腾讯台自台的探索探索之旅》的主题分享,全面介绍了跨平台、WebGL、Wasm等前沿技术的落地过程。

腾讯客户端工程师赵裕:跨平台自渲染UI引擎在Web平台的探索之旅​ 端工也能在Web上运行

牛刀小试:从Mobile/PC到Web

腾讯客户端工程师赵裕:跨平台自渲染UI引擎在Web平台的探索之旅​ 端工也能在Web上运行

将运行在PC平台和Mobile平台上的自渲染跨平台UI引擎移植到Web端,是赵裕此次分享的重点内容。赵裕表示,跨端一定不只是瞄准跨Mobile(Android/iOS)、跨PC(Windows/MacOS/Linux),而且还要跨Web,例如腾讯文档,就是一个跨多端的应用,阿里的语雀文档和飞书,也都有Web应用场景。

那么,如何才能更好地支持Web。第一个种思路就是用最原始的Web开发方式,用HTML+CSS+JS对项目进行重写,但从成本角度考虑显然不行。第二种思路就是利用WebAssembly。

虽然使用WebAssembly能够更容易写出高性能的代码,但同样会面临着以下四个挑战:

1)项目文件多,依赖关系相对复杂,通常基于CMake/GN/Bazel组织。

2)每个平台存在一定数量的胶水代码,如Java/ OC / JS / TS。

3)存在对三方库的依赖(.a /.so) ,需要构建对应的Wasm制品。

4)本身的场景与宿主有复杂的交互,不是一个功能单一的模块。

解决挑战的方法是利用Clang的交叉编译。如果编译成WebAssembly,则只需要用cmcmake+emmake工具进行包装之后,再进行编译即可。

赵裕表示,将所有C++编译到另外一个目标平台的二进制文件,归根结底就是一个交叉编译的过程。这个CMake交叉编译文件把我们经常用到的Clang、Clang++工具改成了emc++和emcc去编译。由于C++文件并不能直接转译成WebAssembly,因此借助LLVM的中间形式的字节码,先通过Clang把它转移成中间的表达形式,然后才能把这个中间的表达形式翻译成asm.js。

除此之外,还可以利用Binaryen工具将asm.js翻译成WebAssembly。不过,用WebAssembly编译C++时,因为要有一个中转过程,所以构建耗时比Native平台要慢很多。目前,LLVM组织开发了一个能直接把C++转译成WebAssembly的功能,让编译效率变得更快。

在接下来的时间里,赵裕从Wasm线程的局限性与适配、C++与JavaScript的互操作、渲染与WebGL、图片与文字(基于Skia)四个维度,详细介绍了Web适配和渲染适配的详细过程,分享了工作中的经验。

赵裕认为,从Mobile/PC到Web,一要基于强大的LLVM实现交叉构建;二要在跨平台的设计中,快速适配线程、交互、WebGL等限制;三要解决Web平台限制为后续留下的包大小、性能、扩展性等隐患。

深度优化:从可用到好用

判断跨平台自渲染UI引擎在Web平台是否好用,主要有三个依据:

首先要具备更快的启动时间,尤其是加载+显示第一帧的时间要足够快;其次要具备稳定流畅的帧率;最后CPU/内存的占用率要做到更低。

赵裕表示,从可用到好用,必须从各个维度进行深度优化。在接下来的时间里,赵裕详细介绍了包大小的优化思路。

首先是从Skia到TGFX。Skia是一个2D渲染引擎,底层为OpenGL,并提供了更上层的接口。Skia拥有功能完备、质量稳定、生态成熟三大特点,但也会导致Web平台的包体积过大。

作为一个开源的产品,TGFX是一个动画库的底层组件,它更加专注于硬件渲染能力,并兼容软绘。能够让用户充分利用平台能力精简库增量,充分复用现代硬件的高并发等特性。与Skia相比,TGFX更加安全,环境管理更加便捷,内部团队的沟通协作也更加方便。

两者的不同点在于,Skia用了freetype、ICU、Harfbuzz,TGFX则用了Core Graphics(在Apple平台),这是苹果自己的API,可以用来画文字。

其次,在图片解码方面,如果利用Skia解码一张PNG图片,就要先把PNG库导入,再用C++进行解码,这种方式将会占用包大小。那么,有没有一种能做到相同功能,但是又没那么占用包大小的方式呢?答案是,可以使用Web自带的解码能力进行实现。实际上,在Android/iOS等平台上可以使用类似的方式,复用原生平台的图片编解码能力,裁剪包大小。

最后,在文字渲染方面,往往面临着特殊样式、特殊字符、特殊语言、缩放下的像素级对齐、系统字体与回退兜底和多种编码等挑战,在进行自渲染时,一般可以利用文字渲染的三兄弟:ICU+Harfbuzz+Freetype。

赵裕表示,把一段文字直接渲染成UI,可以利用Freetype+Harfbuzz。其中,Harfbuzz是加载之后计算文字在某一个特定大小下的宽高,把它渲染出来之后,就会知道每一个文字渲染在哪个位置。因此,把每个文字渲染的位置用Harfbuzz计算出来,Freetype就会根据这个字体里面的矢量路径将光栅化变成位图,然后得出渲染结果。

落地展望:从技术到业务

自渲染技术如何更好地推动业务发展,赵裕也分享了自己的一些看法。

赵裕表示,做好自渲染平台之后,之前Hippy想要在Web平台渲染,需要写一个Web Render。但是,有了WebAssembly能力之后,我们可以去对接Hippy底层,把DomTree直接渲染到Web Canvas上。

此外,赵裕还演示了如何在一个嵌入式系统落地这套框架。

通过WebAssembly的适配工作,让基于我们框架开发的业务不仅能够在移动端运行,在PC端运行,也能在Web上运行,甚至能让这个图表在一块嵌入式设备运行。这样,就可以快速部署到各式各样的场景(从一块嵌入式终端设备到各大场景的浏览器)中。

“我们虽然在渲染这块做了一些优化,但是总体来说还有很多Web的能力需要探索和优化,例如动态加载、多线程等。” 演讲最后,赵裕强调,在Web的探索上,正如万里长征,我们只迈出了一小步。

本文整理自腾讯客户端工程师赵裕在WOT2023大会上的主题分享,更多精彩内容及现场PPT,请关注《51CTO技术栈》公众号,发消息【WOT2023PPT】即可直接领取。



责任编辑:张诚 来源: 51CTO 腾讯赵裕

(责任编辑:知识)

    推荐文章
    • 王子新材(002735.SZ)拟收购中电华瑞49%股权 2月25日起复牌

      王子新材(002735.SZ)拟收购中电华瑞49%股权 2月25日起复牌王子新材(002735.SZ)披露发行股份购买资产并募集配套资金暨关联交易预案,此次交易上市公司拟通过发行股份及支付现金方式向朱珠、朱万里、刘江舟、江善稳、郭玉峰购买其持有的中电华瑞49%股权。此次交 ...[详细]
    • 小马智行获准在京开启智能网联重型卡车示范应用

      小马智行获准在京开启智能网联重型卡车示范应用日前,小马智行方面宣布获得北京市智能网联汽车政策先行区智能网联重型卡车示范应用通知书,旗下自动驾驶卡车将在真实场景下携手中国外运提供示范性货运服务,因此小马智行也成为北京市首家落地相关应用场景的企业。 ...[详细]
    • Android渗透测试工具——zANTI(汉化版)

      Android渗透测试工具——zANTI(汉化版)Android渗透测试工具——zANTI(汉化版)作者:斐鸽 2014-11-13 13:15:17安全 数据安全 zANTI是一款Android平台下的渗透测试工具,支持嗅探已连接的网络,支持中间人 ...[详细]
    • 技术和市场之外 华为服务你不知道的那些细节 -

      技术和市场之外 华为服务你不知道的那些细节 -【手机中国新闻】不久前,家住武汉的肖女士碰上了一个不小的麻烦,她的手机掉水里了……电子产品和水,可以说是天生不合,虽然部分手机支持防水,可一旦水进入到了内部,那这部手机八成是没救了。而如今,一个人少了 ...[详细]
    • 1月浙江新设外商投资企业287家 实际使用外资规模居全国第五

      1月浙江新设外商投资企业287家  实际使用外资规模居全国第五记者3月2日从浙江省商务厅获悉,按商务部统计口径,2021年1月浙江新设外商投资企业287家,合同外资26.7亿美元,同比增长4.6%;浙江实际使用外资14亿美元,同比增长1.7%,实际使用外资规模居 ...[详细]
    • 开源世界中的那几个免费数据库

      开源世界中的那几个免费数据库开源世界中的那几个免费数据库作者:zol 2011-11-21 10:09:40开源 很多只有十几到几十个员工的企业老板询问,如果他们不想花费上千甚至万元买一款数据库软件,询问有没有一些免费的数据库软 ...[详细]
    • 2023抖店最新收费标准

      2023抖店最新收费标准抖音小店是19年发展到现在的,说来也将近4年的时间了。在收费标准方面,整体有些变化,快来看看入驻一家小店需要多少资金吧!一、营业执照营业执照其实说起来是不收费的,你只需要拿着相关资料到当地工商局就可以 ...[详细]
    • 阿里云10亿元投入云生态链 同步启动开发大赛

      阿里云10亿元投入云生态链 同步启动开发大赛阿里云10亿元投入云生态链 同步启动开发大赛原创 作者:苏慧 2011-10-24 19:49:14移动开发 10月24日消息,首届中国互联网无线化峰会暨阿里云开发者大会今天在杭州举办。在本次峰会上 ...[详细]
    • 多股披露减持后股价承压 东鹏等两股盘中跌出历史新低

      多股披露减持后股价承压 东鹏等两股盘中跌出历史新低大股东或者高管等减持被看作影响股价的重要参考,因此市场上大部分投资者将此信息作为利空对待。11月8日,于日前披露股东减持计划的东鹏控股(003012)、科翔股份两股股价不出所料地下跌,并于盘中跌出了历 ...[详细]
    • 「音频党」“真”无线还是挂颈?耳机该选哪个!

      「音频党」“真”无线还是挂颈?耳机该选哪个!那么重点来了,请各位爱运动的小伙伴告诉我,你们跑步听歌的时候最爱的是挂颈耳机还是无线耳机?四月不减肥,五月徒伤悲,能把耳朵磨出老茧的废话今天又要来轮回。不瞒在座的各位,这么多年来我沉迷变瘦子的刻苦可谓 ...[详细]
    热点阅读