美文网首页
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