CN114115969A - 一种基于React Native的热更新方法及系统 - Google Patents
一种基于React Native的热更新方法及系统 Download PDFInfo
- Publication number
- CN114115969A CN114115969A CN202111464505.XA CN202111464505A CN114115969A CN 114115969 A CN114115969 A CN 114115969A CN 202111464505 A CN202111464505 A CN 202111464505A CN 114115969 A CN114115969 A CN 114115969A
- Authority
- CN
- China
- Prior art keywords
- resource file
- hot
- file
- bundle resource
- update
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 238000011161 development Methods 0.000 abstract description 5
- 238000012423 maintenance Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及计算机网络技术领域,更具体的说,涉及一种基于React Native的热更新方法及系统。本发明提供的基于React Native的热更新方法,包括:服务端热更新加载步骤,添加应用程序版本信息作为基线版本;根据基线版本配置基线包;根据基线版本配置差量包,配置热更新策略规则,上传更新的bundle资源文件;将基线包与差量包的bundle资源文件进行对比,生成差量补丁文件;客户端热更新加载步骤,加载本地bundle资源文件;获取差量补丁文件;对本地bundle资源文件和差量补丁文件进行合并,作为更新的bundle资源文件离线包;加载更新的bundle资源文件离线包。本发明在用户无感知情况下,对应用程序进行分类热更新,不依赖环境和硬件,操作简易化,开发维护成本低。
Description
技术领域
本发明涉及计算机网络技术领域,更具体的说,涉及一种基于React Native的热更新方法及系统。
背景技术
热更新是一种APP(应用程序)软件开发者常用的更新方式。简单来说,就是在用户通下载安装APP之后,打开APP时遇到的即时更新。
React Native是一个混合移动应用开发框架,是一个基于Web的交互界面的JavaScript库,能够调用APP底层框架。
目前,比较成熟的热更新技术是通过微软搭建好的CodePush服务实现ReactNative应用的热更新。用户通过CodePush创建和维护热更新应用。
服务端使用CodePush服务,配置APP信息。安装App Center CLI,用于服务端信息管理。App Center CLI是应用中心命令行界面(CLI),是用于从命令行运行App Center服务的统一工具,用来管理CodePush功能的命令工具。需要用到App Center CLI中的命令来创建应用和部署热更新服务,热更新服务部署成功之后生成记下部署码,之后在客户端里面配置部署码。
客户端方面安装套件react-native-code-push,配置部署码,获取远程服务端的热更新包。react-native-code-push是一微软开发维护的个开源插件,用于React Native客户端集成,客户端通过该插件实现下载热更包。
配置完服务端和客户端之后,使用release-reactApp Center CLI中的推送命令,将JavaScript文件、资源文件等更新发布到CodePush服务器。
上述微软推出的CodePush热更新服务存在以下问题:
1)依据用户的应用被下载次数进行收费的,会造成热更新成本的提升;
2)通过脚本命令执行热更新,操作困难,学习成本比较高;
3)React Native资源放置在第三方服务上,资源和代码安全性没有保障。
基于以上缺点,目前亟需一种不同于微软的CodePush服务的基于React Native的热更新方法。
发明内容
本发明的目的是提供一种基于React Native的热更新方法及系统,解决现有技术的React Native热更新方法形式单一、操作困难、成本较高的问题。
为了实现上述目的,本发明提供了一种基于React Native的热更新方法,包括以下步骤:
服务端热更新加载步骤,添加应用程序版本信息作为基线版本;根据基线版本配置基线包,提交原生bundle资源文件;根据基线版本配置差量包,配置热更新策略规则,根据服务端热更新策略规则上传更新的bundle资源文件;将基线包与差量包的bundle资源文件进行对比,生成差量补丁文件;
客户端热更新加载步骤,加载本地bundle资源文件;通过API接口获取差量补丁文件;对本地bundle资源文件和差量补丁文件进行合并,存储到应用缓存目录,作为更新的bundle资源文件离线包;根据客户端热更新策略规则加载更新的bundle资源文件离线包。
在一实施例中,所述服务端,新建应用程序,指定应用程序的应用名、包名和所属平台。
在一实施例中,所述应用程序版本信息包括应用程序的应用名、包名、版本号和build号。
在一实施例中,所述服务端热更新策略规则包括:
配置自定义字段信息作为灰度规则,选取部分用户的客户端热更新,所述自定义字段信息包括设备号或者版本号等。
在一实施例中,所述服务端热更新策略规则包括:
立即更新,立即上传更新的bundle资源文件;以及
选择下次更新,下次启动再上传更新的bundle资源文件。
在一实施例中,所述服务端将差量补丁文件压缩后放至数据库供客户端获取。
在一实施例中,所述客户端,在后台使用异步线程获取差量补丁文件。
在一实施例中,所述客户端,通过google-diff-match-patch算法将差量补丁文件和本地bundle资源文件进行合并。
在一实施例中,所述客户端,上传自身的自定义字段信息至服务端。
在一实施例中,所述客户端热更新策略规则包括:
立即加载更新的bundle资源文件离线包,刷新当前页面;以及
下次启动再加载更新的bundle资源文件离线包。
为了实现上述目的,本发明提供了一种基于React Native的热更新系统,包括服务端和客户端:
所述服务端,添加应用程序版本信息作为基线版本;根据基线版本配置基线包,提交原生bundle资源文件;根据基线版本配置差量包,配置热更新策略规则,根据服务端热更新策略规则上传更新的bundle资源文件;将基线包与差量包的bundle资源文件进行对比,生成差量补丁文件;
所述客户端,加载本地bundle资源文件;通过API接口获取差量补丁文件;对本地bundle资源文件和差量补丁文件进行合并,存储到应用缓存目录,作为更新的bundle资源文件离线包;根据客户端热更新策略规则加载更新的bundle资源文件离线包。
在一实施例中,所述服务端,新建应用程序,指定应用程序的应用名、包名和所属平台;
所述应用程序版本信息包括应用程序的应用名、包名、版本号和build号。
在一实施例中,所述服务端热更新策略规则包括:
立即更新,立即上传更新的bundle资源文件;以及
选择下次更新,下次启动再上传更新的bundle资源文件;
所述客户端热更新策略规则包括:
立即加载更新的bundle资源文件离线包,刷新当前页面;以及
下次启动再加载更新的bundle资源文件离线包。
在一实施例中,所述客户端,在后台使用异步线程获取差量补丁文件。
本发明提供的一种基于React Native的热更新方法及系统,在用户无感知情况下,通过版本信息与基线包的对应关系,对应用程序进行分类热更新,不依赖环境和硬件,操作简易化,开发维护成本低。
附图说明
本发明上述的以及其他的特征、性质和优势将通过下面结合附图和实施例的描述而变的更加明显,在附图中相同的附图标记始终表示相同的特征,其中:
图1揭示了根据本发明一实施例的基于React Native的热更新方法流程图;
图2揭示了根据本发明一实施例的服务端热更新加载流程图;
图3揭示了根据本发明一实施例的客户端热更新加载流程图;
图4揭示了根据本发明一实施例的基于React Native的热更新策略示意图;
图5揭示了根据本发明一实施例的基于React Native的热更新系统原理框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释发明,并不用于限定发明。
图1揭示了根据本发明一实施例的基于React Native的热更新方法流程图,如图1所示,本发明提出的基于React Native的热更新方法,包括以下步骤:
步骤S1、服务端热更新加载步骤;
步骤S2、客户端热更新加载步骤。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
图2揭示了根据本发明一实施例的服务端热更新加载流程图,如图2所示,本发明提出的服务端热更新加载步骤,用于服务端,具体包括以下步骤:
步骤S11、新建APP应用程序,指定应用程序的应用名、包名和所属平台;
新建安卓系统或iOS系统的APP应用程序,APP应用程序只需要创建一次,不需要创建多次,对已存在的APP应用程序可以省略该步骤。
步骤S12、添加APP应用程序版本信息作为基线版本;
所述应用程序版本信息包括应用程序的应用名、包名、版本号和build号。
步骤S13、根据基线版本配置基线包,提交原生bundle资源文件;
添加步骤S12的版本号配置基线包。
bundle是Unix/linux系统中的一种可执行文件。用于Android的Activity之间传递数据的类。
步骤S14、根据基线版本配置差量包,配置热更新策略规则,根据服务端热更新策略规则上传更新的bundle资源文件;
热更新策略规则包括服务端热更新策略规则。
所述服务端热更新策略规则包括:
立即更新,立即上传更新的bundle资源文件;以及
选择下次更新,下次启动再上传更新的bundle资源文件。
步骤S14配置差量包并提交更新的bunlde资源文件,是提交了步骤S13基线包基础上进行热更新的差量包,这实现了对含有不同基线包新APP进行区分更新的功能。
步骤S15、将基线包与差量包的bundle资源文件进行对比,生成差量补丁文件;
基线包与差量包对比,生成补丁差量文件,这样的好处在于,如果用户下载整体差量包,会花费更多的时间与网络流量,而将基线包与差量包做对比,只获取差量包对于基线包的功能增量补丁文件,可以让用户更快的下载到差量包,节省网络流量与下载时间。
步骤S16、将差量补丁文件压缩后放至数据库供客户端获取。
在本实施例中,差量补丁文件压缩格式为zip文件格式。对补丁文件做zip压缩,使用户下载差量包的体积进一步缩小,从而做到整个热更新功能占用的网络资源达到最小。
在本实施例中,服务端为hmas控台。
相比与现有技术的CodePush服务,本发明提出的服务端热更新加载步骤,具体具有以下有益效果:
1)CodePush服务需要依托于命令行和桌面工具来创建应用和发布热更新,而本发明的hmas控台服务只需要打开网页登录授权账号就可以随时发布热更新,不依赖环境和硬件,在操作上简易化;
2)本发明的hmas控台服务支持灰度发布,本发明的hmas控台服务配置设备号或者版本号等自定义字段条件作为灰度规则,可以实现部分用户热更新,在hmas控台热更新包发布完成之后,按照一定灰度规则选取部分用户先行体验新版本的应用,自定义字段信息通过步骤S22请求hmas API时上传APP版本号、手机设备号等信息;
3)hmas控台可以配置不同的热更新策略,发布者可以根据需求决定立即发布还是用户下次启动发布。
4)CodePush热更新服务根据用户下载次数收费,对于较大用户量的APP提高了维护开发成本,而本发明的hmas控台服务对于用户下载没有成本。
图3揭示了根据本发明一实施例的客户端热更新加载流程图,如图3所示,本发明提出的客户端热更新加载步骤,用于客户端,具体包括以下步骤:
步骤S21、加载本地bundle资源文件;
步骤S22、通过API接口获取差量补丁文件;
更进一步的,在用户无感知情况下获取差量补丁文件。所述客户端,在后台使用异步线程获取差量补丁文件。在服务请求上做到无感知,不占用主线程影响用户使用。
步骤S23、下载并解压差量补丁文件;
步骤S24、对本地bundle资源文件和差量补丁文件进行合并,存储到应用缓存目录,作为更新的bundle资源文件离线包;
更进一步的,所述客户端,通过google-diff-match-patch算法将差量补丁文件和本地bundle资源文件进行合并。
google-diff-match-patch是一个集多种语言与于一体的开源算法,可以对文本文件进行比较、匹配和生成补丁操作。
步骤S25、根据客户端热更新策略规则加载更新的bundle资源文件离线包。
热更新策略规则包括客户端热更新策略规则。
所述客户端热更新策略规则包括:
立即加载更新的bundle资源文件离线包,刷新当前页面;以及
下次启动再加载更新的bundle资源文件离线包。
更进一步的,在用户无感知情况下进行热更新。如果选择下次更新,用户在当前使用时不会立即刷新页面,在用户下次启动时再加载缓存本地的更新的bundle资源文件离线包。
在本实施例中,客户端为RNWrapper组件。
客户端热更新加载步骤的各个流程都封装在RNWrapper组件中,由其实现客户端热更新,RNWrapper组件和微软的react-native-code-push组件的实现机制有以下不同:
1)面向语言不一样,RNWrapper组件直接面向iOS/安卓开发,直接在iOS/安卓客户端实现热更新,微软的react-native-code-push热更新套件面向react-native开发,对iOS/安卓底层开发做了上层RN封装,在RN端实现热更新;
2)接入方式不一样,微软的react-native-code-push热更新套件,使用npm安装组件,RNWrapper组件在原生Native端单独依赖。
相比与现有技术,本发明提出的客户端热更新加载步骤,具体具有以下有益效果:
1)微软推出的热更新套件react-native-code-push,配套CodePush服务,主要是在React Native端集成实现热更新,本发明在原生Native端实现热更新,实现机制不一样;
2)热更新套件react-native-code-push,根据CodePush服务生成的部署码来对应应用和实现热更新,本发明的客户端根据hmas控台配置的应用名、包名、版本号和build号等来关联应用和实现热更新,可以根据hmas配置的灰度规则自定义热更新,更加灵活。
下面以客户端应用A为例,说明本发明提出的基于React Native的热更新方法。
hmas控台配置,服务端热更新加载步骤:
如果应用A是一个新应用,则进入步骤S11、新建APP应用程序,指定应用名、包名和所属平台;
步骤S12、版本管理,添加版本号、build号等信息;
步骤S13、根据应用版本,配置对应的基线包版本号和build号,上传原生bundle资源文件,此bundle文件和步骤S2中的本地离线bundle包保持一致;
步骤S14、基于APP基线版本配置热更新差量包,配置差量包对应的版本号和build号,选择立即更新,上传更新的bundle资源文件;
步骤S15、将步骤S14的差量包与步骤S13的基线包进行对比,生成差量补丁文件;
步骤S16、将差量补丁文件压缩放至数据库,供客户端获取。
客户端组件RNWrapper实现热更新,客户端热更新加载步骤:
步骤S21、显示加载的本地离线bundle包资源文件实现的基础功能页面;
步骤S22、使用异步线程在用户无感知情况下根据版本号等应用程序版本信息参数请求API服务,获取步骤S1配置的差量补丁压缩文件;
步骤S23-S24、下载并解压差量补丁文件并解压,通过
google-diff-match-patch算法将差量补丁文件和本地bundle资源文件进行合并,存储到应用缓存目录,作为更新的bundle资源文件离线包;
步骤S25、根据API获取的客户端热更新策略规则:
立即加载更新的bundle资源文件离线包,刷新当前页面;或者
用户下次启动再加载缓存的更新的bundle资源文件离线包。
至此,应用A不用发布应用市场即实现了热更新。
图4揭示了根据本发明一实施例的基于React Native的热更新策略示意图,如图4所示,本发明提出的热更新策略规则,适用于线上两类APP。
第一类是未使用集成本发明的基于React Native的热更新策略的客户端组件,即不支持热更新的旧APP。
第二类是集成本发明的基于React Native的热更新策略的客户端组件RNWrapper的新版APP。
如图2和图4所示,本发明提出的热更新策略规则,通过创建并添加APP版本,建立对第一类旧APP的热更新功能屏蔽。
如图2和图4所示,本发明提出的热更新策略规则,通过配置基线包,根据所含不同版本的基线包,以APP版本和基线包这两个作为筛选条件,实现对集成组件RNWrappe对于新版APP的分类热更新。
如图4所示,APP1.0版本对应的1.0版本基线包,根据1.0版本基线包配置1.0版本差量包;
如图4所示,APP2.0版本对应的2.0版本基线包,根据2.0版本基线包配置2.0版本差量包,实现对新APP的分类热更新。
本发明的服务端热更新加载步骤,从资源上传到差量包拉取,在数据传输和存储上安全性有保障。
图5揭示了根据本发明一实施例的基于React Native的热更新系统原理框图,如图5所示,本发明提出的基于React Native的热更新系统,包括服务端510和客户端520:
所述服务端510,添加应用程序版本信息作为基线版本;根据基线版本配置基线包,提交原生bundle资源文件;根据基线版本配置差量包,配置热更新策略规则,根据服务端热更新策略规则上传更新的bundle资源文件;将基线包与差量包的bundle资源文件进行对比,生成差量补丁文件;
所述客户端520,与服务端510连接,加载本地bundle资源文件;通过API接口获取差量补丁文件;对本地bundle资源文件和差量补丁文件进行合并,存储到应用缓存目录,作为更新的bundle资源文件离线包;根据客户端热更新策略规则加载更新的bundle资源文件离线包。
在本实施例中,服务端510为hmas控台。
hmas服务是指如上述方法提供的更稳健、更易用的React Native应用热更新服务。
在本实施例中,客户端520为RNWrapper组件。
RNWrapper组件包括iOS端和安卓端,是用来请求hmas服务加载,处理差量包,加载热更新包的一个客户端组件SDK。
基于React Native的热更新系统的具体实现细节与前述的基于React Native的热更新方法对应,所以具体细节此处不再重复描述。
本发明提供的一种基于React Native的热更新方法及系统,具体具有以下有益效果:
1)APP进行更新时,不需要用户手动操作下载新版APP进行更新,在用户使用时无感知更新;
2)APP的更新差量包与APP内置基础包进行了对比,更新时只更新了差量包与基础包的增量文件,将用户下载包与加载包的时间降到了最低;
3)提出了版本-基线包二重过滤机制,可以对线上不同情况的APP进行分类热更新。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
本领域技术人员将可理解,信息、信号和数据可使用各种不同技术和技艺中的任何技术和技艺来表示。例如,以上描述通篇引述的数据、指令、命令、信息、信号、位(比特)、码元、和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光学粒子、或其任何组合来表示。
本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
结合本文所公开的实施例描述的各种解说性逻辑模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。
结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
上述实施例是提供给熟悉本领域内的人员来实现或使用本发明的,熟悉本领域的人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。
Claims (12)
1.一种基于React Native的热更新方法,其特征在于,包括以下步骤:
服务端热更新加载步骤,添加应用程序版本信息作为基线版本;根据基线版本配置基线包,提交原生bundle资源文件;根据基线版本配置差量包,配置热更新策略规则,根据服务端热更新策略规则上传更新的bundle资源文件;将基线包与差量包的bundle资源文件进行对比,生成差量补丁文件;
客户端热更新加载步骤,加载本地bundle资源文件;获取差量补丁文件;对本地bundle资源文件和差量补丁文件进行合并,存储到应用缓存目录,作为更新的bundle资源文件离线包;根据客户端热更新策略规则加载更新的bundle资源文件离线包。
2.根据权利要求1所述的基于React Native的热更新方法,其特征在于,所述服务端,新建应用程序,指定应用程序的应用名、包名和所属平台。
3.根据权利要求1所述的基于React Native的热更新方法,其特征在于,所述应用程序版本信息包括应用程序的应用名、包名、版本号和build号。
4.根据权利要求1所述的基于React Native的热更新方法,其特征在于,所述服务端热更新策略规则包括:
立即更新,立即上传更新的bundle资源文件;以及
选择下次更新,下次启动再上传更新的bundle资源文件。
5.根据权利要求1所述的基于React Native的热更新方法,其特征在于,所述服务端将差量补丁文件压缩后放至数据库供客户端获取。
6.根据权利要求1所述的基于React Native的热更新方法,其特征在于,所述客户端,在后台使用异步线程获取差量补丁文件。
7.根据权利要求1所述的基于React Native的热更新方法,其特征在于,所述客户端,通过google-diff-match-patch算法将差量补丁文件和本地bundle资源文件进行合并。
8.根据权利要求1所述的基于React Native的热更新方法,其特征在于,所述客户端热更新策略规则包括:
立即加载更新的bundle资源文件离线包,刷新当前页面;以及
下次启动再加载更新的bundle资源文件离线包。
9.一种基于React Native的热更新系统,其特征在于,包括服务端和客户端:
所述服务端,添加应用程序版本信息作为基线版本;根据基线版本配置基线包,提交原生bundle资源文件;根据基线版本配置差量包,配置热更新策略规则,根据服务端热更新策略规则上传更新的bundle资源文件;将基线包与差量包的bundle资源文件进行对比,生成差量补丁文件;
所述客户端,加载本地bundle资源文件;通过API接口获取差量补丁文件;对本地bundle资源文件和差量补丁文件进行合并,存储到应用缓存目录,作为更新的bundle资源文件离线包;根据客户端热更新策略规则加载更新的bundle资源文件离线包。
10.根据权利要求9所述的基于React Native的热更新系统,其特征在于,所述服务端,新建应用程序,指定应用程序的应用名、包名和所属平台;
所述应用程序版本信息包括应用程序的应用名、包名、版本号和build号。
11.根据权利要求9所述的基于React Native的热更新系统,其特征在于,所述服务端热更新策略规则包括:
立即更新,立即上传更新的bundle资源文件;以及
选择下次更新,下次启动再上传更新的bundle资源文件;
所述客户端热更新策略规则包括:
立即加载更新的bundle资源文件离线包,刷新当前页面;以及
下次启动再加载更新的bundle资源文件离线包。
12.根据权利要求9所述的基于React Native的热更新系统,其特征在于,所述客户端,在后台使用异步线程获取差量补丁文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111464505.XA CN114115969A (zh) | 2021-12-03 | 2021-12-03 | 一种基于React Native的热更新方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111464505.XA CN114115969A (zh) | 2021-12-03 | 2021-12-03 | 一种基于React Native的热更新方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114115969A true CN114115969A (zh) | 2022-03-01 |
Family
ID=80365841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111464505.XA Pending CN114115969A (zh) | 2021-12-03 | 2021-12-03 | 一种基于React Native的热更新方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114115969A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918113A (zh) * | 2019-01-17 | 2019-06-21 | 平安城市建设科技(深圳)有限公司 | Ios应用热修复/热更新方法、服务器及存储介质 |
US20190227794A1 (en) * | 2018-01-25 | 2019-07-25 | Walmart Apollo, Llc | Systems and methods for real time version control for integrating updated web-based components with a native application |
CN110780899A (zh) * | 2019-10-22 | 2020-02-11 | 深圳墨世科技有限公司 | 应用的热更新方法、装置、计算机设备及存储介质 |
-
2021
- 2021-12-03 CN CN202111464505.XA patent/CN114115969A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190227794A1 (en) * | 2018-01-25 | 2019-07-25 | Walmart Apollo, Llc | Systems and methods for real time version control for integrating updated web-based components with a native application |
CN109918113A (zh) * | 2019-01-17 | 2019-06-21 | 平安城市建设科技(深圳)有限公司 | Ios应用热修复/热更新方法、服务器及存储介质 |
CN110780899A (zh) * | 2019-10-22 | 2020-02-11 | 深圳墨世科技有限公司 | 应用的热更新方法、装置、计算机设备及存储介质 |
Non-Patent Citations (5)
Title |
---|
EMERYA35: "React Native详细实现热部署、增量差异化热更新", 《HTTPS://WWW.OPEN-OPEN.COM/LIB/VIEW/OPEN1490082273183.HTML》 * |
LYICHAO: "ReactNative开发-集成Pushy热更新", 《HTTPS://WWW.JIANSHU.COM/P/9E330B45F721》 * |
佚名: "React Native热更新方案", 《HTTPS://KALEDL.COM/ARTICLE/166779.HTML》 * |
周智等: "移动互联网程序的灰度发布" * |
陈燕妮: "企业ERP系统灰度发布" * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5658283B2 (ja) | アプリケーションの稼働方法、装置及びシステム | |
US8392545B2 (en) | Device management system | |
CN106648712A (zh) | 增量更新包的生成方法、装置和服务器 | |
CN105302563B (zh) | 移动应用服务的插件化方法及系统 | |
US20080037452A1 (en) | Method Supplying Content to a Device | |
CN108491236A (zh) | 一种插件加载方法、装置及计算机可读存储介质 | |
CN107870787A (zh) | 应用程序插件化加载方法及系统 | |
CN109391673A (zh) | 一种管理更新文件的方法、系统及终端设备 | |
WO2006110005A1 (en) | Method for providing contents for mobile comunication terminal | |
CN105407130A (zh) | 一种移动端插件系统及移动端插件处理方法 | |
CN107870771A (zh) | 应用程序构建与升级方法及系统 | |
CN105391763A (zh) | 对多个apk文件进行加固的方法和服务器 | |
CN105760183A (zh) | 文件处理方法、装置及通信系统 | |
CN107809470B (zh) | 应用程序自动化部署的方法和装置 | |
CN115509582A (zh) | 应用程序发布方法、装置、设备及存储介质 | |
CN111666079B (zh) | 软件升级的方法、装置、系统、设备和计算机可读介质 | |
CN112306963A (zh) | 资源文件加载方法、装置及计算机可读存储介质 | |
CN105740298A (zh) | 文件处理方法、装置及服务端设备 | |
CN115190064B (zh) | 客户端动态路由的实现方法、装置、系统和存储介质 | |
CN110221855B (zh) | 一种app与服务器协同更新和离线运行的方法 | |
CN111949298A (zh) | 升级包的生成方法、装置、服务器及计算机存储介质 | |
CN114115969A (zh) | 一种基于React Native的热更新方法及系统 | |
EP2680135B1 (en) | Methods for updating applications | |
CN100412787C (zh) | 使用应用程序描述符获取通信设置的方法和设备 | |
CN112558994A (zh) | 一种应用软件的升级方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 5 / F, building C5, 700 Yishan Road, Xuhui District, Shanghai, 200233 Applicant after: Shanghai HuiFu payment Co.,Ltd. Address before: 5 / F, building C5, 700 Yishan Road, Xuhui District, Shanghai, 200233 Applicant before: SHANGHAI HUIFU DATA SERVICE Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220301 |