美文网首页
flutter 热重载原理(一)

flutter 热重载原理(一)

作者: 今年27 | 来源:发表于2022-12-13 22:32 被阅读0次

我们都知道OC是由Clang(LVVM的前端)编译的(包括词法分析,语法分析,语义分析),然后将OC代码编译成IR代码,IR然后编译成汇编代码,LVVM架构。这是典型的AOT编译。
Flutter是由Dart语言开的,运行在DartVM(即Dart虚拟机,支持两种方式,一种是AOT,还一种是JIT。热重载就是建立在JIT上的。)
热重载,即DartVM去增量的读取修改的文件,然后及时更新。
从运行效率来说AOT效率更快,因为AOT运行的字节码(二进制),可以cpu直接执行,而JIT执行的代码,属于高级语言,任何一门高级语言再执行前都要做(词法分析,语法分析,语义分析),然后转成语法树,然后转成字节码,相当于同声翻译。
flutter在开发阶段支持热重载,发布阶段不支持热重载。
那么flutter是如何热重载的呢。
流程大概是Dart代码->flutter_tools热重载平台->DartVM热重载
新创建一个flutter_hotreload工程,运行,
用Android studio打开/opt/flutter/packages/flutter_tools工程,点击Add Configurations


flutter_tools

然后点击+号


点击+
选择Dart Command Line App
选择Dart Command Line App
可以看到这个界面
Dart Command Line App
配置一下
配置
点击Apply,点击OK,然后点击运行按钮,直到console出现如下图所示
运行成功
证明我们的flutter_tools与flutter_hotreload挂载成功

而原项目则会显示失败


原项目

实际上原项目的热重载也是基于flutter_tools,既然已经被手动挂载了,原项目的挂载也自然就失效了。

我们在原项目修改一下代码,然后在flutter_tools 的console中输入r,也会刷新界面,接下来就是研究热重载的底层原理。

注意:如果报dartsdk找不到的错误可以进入preference界面


preference

修改Flutter SDK path为自己的flutter sdk地址,然后点击Apply,这样Dart的地址会自动挂在上。


Dart地址

相关文章

  • flutter 热重载原理(一)

    我们都知道OC是由Clang(LVVM的前端)编译的(包括词法分析,语法分析,语义分析),然后将OC代码编译成IR...

  • flutter 热重载

    flutter 热重载 官方文档 文章来源 Flutter的热重载(hot reload)功能可以帮助您在无需重新...

  • flutter热重载原理(二)

    紧接上回,在main函数打个断点,点击Debug按钮 此时我们断在main函数处 这个args就是个列表,列表里有...

  • flutter热重载原理(四)

    上节课我们说到dart虚拟机发送网络请求给flutter的engine,那么我们的dart虚拟机是什么时候启动的呢...

  • flutter热重载原理(三)

    上一篇文章我们最终走到了键盘监听即processTerminalInput回调里 然后在_commonTermin...

  • Flutter列表ListView搭建

    1. 热重载 1.1 什么是热重载 Flutter热重载:在我们调试布局的时候,更改代码,模拟器上可以立即看到代码...

  • Flutter热重载

    工作原理 热重载是指,在不中断 App 正常运行的情况下,动态注入修改后的代码片段。而这一切的背后,离不开 Flu...

  • 热重载原理与混合工程自动化

    热重载工具的启动流程 研究热重载的价值:更方便对产品进行热更新,Dart代码编写完成Flutter.framewo...

  • he mDNS query for an attached iO

    Flutter上热重载报错 解决办法:关闭手机热点

  • Flutter知识点一

    1.Flutter module支持hot reload (热重载)进入到flutter module目录下 执行...

网友评论

      本文标题:flutter 热重载原理(一)

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