Flutter 渲染原理

1弄贿、Flutter 渲染原理


v2-75f96e1898d47521c91b6de1ac0e4c91_r.jpg

Flutter框架包含F(xiàn)lutter Framework(Dart)茫打、Flutter Engine(C/C++)混萝、Embedber(Android/iOS平臺層)。其中:
Flutter Framework(Dart):實現(xiàn)了一套基礎庫逾冬, 用于處理動畫黍聂、繪圖和手勢躺苦,并且基于繪圖封裝了一套 UI組件庫,然后根據(jù) Material 和Cupertino兩種視覺風格區(qū)分開來产还。這個純 Dart實現(xiàn)的 SDK被封裝為了一個叫作 dart:ui的 Dart庫匹厘。我們在使用 Flutter寫 App的時候,直接導入這個庫即可使用組件等功能脐区。
Flutter Engine(C/C++):包括 Skia引擎愈诚、Dart運行時、文字排版引擎等牛隅。它是 Dart的一個運行時炕柔,它可以以 JIT 或者 AOT的模式運行 Dart代碼。這個運行時還控制著 VSync信號的傳遞媒佣、GPU數(shù)據(jù)的填充等匕累,并且還負責把客戶端的事件傳遞到運行時中的代碼。
渲染流程:GPU的VSync信號同步給到UI線程默伍,UI線程使用Dart來構建抽象的視圖結構(這里是Framework層的工作)欢嘿,繪制好的抽象視圖數(shù)據(jù)結構在GPU線程中進行圖層合成(在Flutter Engine層的工作),然后提供給Skia引擎渲染為GPU數(shù)據(jù)也糊,最后通過OpenGL或者 Vulkan提供給 GPU炼蹦,GPU渲染好傳遞給顯示器顯示。

UI界面繪圖流程


v2-b2a9d17b97899261f5d3efe310a5cc93_1440w.jpg

用戶輸入是驅動視圖更新的信號狸剃,如滑動屏幕等掐隐。然后會觸發(fā)動畫進度更新,框架開始build抽象視圖數(shù)據(jù)钞馁,在之后虑省,視圖會進行布局、繪制指攒、合成(渲染過程的三個步驟)慷妙,最后進行光柵化處理把數(shù)據(jù)生成一個個真正的像素填充數(shù)據(jù)。在Flutter中允悦,構建視圖數(shù)據(jù)結構、布局虑啤、繪制隙弛、合成、與Engine的數(shù)據(jù)同步和通信放到了Framework層狞山,而光柵化則放在了Engine層中全闷。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市萍启,隨后出現(xiàn)的幾起案子总珠,更是在濱河造成了極大的恐慌屏鳍,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件局服,死亡現(xiàn)場離奇詭異钓瞭,居然都是意外死亡,警方通過查閱死者的電腦和手機淫奔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門山涡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人唆迁,你說我怎么就攤上這事鸭丛。” “怎么了唐责?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵鳞溉,是天一觀的道長。 經(jīng)常有香客問我鼠哥,道長熟菲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任肴盏,我火速辦了婚禮科盛,結果婚禮上,老公的妹妹穿的比我還像新娘菜皂。我一直安慰自己贞绵,他們只是感情好,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布恍飘。 她就那樣靜靜地躺著榨崩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪章母。 梳的紋絲不亂的頭發(fā)上母蛛,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機與錄音乳怎,去河邊找鬼彩郊。 笑死,一個胖子當著我的面吹牛蚪缀,可吹牛的內容都是我干的秫逝。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼询枚,長吁一口氣:“原來是場噩夢啊……” “哼违帆!你這毒婦竟也來了?” 一聲冷哼從身側響起金蜀,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤刷后,失蹤者是張志新(化名)和其女友劉穎的畴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尝胆,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡丧裁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了班巩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渣慕。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖抱慌,靈堂內的尸體忽然破棺而出逊桦,到底是詐尸還是另有隱情,我是刑警寧澤抑进,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布强经,位于F島的核電站,受9級特大地震影響寺渗,放射性物質發(fā)生泄漏匿情。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一信殊、第九天 我趴在偏房一處隱蔽的房頂上張望炬称。 院中可真熱鬧,春花似錦涡拘、人聲如沸玲躯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跷车。三九已至,卻和暖如春橱野,著一層夾襖步出監(jiān)牢的瞬間朽缴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工水援, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留密强,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓蜗元,卻偏偏與公主長得像誓斥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子许帐,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內容