flutter渲染架構(gòu)概述

阿里的大佬已經(jīng)已經(jīng)寫的很詳細(xì)了,我就簡單寫點(diǎn)讀后感吧.
1,flutter底層包括三棵樹:Widget Tree(相對(duì)于配置文件)、Element Tree(相當(dāng)于iOS的UIView)、RenderObject Tree(相當(dāng)于iOS的CALayer)
2,渲染采用Skia圖形渲染庫
3,原生端傳入VSync信號(hào)進(jìn)行驅(qū)動(dòng)繪制
4,Flutter 架構(gòu)采用分層設(shè)計(jì),從下到上分為三層,依次為:Embedder、Engine、Framework。
Embedder 是操作系統(tǒng)適配層,實(shí)現(xiàn)了渲染 Surface 設(shè)置,線程設(shè)置,以及平臺(tái)插件等平臺(tái)相關(guān)特性的適配
Engine 層主要包含 Skia、Dart 和 Text,實(shí)現(xiàn)了 Flutter 的渲染引擎、文字排版、事件處理和 Dart 運(yùn)行時(shí)等功能
Framework 層則是一個(gè)用 Dart 實(shí)現(xiàn)的 UI SDK,包含了動(dòng)畫、圖形繪制和手勢識(shí)別等功能。

UI Thread:Animate -> Build -> Layout -> Compositing Bits -> Paint -> Submit
GPU Thread:Compositing
大前端最終目標(biāo)猜想:1,業(yè)務(wù)層語言,api協(xié)議統(tǒng)一,大概率采用js,向W3C靠攏,2渲染層采用flutter的方案,采用skia類似的圖形渲染庫,這樣可以做更多的優(yōu)化,更大的磨平平臺(tái)間的差異
參考文章:https://blog.csdn.net/alitech2017/article/details/108001348

最近發(fā)現(xiàn)fluter動(dòng)態(tài)話方案:MXFlutter,F(xiàn)aire(美團(tuán))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容