1、binding初始化(ensureInitialized)
2、绑定根节点(scheduleAttachRootWidget)
3、绘制热身帧(scheduleWarmUpFrame)
一:冷启动(从零开始启动,花费时间长,重新编译,相当于第一次启动一个APP)
二:热重载(主要是执行build方法,主要就是基于JIT实现,setState的效果,类似r)
三:热重启(重新运行整个app,是重新运行,而不是第一次运行,类似于R)
Flutter 启动流程
Flutter启动流程源码分析
Flutter runApp -- WidgetsFlutterBinding
有时候我们会在发现有的app 在在运行应用程序之前先与 Flutter Engine 进行通信,所以要先将WidgetsFlutterBinding.ensureInitialized()提前。