精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

騰訊客戶端工程師趙裕:跨平臺自渲染UI引擎在Web平臺的探索之旅?

原創 精選
開發 前端
通過WebAssembly的適配工作,讓基于我們框架開發的業務不僅能夠在移動端運行,在PC端運行,也能在Web上運行,甚至能讓這個圖表在一塊嵌入式設備運行。這樣,就可以快速部署到各式各樣的場景(從一塊嵌入式終端設備到各大場景的瀏覽器)中。

近年來,基于自渲染的跨平臺框架成為大前端開發的熱點之一。如何基于Web生態的WebGL和Wasm,將Mobile/PC平臺的跨端體驗以最小成本、最高性能的方式移植到Web平臺,成為跨平臺大前端開發中遇到的主要挑戰。

WOT全球技術創新大會2023《大前端最佳實踐》專場中,騰訊客戶端工程師趙裕帶來了《跨平臺自渲染UI引擎在Web平臺的探索之旅》的主題分享,全面介紹了跨平臺、WebGLWasm等前沿技術的落地過程。

牛刀小試:從Mobile/PCWeb

將運行在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交叉編譯文件把我們經常用到的ClangClang++工具改成了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/PCWeb,一要基于強大的LLVM實現交叉構建;二要在跨平臺的設計中,快速適配線程、交互、WebGL等限制;三要解決Web平臺限制為后續留下的包大小、性能、擴展性等隱患。

深度優化:從可用到好用

判斷跨平臺自渲染UI引擎在Web平臺是否好用,主要有三個依據:

首先要具備更快的啟動時間,尤其是加載+顯示第一幀的時間要足夠快;其次要具備穩定流暢的幀率;最后CPU/內存的占用率要做到更低。

趙裕表示,從可用到好用,必須從各個維度進行深度優化。在接下來的時間里,趙裕詳細介紹了包大小的優化思路。

首先是從SkiaTGFXSkia是一個2D渲染引擎,底層為OpenGL,并提供了更上層的接口。Skia擁有功能完備、質量穩定、生態成熟三大特點,但也會導致Web平臺的包體積過大。

作為一個開源的產品,TGFX是一個動畫庫的底層組件,它更加專注于硬件渲染能力,并兼容軟繪。能夠讓用戶充分利用平臺能力精簡庫增量,充分復用現代硬件的高并發等特性。與Skia相比,TGFX更加安全,環境管理更加便捷,內部團隊的溝通協作也更加方便。

兩者的不同點在于,Skia用了freetypeICUHarfbuzzTGFX則用了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
相關推薦

2023-06-28 10:48:09

平臺框架高性能

2023-03-05 18:36:52

ChatGpt跨平臺ORM

2022-10-14 16:30:17

2011-07-07 13:21:56

UI設計

2016-11-29 13:03:46

微信客戶端跨平臺組件

2021-05-27 05:22:28

前端引擎平臺

2025-04-01 09:31:44

2010-05-06 17:56:15

Visual Stud

2010-02-24 15:04:54

Visual Stud

2009-12-25 15:12:01

WPF平臺

2009-04-22 18:42:13

Vmware虛擬化英特爾

2011-05-12 11:26:00

客戶端虛擬化平臺

2010-08-01 16:20:29

Android

2025-01-26 08:35:01

First UI移動端開發

2009-12-03 14:18:27

Visual Stud

2024-03-14 11:06:37

JavaScript引擎探索

2024-02-22 13:47:40

2017-03-07 12:28:27

Android應用角標

2023-12-13 13:15:13

平臺開發實踐

2012-10-11 17:02:02

IBMdw
點贊
收藏

51CTO技術棧公眾號

