214

React Native 热更新方案

 6 years ago
source link: http://www.cocoachina.com/ios/20171218/21565.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

React Native 热更新方案

6303651513737635.jpg 四门三连· 2017-12-18 阅读数 11022

介绍

笔者这些天一直在写一个比较复杂的React Native联系项目,也将近接近尾声了。之前也写过一个FlyOceanMovies,但是相对来说比较简单吧。所以这次挑了一个很复杂的项目又写了一个。不过本文的目的不是这个项目的总结,之后会单独写一篇文章来做总结。这篇文章是来介绍React Native热更新的。个人博客传送门

大家都知道React Native最大的优点就是能够同时兼容Android、iOS两个平台,不过它还有一个比较明显的有点就是能够热更新。那如何实现RN的热更新呢?

市面上也有比较成熟的热更新服务MicroSoft CodePushReact Native中文网 pushy,不过很多时候公司可能要搭建自己的热更新服务器,毕竟将代码和控制器放到他人服务器上可控性等方面都不是很好。笔者研究总结了以下个比较成熟的方案。

 热更新方案

  • 全量热更新

这个热更新最大的有点就是实现起来比较简单,省时省力。

React Native 热更新方案
  • 增量热更新

实现起来比较复杂,省流量,用户体验会更好

  • 搭建自己的codepush服务器

其实就是在自己服务器上搭建一套codepush系统,这样比较简单也省事。除了服务器地址与微软的不一样,其他的完全一样。

  • 增量热更新(通过算法比较生成补丁)

  1. 服务端使用bsdiff算法将老RN包和新RN包生成一个补丁patch文件,供客户端下载。

  2. 客户端下载patch文件,使用将补丁patch文件和老RN包生成一个新RN包。

React Native 热更新方案

这个算法是通过文本进行比较支持的语言非常多

是c语言写的一个工具,比较的是二进制文件

二者比较图:

React Native 热更新方案

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK