Flutter 热更新功能实现

尽管Flutter官方不支持热更新,但开发者社区已找到在Android端实现动态更新的方法。主要区别在于Flutter APK包含libflutter.so引擎和flutter.jar嵌入层,以及flutter_assets应用资源和代码产物文件。尝试使用常规热更新工具如tinker可能会失败。

Flutter 官方在 GitHub 上声明是暂时不支持热更新的,但是还是有很多能人,通过一些自己的手段,在Android端是能够实现动态更新的功能的。

先看下flutter 的apk 和普通的apk区别

flutter产物apk:

普通apk :

可以发现有很大不用

jni :该目录下存在文件 libflutter.so,该文件为 Flutter Engine (引擎) 层的 C++实现,提供skia(绘制引擎),Dart,Text(纹理绘制)等支持;

libs:该目录下存在文件为 flutter.jar,该文件为 Flutter embedding (嵌入) 层的 Java实现,该层提供给 Flutter 许多Native层平台系统功能的支持,比如创建线程。

assets:该目录下分为两部分:

1. flutter_assets 目录:该目录下存放Flutter 我们应用层的资源,包括images,font等;

2. isolate_snapshot_data,isolate_snapshot_instr,vm_snapshot_data,vm_snapshot_instr 文件:这 4 个文件分别对应 isolate,VM 的数据段和指令段文件。这四个文件就是我们自己的 Flutter 代码的产物了。

所以直接通过tinker等热更新,无法成功

 

 

 

 

 

 

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值