
Flutter框架结构图
Flutter Framework
一个纯Dart实现的SDK,实现了一套基础库。
1,底下两层(Foundation,Animation,Painting,Gestures)被合并成dart UI层,对应Flutter中的dart:ui包,它是flutter引擎暴露的底层UI库,提供动画,手势,和绘制能力。
2,Rendering层,是一个抽象的布局层,依赖于Dart UI层,Rendering层会构建一个UI树,当UI树有变化时,会计算出有变化的部分,然后更新UI树,最终将UI树绘制到屏幕上。它是Flutter UI框架最核心的部分,除了确定每个UI元素的位置,大小之外,还要进行坐标变换,绘制(调用dart:ui层)。
3,Widgets 层是Flutter提供的基础组件库。在基础组件库之上,Flutter还提供了Material和Cupertino两种风格的组件库。
Flutter Engine
一个纯C++实现的SDK,其中包括了Skia 引擎,Dart 运行时,文字排版引擎。调用 dart:ui库时,最终会走到Engine层,然后实现真正的绘制。