美文网首页
Flutter-runApp

Flutter-runApp

作者: 秋分落叶 | 来源:发表于2019-08-27 09:23 被阅读0次

Flutter 中 runApp 启动入口其实是一个 WidgetsFlutterBinding ,它主要是通过 BindingBase 的子类 GestureBinding 、ServicesBinding 、 SchedulerBinding 、PaintingBinding 、SemanticsBinding 、 RendererBinding 、WidgetsBinding 等,通过 mixins 的组合而成的。

  1. WidgetsFlutterBinding
    WidgetsFlutterBinding混入了不少的其他的Binding

BindingBase 那些单一服务的混入类的基类

GestureBinding framework手势子系统的绑定,处理用户输入事件

ServicesBinding 接受平台的消息将他们转换成二进制消息,用于平台与flutter的通信

SchedulerBinding 调度系统,用于调用Transient callbacks(Window.onBeginFrame的回调)、Persistent callbacks(Window.onDrawFrame的回调)、Post-frame callbacks(在Frame结束时只会被调用一次,调用后会被系统移除,在Persistent callbacks后Window.onDrawFrame回调返回之前执行)

PaintingBinding 绘制库的绑定,主要处理图片缓存

实例:

void main() {
    runApp(FlutterReduxApp());
    //缓存个数 100
    PaintingBinding.instance.imageCache.maximumSize=100;
    //缓存大小 50m
    PaintingBinding.instance.imageCache.maximumSizeBytes= 50 << 20;
}

SemanticsBinding 语义化层与Flutter engine的桥梁,主要是辅助功能的底层支持

RendererBinding 渲染树与Flutter engine的桥梁

WidgetsBinding Widget层与Flutter engine的桥梁

相关文章

网友评论

      本文标题:Flutter-runApp

      本文链接:https://www.haomeiwen.com/subject/wpdsectx.html