首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Flutter
订阅
Weadar
更多收藏集
微信扫码分享
微信
新浪微博
QQ
8篇文章 · 0订阅
Flutter 动态化热更新的思考与实践(八)---- 动态列表优化v2
在之前的一篇文章中Flutter 动态化热更新的思考与实践(六)---- 动态列表滚动优化 介绍了在实现列表动态化时遇到的性能问题,当时也做了一次优化方案,其实最后的结果也不是很理想,最近抽出时间又具体做了分析并优化了新的版本。 1. 问题症结 对于列表场景而言,影响性能的原因…
Flutter 动态化热更新的思考与实践(七)---- 上下文对象树
顾名思义,上下文对象树(AstContext Tree)是以树结构来组织上下文对象(AstContext),在Runtime执行过程中,AstContext 贯穿整个执行过程,其中存储了当前代码作用域中的变量以及各种状态等,使各个代码作用域中的数据和状态相互隔离不受影响,这里的…
Flutter 动态化热更新的思考与实践(六)---- 动态列表滚动优化
很长时间没有更新Flutter动态化的文章了,这部分的开发主要是在公司正常工作之外做的实验性探索,都是利用零散时间一次一次重构和优化。截至目前已完成较为完整的版本,并且已试验性的上线了公司App一小块业务功能,进行小范围内试用。 解析器基本上是个体力活,枚举大部分常用语法和公共…
Flutter 动态化热更新的思考与实践(五)---- 调用AST动态化的代码
1. 问题 2. 解决思路 首先可以从AST的结构上做些修改,通过设计一个AST Node 的结构,来定义一个转换AST后的代码,然后在解析的时候,根据该结构的信息,获取AST完整数据,丢到我们前文中提到的Runtime中执行即可。 classId 标识一份AST动态化代码,算…
Flutter 动态化热更新的思考与实践(四)---- 解析AST之Widget
1. Widget Ast 数据示例 中的数据。对Widget生成的Ast数据的分析,主要包括几个节点类型: 根据这三个主要节点基本就可以描述一个Widget,我们解析的思路就集中在这三种数据节点上,再看看里面都包含了什么东西。 2. 如何解析 我们把解析的步骤分两部分,一部分…
Flutter 动态化热更新的思考与实践(二)----Dart 代码转换AST
我们在上一篇文章《Flutter动态化热更新的思考与实践》中探讨了在Flutter中实现动态化热更新的可行方案,在本篇文章里我们先来探讨该方案的第一阶段:如何将Dart代码转换成AST描述文件。 1. AST 简介 上一篇文章里也提到了AST,但是没有过多的来解释,那么在本篇文…
Flutter 动态化热更新的思考与实践
Flutter 刚出现在大家视野里的时候,首先的反应是否有动态化热更新的支持,不过目前Flutter的动态化热更新只限于调试Debug的阶段,在生产打包时是不支持这一个特性的,这主要与Flutter的编译模式有关。在Debug调试阶段,Flutter是以JIT(即时编译)模式运…
Flutter 动态化热更新的思考与实践(三)---- 解析AST之Runtime
1. 何为Runtime 这里我们定义的Runtime是一个动态运行AST的容器,这要从AST解析方式说起。在开篇文章《Flutter 动态化热更新的思考与实践》提到过我们实现的这个动态化方案同样遵循MVVM思想,将UI和业务解耦。那么对AST的解析就分两部分,一个是对UI类A…