简述Flutter 的热重载

在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。Flutter采用现代响应式框架构建,其中心思想是使用组件来构建应用的UI。当组件的状态发生改变时,组件会重构它的描述,Flutter会对比之前的描述,以确定底层渲染树从当前状态转换到下一个状态所需要的最小更改。

其中热重载(Hot Reload)就是他的一个显著优点,利用Android Studio直接一个ctrl+s就可以保存并重载,模拟器立马就可以看见效果,相比原生冗长的编译过程强很多;

Flutter的热重载是基于JIT编译模式的代码增量同步。由于JIT属于动态编译,能够将Dart代码编译成生成中间代码,让Dart VM在运行时解释执行,因此可以通过动态更新中间代码实现增量同步。

热重载的流程可以分为5步,包括:扫描工程改动、增量编译、推送更新、代码合并、Widget重建。Flutter在接收到代码变更后,并不会让App重新启动执行,而只会触发Widget树的重新绘制,因此可以保持改动前的状态,大大缩短了从代码修改到看到修改产生的变化之间所需要的时间。

另一方面,由于涉及到状态的保存与恢复,涉及状态兼容与状态初始化的场景,热重载是无法支持的,如改动前后Widget状态无法兼容、全局变量与静态属性的更改、main方法里的更改、initState方法里的更改、枚举和泛型的更改等。可以发现,热重载提高了调试UI的效率,非常适合写界面样式这样需要反复查看修改效果的场景。但由于其状态保存的机制所限,热重载本身也有一些无法支持的边界。

(0)

相关推荐

  • Flutter中文网

    极速构建漂亮的原生应用 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面. Flutter可以与现有的代码一起工作.在全世界,Flutter正在被越来越多 ...

  • 半小时带你入门 Flutter

    前端技术优选 昨天 以下文章来源于全栈前端精选 ,作者Nealyang 由于微信外链限制,推荐阅读等链接无法点击,可点击阅读原文跳转至原文,查看外链. 国庆后面两天在家学习整理了一波flutter,基 ...

  • Flutter 学习

    一.认识Fluter 几乎完全还原手机app,相当于原生app. 二.环境搭建(Windows) Windows 7以上64位系统,磁盘空间大于3个G,因为要安装模拟虚拟机 1.java环境的安装,下 ...

  • 通过Dapr实现一个简单的基于.net的微服务电商系统(十七)——服务保护之动态配置与热重载

    曾宇平 dotNET跨平台 今天 在上一篇文章里,我们通过注入sentinel component到apigateway实现了对下游服务的保护,不过受限于目前变更component需要人工的重新注入配 ...

  • 【专业讲堂】简述碳纤维预浸料的热压罐工艺

    传统高压釜一直是制造碳纤维预浸料复合材料的常用设备,并且在航空航天工业中得到了广泛的应用.Out Of Autoclave(OOA)非热压罐工艺作为一种替代工艺已经存在了一段时间,但其缺点是无法提供与 ...

  • 放五指血,除五脏热,中医就是这么神奇,建...

    放五指血,除五脏热,中医就是这么神奇,建议收藏~~~ 1.除肺热--放血--大拇指 2.除肠热--放血--食指 3.除心热--放血--中指 4.除肝热--放血--无名指 5.除虚热--放血--小拇指 ...

  • 脑动脉硬化,半身麻!这张方子,清热、化痰、活血,用得对症

    (本文仅供学习.参考,不能替代医嘱和处方.文中所述配伍.方剂,必须在中医师当面辨证指导下来借鉴.应用,切勿盲目尝试!) 本文理论依据:<中医内科学>.<中医病因病机学> 你好, ...

  • 少腹痛找红藤,热利下重白头翁,小便热痛专...

    少腹痛找红藤,热利下重白头翁,小便热痛专方用! 主方:柴胡12g.枳壳15g.白芍60g.生甘草15g.红藤30g.白头翁50g.黄柏15g.苍术10g .生薏米50g.怀牛膝30g.乌药15g.当归 ...

  • 神医扁鹊唯一流传千年的妙方,解暑祛湿,清热防病,建议收藏

    很快就要进入三伏天,一天到晚闷热将会是常态.三伏天是一年中温度最高且非常潮湿,闷热的时间,这个时间段空气潮湿度非常高,稍有不慎,就会沾染湿气. 养生的最高境界是预防,而不是等病症出现后再去治疗,那样就 ...

  • “宁可要没出息的儿子,也不要有能力的女儿”,老人的话引起热议

    如今很多人都已经意识到生男孩的压力有多大,对于普通家庭来说,他们能供孩子读上大学就已经不容易了,但养孩子其实是个无底洞,即便子女已经长大成人,需要家长管的地方依然非常多. 于是越来越多的人觉得还不如生 ...

  • RosemirrorHA和浪潮GS不支持热备

    Roseha设置oracle热备还有成熟的案例,也有各种问题的解决方案,针对用的比较少的浪潮GS就无语,无计可施,由于主备的话需要同时同步两台电脑的数据,但是浪潮GS 的针对两台服务器居然有两台服务器 ...

  • 天热了,8种花要休眠,要少浇水

    进入五月,各地的气温嗖得一下升上去了,有些中部和南部地区,都达到了30度甚至35度,简直太热了!这么高的温度下,很多花受不了,进入休眠状态,这个时候要控制浇水,否则很容易烂根黑腐. 蟹爪兰 蟹爪兰喜欢 ...