热重载原理

Catalogue   

在开发项目中,我们直接点击Hot Reload或Hot Restart按钮可以方便的进行更新,那Flutter是如何实现的呢?

  • 首次编译:第一次启动会生成全量app.dill文件;
  • 增量编译:对修改的文件编译生成app.dill.incremental.dill增量文件;
  • 更新文件:将增量产物推送到设备中;
  • UI更新:DartVM收到增量文件后进行合并,并通知Flutter引擎更新UI
  • 整个过程并没有让App重启,从而达到高效开发调试效果

参考