中文字幕人妻熟女人妻a片| 国产欧美精品在线观看| 午夜视频在线观看一区二区三区| 亚洲韩国青草视频| 日韩av一区二区三区美女毛片| 玖玖爱免费视频| 国产黄色精品| 91麻豆精东视频| 国模视频一区二区三区| 亚洲免费在线播放视频| 春暖花开成人亚洲区| 免费成人三级| 亚欧色一区w666天堂| 欧美三级电影在线播放| 国产无套丰满白嫩对白| 久久97精品| 精品国产电影一区| 国产亚洲一区在线播放| 国产一级久久久| 爱高潮www亚洲精品| 亚洲乱码国产乱码精品精可以看 | 国产精品二区在线| yy1111111| 98色花堂精品视频在线观看| 国产91精品入口| 九九精品视频在线| 欧美xxxx黑人| 成人午夜毛片| 欧美视频在线视频| 欧美视频观看一区| 亚洲精品国产suv一区| 欧美日韩久久| 亚洲国产精品久久久久| 欧美激情 国产精品| 日本不卡免费播放| 男人的天堂亚洲一区| 在线亚洲欧美视频| 亚洲无在线观看| 欧美人与牲禽动交com| 成人黄色网址在线观看| 欧美激情videos| 黄色免费看视频| 色综合一本到久久亚洲91| 中文字幕国产精品一区二区| 成人黄色片在线| 国产真人真事毛片| 欧美黄色一级视频| 国产视频在线一区二区| 日本999视频| 成人福利在线观看视频| 99久久久久久| 成人激情视频在线播放| 中文字幕观看在线| 国产精品草草| 亚洲香蕉伊综合在人在线视看| 超碰成人在线播放| 2020av在线| 亚洲愉拍自拍另类高清精品| 欧美日韩一区二区视频在线观看| 神马一区二区三区| 麻豆高清免费国产一区| 久久久久久久国产精品视频| 人妻av无码一区二区三区| 粉嫩av国产一区二区三区| 午夜精品福利一区二区三区av | 日本蜜桃在线观看| 成人av在线影院| 精品蜜桃一区二区三区| 一级欧美一级日韩| 母乳一区在线观看| 欧美日韩爱爱视频| 精品一级少妇久久久久久久| 成人情趣视频| 亚洲激情自拍图| 中文字幕av网址| 9999久久久久| 亚洲精品电影网| 2019男人天堂| 欧美18xxxx| 亚洲欧美日韩国产中文专区| 午夜性福利视频| 成人在线视频免费| 欧美一区二区视频网站| 美女喷白浆视频| 草莓视频丝瓜在线观看丝瓜18| 中文幕一区二区三区久久蜜桃| 亚洲一卡二卡三卡四卡无卡网站在线看| 人妻91麻豆一区二区三区| 国内精品伊人久久久久av影院| 日韩美女在线看| 日韩污视频在线观看| 亚洲一区二区日韩| 伊人久久五月天| 成人免费看aa片| 久久人体视频| 中文字幕亚洲图片| 国模无码国产精品视频| 婷婷精品进入| 日韩一级裸体免费视频| 我不卡一区二区| 亚洲婷婷丁香| 国产视频精品va久久久久久| 国产精久久一区二区三区| 亚洲精品二区三区| 久久精品国产一区二区电影| 国产午夜福利一区| 伊人激情综合| 亚洲**2019国产| 五月天婷婷丁香| 在线欧美一区| 国产精品久久久久久影视| 成人免费视频国产免费| 天堂久久一区二区三区| 午夜精品久久久久久久久久久久久 | 国产成一区二区| 婷婷激情五月网| 激情五月播播久久久精品| 久久人人爽爽人人爽人人片av| 亚洲精选一区二区三区| 欧美国产欧美综合| 69堂免费视频| 久久夜夜操妹子| 在线免费一区三区| 爱爱爱爱免费视频| 偷拍精品福利视频导航| 亚洲片av在线| 蜜桃av免费在线观看| 999国产精品| 国产成一区二区| 天堂av网在线| 亚洲国产精品精华液2区45| 欧美成人三级在线视频| 亚洲1区在线| 日韩av中文字幕在线| xxxx日本免费| 无需播放器亚洲| 国产精品女人网站| 黄色视屏网站在线免费观看| 国产精品福利一区二区三区| 午夜啪啪福利视频| 男女视频在线| 91精品国产麻豆| 视频国产一区二区| 最新日韩在线| 欧美一级电影免费在线观看| 精品乱码一区内射人妻无码 | 特级西西444www| 日韩理论在线| 欧美激情在线播放| 精品国产伦一区二区三区| 99re在线精品| 一区二区三区在线观看www| 日本高清成人vr专区| 欧美日韩亚洲91| 久久久久久久高清| 久久久9色精品国产一区二区三区| 国产精品视频精品| 69久久久久| 午夜激情久久久| 国产成人精品一区二区在线小狼| 欧美激情亚洲| 精品亚洲欧美日韩| 偷拍中文亚洲欧美动漫| 国产午夜精品视频免费不卡69堂| 最新中文字幕免费| 亚洲天堂免费在线观看视频| 玩弄中年熟妇正在播放| 亚洲欧美成人vr| 国产精品视频999| 国产传媒在线播放| 精品久久免费看| 亚洲精品久久久久久国| 国产在线视频一区二区| 日本成人三级电影网站| 国内在线视频| 亚洲欧美色图片| 国产一区二区在线视频聊天| 亚洲一区视频在线观看视频| 一区二区三区欧美精品| 91tv官网精品成人亚洲| 国产欧美丝袜| 99re久久| 欧美精品第一页在线播放| 深夜福利视频一区| 欧美丰满高潮xxxx喷水动漫| 人妻少妇一区二区| 麻豆国产精品官网| 国产精品久久久久7777| gogo大尺度成人免费视频| 一区二区三区亚洲| 国产按摩一区二区三区| 中文字幕色av一区二区三区| www日韩在线观看| 一区二区三区四区电影| 久久www免费人成精品| 成人免费一区| 4388成人网| 国产淫片在线观看| 91麻豆精品国产91久久久使用方法 | 日韩欧美中文字幕一区二区三区| 亚洲3p在线观看| 免费人成在线观看播放视频| 欧美三级中文字| 国产精品久久久久久久av| 国产精品一区在线观看乱码| 色撸撸在线观看| 亚洲日本中文| 欧洲精品久久久| 嫩草研究院在线| 91国产视频在线观看| 欧美偷拍一区二区三区| 成人晚上爱看视频| 国产一区二区网| 希岛爱理av一区二区三区| 欧美一二三区| 极品国产人妖chinesets亚洲人妖| 国产欧美久久一区二区| 麻豆91在线| 亚洲天堂成人在线视频| 日日躁夜夜躁白天躁晚上躁91| 欧美久久一区二区| 天天天天天天天干| 日韩欧美有码在线| 日本三级午夜理伦三级三| 亚洲片区在线| 日韩视频在线免费| 你懂的视频在线| 精品偷拍各种wc美女嘘嘘| xxxx国产精品| 欧美一级理论性理论a| 天美传媒免费在线观看| 91麻豆成人久久精品二区三区| 午夜性福利视频| 国产盗摄女厕一区二区三区| 男人天堂手机在线视频| 91精品秘密在线观看| 一区二区三区精品国产| 波多野结衣在线播放一区| 欧美激情论坛| 亚洲视频分类| 欧美日韩免费观看一区| 夜夜春成人影院| 久久99精品久久久久久水蜜桃| 韩国女主播一区二区三区| 国产成人精品久久二区二区91| 日韩av一卡| www.日韩av.com| 欧美成人三区| 久久伊人精品一区二区三区| 人妻丰满熟妇av无码区hd| 精品国精品国产尤物美女| 性一交一乱一伧老太| 日韩欧美在线123| 欧美日韩a v| 在线视频你懂得一区| 成人免费视频国产免费| 欧美色视频一区| 国产又粗又大又黄| 制服丝袜成人动漫| 国产后入清纯学生妹| 日韩精品一区二区在线观看| www.亚洲天堂.com| 日韩av在线导航| 国产私拍精品| 亚洲激情在线观看视频免费| 色视频在线观看免费| 一区二区欧美久久| 羞羞的视频在线观看| 久久久这里只有精品视频| 草草视频在线| 欧美男插女视频| 国模雨婷捆绑高清在线| 77777亚洲午夜久久多人| 国精产品一区| 久久久久亚洲精品成人网小说| 岛国av免费在线观看| 日本成人精品在线| 一区二区三区| 国产一区免费视频| 精品色999| 欧美xxxx黑人又粗又长精品| 无码国模国产在线观看| 九九九九精品| 久久中文字幕二区| 免费不卡av在线| 国产精品久久| 免费大片在线观看| 99精品国产在热久久| 日韩一级免费看| 亚洲高清资源在线观看| 蜜臀av无码一区二区三区| 日韩av在线发布| 日韩av中文字幕第一页| 蜜桃久久av| 青娱乐国产精品视频| 国产综合色在线| 国产在线观看无码免费视频| 成人白浆超碰人人人人| 国产精品美女高潮无套| 亚洲一区二区三区四区五区黄 | 日本精品视频一区二区三区| 91在线视频国产| 亚洲精品自拍第一页| av网址在线播放| 久久影视电视剧免费网站清宫辞电视 | 天天操天天爱天天爽| 成人污污视频在线观看| 中文字幕资源站| 日本精品一区二区三区四区的功能| 国产ts人妖调教重口男| 在线观看国产欧美| 丝袜老师在线| 热re99久久精品国产66热| 高清在线一区二区| 日韩性感在线| 亚洲综合三区| 国产主播中文字幕| eeuss影院一区二区三区 | 亚洲成人精品| 冲田杏梨av在线| 91视频国产观看| 福利一区二区三区四区| 精品久久久久久无| 九七电影韩国女主播在线观看| 日本91av在线播放| 思热99re视热频这里只精品| 国产资源在线免费观看| 黑人精品欧美一区二区蜜桃| 极品久久久久久久| 日本乱人伦一区| 欧美巨乳在线| 欧洲精品在线视频| 欧美1区二区| 人妻久久久一区二区三区| 成人avav在线| 日韩精品一区二区三| 亚洲丁香久久久| 91美女主播在线视频| 成人午夜电影免费在线观看| 中文乱码免费一区二区三区下载| 性欧美在线视频| 亚洲色图欧美在线| 精品人妻伦一二三区久久 | 国产一区二区三区免费观看| 中文字幕91视频| 亚洲成人av一区二区三区| 欧美日韩综合一区二区三区| 欧美另类videos死尸| 超碰免费在线| 91精品久久久久久久久久| av综合网站| 国内少妇毛片视频| 日韩成人精品在线| 国产一二三四五区| 欧美亚洲一区二区在线| 风流少妇一区二区三区91| 亚洲视频第一页| 精品视频一区二区三区四区五区| 999久久久| 人人狠狠综合久久亚洲婷| 亚洲欧美久久久久| 99久久精品费精品国产一区二区| 日本一区二区不卡在线| 亚洲欧洲激情在线| 欧美大片网站| 蜜桃视频在线观看成人| 久久国产日本精品| 国产人与禽zoz0性伦| 日韩午夜av一区| 僵尸再翻生在线观看免费国语| 免费成人av网站| 看片的网站亚洲| 国产一级一片免费播放| 亚洲欧美国产一区二区三区| 成人在线不卡| 国产精品成人久久电影| 久久久久久久免费视频了| 日本a在线观看| 亚洲最新中文字幕| 国产精品日本一区二区三区在线| 无码人妻精品一区二区蜜桃网站| 99精品视频在线观看| 色婷婷久久综合中文久久蜜桃av| 伦伦影院午夜日韩欧美限制| 巨人精品**| 久久撸在线视频| 亚洲成人福利片| 日本蜜桃在线观看| 裸体丰满少妇做受久久99精品| 久久er精品视频| 69xxx免费| 精品国产乱码久久久久久久久| 成人在线观看亚洲| 久久精品二区| 国产在线精品一区二区夜色| 日韩手机在线观看| 久久精品中文字幕电影| 人人香蕉久久| 无码人妻少妇色欲av一区二区| 欧美日韩在线视频首页|