阿里的大佬已经已经写的很详细了,我就简单写点读后感吧.
1,flutter底层包括三棵树:Widget Tree(相对于配置文件)、Element Tree(相当于iOS的UIView)、RenderObject Tree(相当于iOS的CALayer)
2,渲染采用Skia图形渲染库
3,原生端传入VSync信号进行驱动绘制
4,Flutter 架构采用分层设计,从下到上分为三层,依次为:Embedder、Engine、Framework。
Embedder 是操作系统适配层,实现了渲染 Surface 设置,线程设置,以及平台插件等平台相关特性的适配
Engine 层主要包含 Skia、Dart 和 Text,实现了 Flutter 的渲染引擎、文字排版、事件处理和 Dart 运行时等功能
Framework 层则是一个用 Dart 实现的 UI SDK,包含了动画、图形绘制和手势识别等功能。
UI Thread:Animate -> Build -> Layout -> Compositing Bits -> Paint -> Submit
GPU Thread:Compositing
大前端最终目标猜想:1,业务层语言,api协议统一,大概率采用js,向W3C靠拢,2渲染层采用flutter的方案,采用skia类似的图形渲染库,这样可以做更多的优化,更大的磨平平台间的差异
参考文章:https://blog.csdn.net/alitech2017/article/details/108001348
最近发现fluter动态话方案:MXFlutter,Faire(美团)