架构图
Flutter的架构主要分成三层:Framework,Engine和Embedder。
框架Framwork
这一层纯dart实现,使用了两种设计风格Material Design和Cupertino(针对iOS)风格。
- Widgets层:一套基础组件库。
- Rendering层:ui布局渲染。
- Animation、Painting、Gestures、Foundation是dart:ui库提供的对接底层动画,手势识别等功能。
引擎Engine
用C++实现的。引擎为框架提供支撑,也是连接框架和系统(Android/iOS)的桥梁。主要包括:Skia、Dart和Text。
- Skia是开源的二维图形库,提供了适用于多种软硬件平台的通用API。
- Dart运行虚拟机
嵌入层Embedder
与各个系统平台相关联,即把Flutter嵌入到各个平台上去,引擎移植到平台的中间层代码 渲染设置,原生插件,打包,线程管理,事件循环交互操作。