美文网首页
ReactNative热更新思路

ReactNative热更新思路

作者: 你还真是学不乖丶 | 来源:发表于2020-02-05 22:56 被阅读0次

一、简介

热更新技术是ReactNative框架的一大特色。简单的说,热更新技术就是在无需用户重新下载APP SDK的情况下,更新已安装的APP除Native之外的功能,并且绝大部分情况是在用户不知道的状态下更新成功。最常见的使用场景就是一些电商类的APP在活动日替换符合活动日主题的页面,新增功能(不涉及Native功能)等等。也常用于解决APP现存的一些bug,不必频繁的发布新版本。热更新技术也是ReactNative框架备受关注的原因之一。

热更新的技术限制:只能更新js代码,图片等静态资源。原生代码,原生配置都不能(其实能通过jspatch之类的技术能实现,但苹果现在会扫描代码,碰到jspatch会打回)
热更新的政策限制:明面上,苹果,谷歌都不允许热更新,所以提交AppStore和play store审核的时候都不能使用热更新,甚至不能出现检查版本之类的字眼。审核通过后可以开启热更新。但是另一方面,所有的大厂都在明目张胆地进行热更新(微信的小程序不是热更是什么?),所以……总的来说都是睁一只眼闭一只眼,只要不太过分玩换皮,热更新是官方不欢迎但也不拒绝的存在。

二、热更新的大致流程

1c86e3a72dfa5b8ef502f0014d12f385_68795-c035e2064202c45f.png

首先抛出热更新的实现思路:用户每次打开APP客户端,在APP启动的过程中请求服务器获取最新bundle版本号,同时从本地获取当前已安装APP的bundle版本号,将两者进行对比,如若一致,则无需更新继续执行其他逻辑;如果不一致,从服务器获取当前最新版本的bundle包下载到本地。解压缩最新版本的bundle包(服务器端存放的bundle包一般均为压缩文件)。如果采用全量更新方法,解压缩之后的bundle文件可直接使用;如果使用的是差量更新方法,解压缩之后还需要与当前本地使用的bundle包进行合并,合并成功之后方可使用。这里还有一个隐藏的技术点:修改ReactNative默认读取加载bundle包的路径,将之改成你自定义的bundle包路径。也就是你解压新bundle包的路径(全量更新方法)或你合并bundle包的路径(差量更新方法)。最后是查看APP的更新效果,如果是冷加载,必须是在APP被彻底杀死,重新启动之后才能看到;如果是热加载,调用ReactNative重新加载bundle方法。

三、思路节点分析(冷加载,Android)

1.创建服务器
2.Android平台封装ReactNative的Native Module技术。包含:

当前bundle版本提取;
获取服务器端bundle版本号;
文件或者目录的创建;
bundle文件下载;
bundle文件解压缩;
bundle文件与差量包的合并;
文件的删除等等。

四、技术节点分析

  • JAVA IO流操作;

  • Android的BuildConfig操作;(参考URL:http://blog.csdn.net/aotian16/article/details/51776051

  • 文件操作:解压缩,取差量,合并;

  • RN手动打包;

  • RN打包的文件中包含:RN源码,第三方库,业务逻辑代码;

  • RN的运行机制;

  • 修改ReactNative读取bundle文件的路径;

相关文章

  • ReactNative热更新思路

    一、简介 热更新技术是ReactNative框架的一大特色。简单的说,热更新技术就是在无需用户重新下载APP SD...

  • code-push 更新失败回滚处理

    ReactNative code-push 热更新失败回滚处理 ReactNative code-push 热更新...

  • ReactNative 增量热更新思路

    增量热更新 ReactNative 增量更新 ReactNative 增量更新的内容包含 JS 和图片,在每次应用...

  • ReactNative热更新

    方案一: react-native-update1.准备工作首先你应该有一个基于React Native开发的应用...

  • ReactNative热更新

    第一步:在有node_modules相应的文件上,执行指令:$ npm install -g react-nati...

  • ReactNative热更新

    18年金融监管严格,iOS无法上包,做了一款支持热更新的App,线上运行稳定,现对抗下记忆曲线,回忆之前是怎么完成...

  • RN热更新原理

    热更新 ReactNative告别CodePush,自建热更新版本升级环境 微软的CodePush热更新非常难用大...

  • ReactNative iOS源码解析

    摘自 折腾范儿の味精 博文。 ReactNative 概要 ReactNative,动态,跨平台,热更新,这几个词...

  • ReactNative CodePush热更新集成(OC+RN)

    ReactNative 的热更新主流的有ReactNative中文网的pushy和微软的CodePush,经过对比...

  • ReactNative 热更新-CodePush

    可以先看这两个帖子跟着做一下相关配置,http://www.jianshu.com/p/c979024dc62ch...

网友评论

      本文标题:ReactNative热更新思路

      本文链接:https://www.haomeiwen.com/subject/zucexhtx.html