| 版权声明:本文为博主原创文章,未经博主允许不得转载。
一、简介
热更新技术是ReactNative框架的一大特色。简单的说,热更新技术就是在无需用户重新下载APP SDK的情况下,更新已安装的APP除Native之外的功能,并且绝大部分情况是在用户不知道的状态下更新成功。最常见的使用场景就是一些电商类的APP在活动日替换符合活动日主题的页面,新增功能(不涉及Native功能)等等。也常用于解决APP现存的一些bug,不必频繁的发布新版本。热更新技术也是ReactNative框架备受关注的原因之一。本篇博客只为大家讲解一下Android端的热更新实现,iOS平台有着它独有的特殊性,暂时不讲。
二、思路分析
首先抛出热更新的实现思路:用户每次打开APP客户端,在APP启动的过程中请求服务器获取最新bundle版本号,同时从本地获取当前已安装APP的bundle版本号,将两者进行对比,如若一致,则无需更新继续执行其他逻辑;如果不一致,从服务器获取当前最新版本的bundle包下载到本地。解压缩最新版本的bundle包(服务器端存放的bundle包一般均为压缩文件)。如果采用全量更新方法,解压缩之后的bundle文件可直接使用;如果使用的是差量更新方法,解压缩之后还需要与当前本地使用的bundle包进行合并,合并成功之后方可使用。这里还有一个隐藏的技术点:修改ReactNative默认读取加载bundle包的路径,将之改成你自定义的bundle包路径。也就是你解压新bundle包的路径(全量更新方法)或你合并bundle包的路径(差量更新方法)。最后是查看APP的更新效果,如果是冷加