Flutter 热更新功能实现
Flutter 官方在 GitHub 上声明是暂时不支持热更新的,但是还是有很多能人,通过一些自己的手段,在Android端是能够实现动态更新的功能的。
先看下flutter 的apk 和普通的apk区别
flutter产物apk:
![](https://img.haomeiwen.com/i10439333/f31913db02b5035a.png)
普通apk :
![](https://img.haomeiwen.com/i10439333/086cd9f1955976df.png)
可以发现有很大不用
jni :该目录下存在文件 libflutter.so,该文件为 Flutter Engine (引擎) 层的 C++实现,提供skia(绘制引擎),Dart,Text(纹理绘制)等支持;
libs:该目录下存在文件为 flutter.jar,该文件为 Flutter embedding (嵌入) 层的 Java实现,该层提供给 Flutter 许多Native层平台系统功能的支持,比如创建线程。
assets:该目录下分为两部分:
flutter_assets 目录:该目录下存放Flutter 我们应用层的资源,包括images,font等;
isolate_snapshot_data,isolate_snapshot_instr,vm_snapshot_data,vm_snapshot_instr 文件:这 4 个文件分别对应 isolate,VM 的数据段和指令段文件。这四个文件就是我们自己的 Flutter 代码的产物了。
所以直接通过tinker等热更新,无法成功
网友评论