Flutter 应用热更新

Flutter 热更新简介

所谓热更新,指的是当应用代码出现缺陷问题时,不需要重新打包提交App Store即可完成缺陷的修复。众所周知,使用原生技术开发的应用体验虽然好,但开发、上线周期长也常常被诟病,特别是当应用出现线上问题时,不得不重新打包发布,大大的影响了用户体验,而热更新技术就是为有效解决线上缺陷而提出的。

不过,热更新虽然具有很大的优点,但是滥用热修复也会给应用带来不好的体验,并且苹果对于热更新和修复是明令禁止的,所以热更新主要针对的是国内Android市场。目前,Flutter对外开放的SDK是不支持热更新的,但是在Flutter的源码里有一部分预埋的热更新相关的代码,可以通过一些必要的手段在Android端实现动态更新功能。

众所周知,不论是新创建的Flutter项目,还是原生工程以Moudle或者aar的方式集成Flutter,最终Flutter在原生Android端应用中都是以混合的形式存在的。所以,当我们拆开一个Flutter在release模式下编译生成的aar包时,其目录结构下图所示。

在这里插入图片描述
实际开发中,只需要关注assets、jni、libs这三个目录即可,其他都是原生的壳工程产物。

  • jni:该文件目录下存放的是libflutter.so文件,该文件是Flutter引擎层的C++实现,提供skia绘制引擎、Dart和Text纹理绘制等支持。
  • libs:该文件目录下存放的是flutter.jar文件,该文件为Flutter嵌入层的 Java实现,主要为Flutter的原生层提供平台功能支持,比如创建线程。
  • assets:该文件目录主要用于存放Flutter应用层的资源,包括images、font等。

而众观目前所有的Flutter热更新方案中,其基本原理实现都是一样的,即通过修改libapp.so的加载路径,把它替换成开发者自己的libapp_hot.so来实现热更新。我们可以打开io.

©️2020 CSDN 皮肤主题: 成长之路 设计师: Amelia_0503 返回首页
实付9.90元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值