Framework:flutter UI 框架魏颓,與flutter系統(tǒng)進(jìn)行交互,比如我們常用的動(dòng)畫(huà)animation潮秘、手勢(shì)Gestures琼开、Painting、Widgets枕荞、Material\Cupertino組件柜候;
Engine:引擎C++, API底層實(shí)現(xiàn)躏精,比如圖形的Skia渣刷、布局、文件
Embedder:嵌入層矗烛,對(duì)應(yīng)平臺(tái)的語(yǔ)言辅柴,為flutter 提供入口,供Android(java),ios(ibc obc++) 輸入法瞭吃,繪制的surface
我們平常寫(xiě)的需求碌嘀,基本都是在用Framework的Material、Cupertino組件歪架,萬(wàn)物皆控件股冗,寫(xiě)好的代碼會(huì)被rendering,layout painter傳送到引擎層和蚪,skia就開(kāi)始干活止状,Android平臺(tái)或者是iOS平臺(tái)用的都是skia烹棉,統(tǒng)一繪制為高度一致的UI布局。
flutter 繪制流程:
App -> flutter框架(dart) -> Skia(C/C++) -> CPU/GPU
原生Android 繪制流程:
App -> Android SDK(java) -> Skia -> CPU/GPU
RN ionic
App -> 其他框架(RN\ IONIC) -> Android SDK(java\webview) -> CPU/GPU
60Hz怯疤,就是1秒鐘刷60次浆洗,一次16.667ms,所以我們?cè)趯?xiě)業(yè)務(wù)的時(shí)候耗時(shí)不應(yīng)該超出16ms集峦,否則就會(huì)出現(xiàn)卡頓伏社。
性能優(yōu)化,避免卡頓參考:https://juejin.cn/post/6844903974752124941