发布信息

一种客户端热更新方法、装置及设备与流程 专利技术说明

作者:admin      2023-06-29 07:36:35     678



计算;推算;计数设备的制造及其应用技术1.本发明实施例涉及应用开发技术领域,尤其涉及一种客户端热更新方法、装置及设备。背景技术:2.由于移动应用更新迭代越来越频繁,传统的应用商店安装包更新形式繁琐、下载数据量大,用户更新意愿低,无法及时让用户使用新功能或修复问题,已经无法满足需求。为了解决上述问题,有必要引入热更新机制来进行新版本的更新,实现新功能更新或者漏洞修复。3.传统的一种热更新方式是采用下载dex二进制文件等方式来进行热更新,但是随着android系统对权限的收紧和禁止,这类热更新方式的兼容性问题越来越多。另一种方式是将客户端页面用h5代替原生,通过下载javascript脚本然后实现对客户端功能的修改,但是前端工程正常打包出来的javascript脚本通常只有一个app.js,囊括所有应用模块和功能,数量少、体积大,只要有简单修改就需要下载整个脚本文件,不符合对热更新快速高效的要求,同样使得更新效率降低。技术实现要素:4.本发明实施例提供一种客户端热更新方法、装置及设备,解决了现有技术中客户端进行热更新时需要下载整个脚本文件所导致的更新效率低下的技术问题。5.第一方面,本技术提供了一种客户端热更新方法,应用于服务器端,所述客户端热更新方法包括:6.获取待更新资源包,其中,所述待更新资源包包含多个依据路由模块划分的资源文件,一个所述路由模块对应表示一组文件路径与功能的映射关系,每个所述资源文件依据功能划分为多个子文件,每个所述子文件对应唯一的文件校验值;7.遍历所述待更新资源包中的每个所述子文件,生成每个所述子文件的所述文件校验值;8.依据所述待更新资源包的当前时间戳生成当前版本信息,并将所述当前版本信息推送至客户端;9.基于所述客户端发送的更新资源请求将目标子文件加载至所述客户端的下载列表,其中,所述目标子文件为所述待更新资源包中所述文件校验值相对上一版本资源包发生变更的所述子文件。10.第二方面,本技术提供了一种客户端热更新方法,应用于客户端,所述客户端热更新方法包括:11.接收服务器端发送的待更新资源包中各子文件的文件校验值;12.将所述文件校验值与本地资源包中的文件校验值进行对比,确定目标子文件的文件校验值,其中,所述本地资源包包含多个依据路由模块划分的资源文件,一个所述路由模块对应表示一组文件路径与功能的映射关系,每个所述资源文件依据功能划分为多个子文件,每个所述子文件对应唯一的文件校验值,所述目标子文件为所述文件校验值相对所述本地资源包中的文件校验值发生变更的所述待更新资源包中的所述子文件;13.将所述目标子文件的所述文件校验值发送至所述服务器端;14.下载所述服务器端加载至下载列表中的所述目标子文件。15.第三方面,本技术提供了一种客户端热更新装置,配置于服务器端,所述客户端热更新装置包括:16.资源接收单元,用于获取待更新资源包,其中,所述待更新资源包包含多个依据路由模块划分的资源文件,一个所述路由模块对应表示一组文件路径与功能的映射关系,每个所述资源文件依据功能划分为多个子文件,每个所述子文件对应唯一的文件校验值;17.标识生成单元,用于遍历所述待更新资源包中的每个所述子文件,生成每个所述子文件的所述文件校验值;18.版本信息生成单元,用于依据所述待更新资源包的当前时间戳生成当前版本信息,并将所述当前版本信息推送至客户端;19.资源加载单元,用于基于所述客户端发送的更新资源请求将目标子文件加载至所述客户端的下载列表,其中,所述目标子文件为所述待更新资源包中所述文件校验值相对上一版本资源包发生变更的所述子文件。20.第四方面,本技术提供了一种客户端热更新装置,配置于客户端,所述客户端热更新装置包括:21.标识接收单元,用于接收服务器端发送的所有子文件的文件校验值;22.标识对比单元,用于将所述文件校验值与本地资源包中的文件校验值进行对比,确定目标子文件的文件校验值,其中,所述本地资源包包含多个依据路由模块划分的资源文件,一个所述路由模块对应表示一组文件路径与功能的映射关系,每个所述资源文件依据功能划分为多个子文件,每个所述子文件对应唯一的文件校验值,所述目标子文件为所述文件校验值相对所述本地资源包中的文件校验值发生变更的所述子文件;23.结果反馈单元,用于将所述目标子文件的所述文件校验值发送至所述服务器端;24.文件下载单元,用于下载所述服务器端加载至下载列表中的所述目标子文件。25.第五方面,本技术提供了一种客户端热更新系统,所述系统包括:26.服务器端,用于获取待更新资源包,遍历所述待更新资源包中的每个所述子文件,生成每个所述子文件的所述文件校验值,依据所述待更新资源包的当前时间戳生成当前版本信息,将所述当前版本信息推送至客户端,并基于接收到的所述更新资源请求将目标子文件加载至所述客户端的下载列表,其中,所述待更新资源包包含多个依据路由模块划分的资源文件,一个所述路由模块对应表示一组文件路径与功能的映射关系,每个所述资源文件依据功能划分为多个子文件,每个所述子文件对应唯一的文件校验值;27.客户端,用于基于所述服务器端发送的所述文件校验值确定所述目标子文件的文件校验值,并下载所述服务器端加载至下载列表中的所述目标子文件用于热更新。28.第六方面,本技术提供了一种客户端热更新设备,所述客户端热更新设备包括:29.至少一个处理器;以及30.与所述至少一个处理器通信连接的存储器;其中,31.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本技术第一方面所述的应用于服务器端的客户端热更新方法,或执行本技术第二方面所述的应用于客户端的客户端热更新方法。32.第七方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本技术第一方面所述的应用于服务器端的客户端热更新方法,或实现本技术第二方面所述的应用于客户端的客户端热更新方法。33.第八方面,本技术提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现本技术第一方面所述的应用于服务器端的客户端热更新方法,或实现本技术第二方面所述的应用于客户端的客户端热更新方法。34.本发明实施例公开了一种客户端热更新方法、装置及设备,通过将前端工程的资源包依据路由模块划分为多个资源文件,并将每个资源文件依据具体的功能划分成多个子文件,并且给每个子文件设置唯一的文件检验值,使得在对资源包进行更新时可以通过文件校验值识别出需要进行更新的部分子文件,解决了现有技术中客户端进行热更新时需要下载整个脚本文件所导致的更新效率低下的技术问题,实现了缩短热更新时间,减少流量使用,提高热更新效率的技术效果。35.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。附图说明36.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。37.图1是本发明实施例提供的一种客户端热更新方法的流程图;38.图2是本发明实施例提供的另一种客户端热更新方法的流程图;39.图3是本发明实施例提供的又一种客户端热更新方法的流程图;40.图4是本发明实施例提供的又一种客户端热更新方法的流程图;41.图5是本发明实施例提供的一种客户端热更新装置的结构图;42.图6是本发明实施例提供的另一种客户端热更新装置的结构图;43.图7是本发明实施例提供的一种客户端热更新设备的结构示意图。具体实施方式44.为了使本技术领域的人员更好地理解本发明方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。45.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。46.图1是本发明实施例提供的一种客户端热更新方法的流程图,该客户端热更新方法应用于服务器端。本实施例可适用于任何需要进行前端工程热更新的情况,该方法可以由客户端热更新装置来执行,该客户端热更新装置可以采用硬件和/或软件的形式实现,并一般可集成于服务器中。本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。47.如图1所示,该客户端热更新方法应用于服务器端,具体包括如下步骤:48.s101,获取待更新资源包,其中,待更新资源包包含多个依据路由模块划分的资源文件,一个路由模块对应表示一组文件路径与功能的映射关系,每个资源文件依据功能划分为多个子文件,每个子文件对应唯一的文件校验值。49.具体地,待更新资源包为javascript脚本,其逻辑代码储存为app.js文件,app.js文件依据路由模块划分为多个资源文件app1.js、app2.js、……等,具体来说,一个路由模块对应表示一组文件路径与功能的映射关系,因此每个资源文件对应一个文件路径,但一个文件路径下可能存在不同的功能程序,因此还将每个资源文件依据功能划分为多个子文件,其中,每个子文件对应唯一的文件校验值。需要说明的是,资源文件中的子文件在导入时选择动态导入,即懒加载的方式,而非静态导入的方式,使用懒加载的方式进行子文件的导入,可以实现只有当该路由被访问时,才会加载相应的子文件的效果,简单来说,就是在需要时进行加载,这样可以对服务器端有一定的缓解压力作用,提升服务器端的效率。50.s102,遍历待更新资源包中的每个子文件,生成每个子文件的文件校验值。51.具体地,在获取到待更新资源包之后,首先会遍历待更新资源包内的每个子文件,并为每个子文件生成文件校验值。52.可选地,s102具体包括:遍历待更新资源包中的每个子文件,利用密码散列函数生成每个子文件的文件校验值。53.具体地,密码散列函数(message-digest algorithm 5,md5)的值是唯一的,只要子文件中的任意字符发生了变化,其计算出的md5值也会发生变化,以此实现为子文件分配唯一对应的文件校验值。54.可选地,在s102,生成每个子文件的文件校验值之后,该客户端热更新方法还包括:生成每个子文件的文件路径以及文件大小。55.具体地,不同的子文件的文件路径可能不同,同一文件路径下也可能包括多个不同文件校验值的子文件,为了后续查询或存储子文件时更加方便,在生成子文件的文件校验值之后,还会生成每个子文件的文件路径以及文件大小待用。56.s103,依据待更新资源包的当前时间戳生成当前版本信息,并将当前版本信息推送至客户端。57.具体地,在获取到待更新资源包之后,会根据待更新资源包的当前时间戳生成当前版本信息,以此来区分不同版本的资源包,并将当前版本信息发送给客户端,以使客户端用于判断自己是否需要进行资源包的更新。58.可选地,在s103,将当前版本信息推送至客户端之前,客户端热更新方法还包括:接收客户端发送的登录验证信息;基于登录验证信息进行登录验证,并在登录验证通过后,执行向客户端推送当前版本信息的动作。59.具体地,当客户端被启动时,会向服务器端发送登录验证信息,服务器端会对登录验证信息进行验证,当验证通过时,服务器端向客户端推送当前版本信息,以使客户端用于判断自己是否需要进行资源包的更新。60.s104,基于客户端发送的更新资源请求将目标子文件加载至客户端的下载列表,其中,目标子文件为待更新资源包中文件校验值相对上一版本资源包发生变更的子文件。61.具体地,当客户端判断出需要进行热更新时,会向服务器端发送更新资源请求,服务器端会基于该更新资源请求将文件校验值发生变更的子文件(即上述目标子文件)加载至客户端的下载列表中,以使客户端基于下载列表中的目标子文件进行热更新。通过对发生变更的文件校验值进行识别,使得客户端在进行热更新时不需要下载全部的资源包,仅下载部分子文件即可,减少了用户的下载量,提高了热更新的效率。62.本技术通过将前端工程的资源包依据路由模块划分为多个资源文件,并将每个资源文件依据具体的功能划分成多个子文件,并且给每个子文件设置唯一的文件检验值,使得在对资源包进行更新时可以通过文件校验值识别出需要进行更新的部分子文件,解决了现有技术中客户端进行热更新时需要下载整个脚本文件所导致的更新效率低下的技术问题,实现了缩短热更新时间,减少流量使用,提高热更新效率的技术效果。63.在上述各技术方案的基础上,在s104,将目标子文件加载至客户端的下载列表之前,该客户端热更新方法还包括:64.基于上一版本的资源包将待更新资源包中文件校验值发生变更的子文件挑选出来,得到目标子文件;或者,65.基于客户端发送的目标子文件的文件校验值确定目标子文件,其中,目标子文件的文件校验值是客户端基于服务器端发送的所有子文件的文件校验值与本地资源包中的文件校验值进行对比所得到。66.具体地,在将目标子文件加载至客户端的下载列表之前,还需要确定出哪些的目标子文件,具体存在两种确定方法,一种是服务器端基于上一版本的资源包中各子文件的文件校验值来确定出待更新资源包中各子文件的文件校验值哪些发生了变更,将发生变更的子文件挑选出来,得到目标子文件;另一种是服务器端在生成子文件的文件校验值之后,将其发送至客户端,客户端基于接收到的文件校验值与本地资源包中的文件校验值进行对比,挑选出发生变更的文件校验值,然后将其反馈至服务器端,服务器端基于接收到的发生变更的文件校验值确定出目标子文件,并将目标子文件加载至客户端的下载列表中。67.在客户端基于接收到的文件校验值与本地资源包中的文件校验值进行对比时,可以通过文件路径对相应的文件校验值进行对比,具体来说,客户端会遍历本地资源包中的子文件,计算每个子文件的文件校验值,并以文件路径为key,文件校验值为value储存在本地哈希表中。在客户端接收到服务器端传来的文件校验值之后,将其存入副本哈希表中,然后从副本哈希表中遍历每个文件路径,以获取相应的文件校验值,然将副本哈希表中的文件校验值与本地哈希表中的文件校验值进行比对:(1)如果本地哈希表没有与副本哈希表中该文件路径下对应的文件校验值,代表该文件校验值所对应的子文件是新增文件,则将该文件路径下所对应的子文件确定为目标子文件;(2)如果本地哈希表存在与副本哈希表中该文件路径下对应的文件校验值,但文件校验值不一致,代表该文件校验值所对应的子文件被修改过,将该文件路径下对应的子文件确定为目标子文件;(3)如果有文件路径存在于本地哈希表中,但是在副本哈希表中没有该文件路径,则代表该文件路径下的子文件在新版本的资源包中被删除,无需处理。68.在上述各技术方案的基础上,在s103,将当前版本信息推送至客户端之后,该客户端热更新方法还包括:接收客户端发送的更新资源请求,其中,更新资源请求是由客户端将服务器端发送的当前版本信息与本地资源包的版本信息进行对比所得到。69.具体地,服务器端将当前版本信息推送至客户端之后,客户端会将接收到的当前版本信息与本地资源包的版本信息进行对比,若两者的版本号一致,则客户端直接进入应用,若两者的版本号不一致,则客户端会向服务器端发送更新资源请求,以使服务器端在接收到更新资源请求将目标子文件加载至客户端的下载列表中。70.图2是本发明实施例提供的另一种客户端热更新方法的流程图,该客户端热更新方法应用于客户端,如图2所示,该客户端热更新方法具体包括如下步骤:71.s201,接收服务器端发送的待更新资源包中各子文件的文件校验值。72.具体地,服务器端在获取到待更新资源包之后,会遍历待更新资源包中的所有子文件,并生成每个子文件的文件校验值,然后将生成的文件校验值发送至客户端。客户端在接收到服务器端传来的文件校验值之后,会将其存入副本哈希表中待用。73.s202,将文件校验值与本地资源包中的文件校验值进行对比,确定目标子文件的文件校验值,其中,本地资源包包含多个依据路由模块划分的资源文件,一个路由模块对应表示一组文件路径与功能的映射关系,每个资源文件依据功能划分为多个子文件,每个子文件对应唯一的文件校验值,目标子文件为文件校验值相对本地资源包中的文件校验值发生变更的待更新资源包中的子文件。74.具体地,对于客户端中的本地资源包来说,本地资源包为javascript脚本,其逻辑代码储存为app.js文件,app.js文件依据路由模块划分为多个资源文件app1.js、app2.js、……等,由于一个路由模块对应表示一组文件路径与功能的映射关系,因此每个资源文件对应一个文件路径,但一个文件路径下可能存在不同的功能程序,因此还将每个资源文件依据功能划分为多个子文件,其中,每个子文件对应唯一的文件校验值。客户端会遍历本地资源包中的子文件,计算每个子文件的文件校验值,并以文件路径为key,文件校验值为value储存在本地哈希表中,然后将本地哈希表中的文件校验值与副本哈希表中的文件校验值进行对比,将发生变更的文件校验值挑选出来,作为目标子文件的文件校验值。75.s203,将目标子文件的文件校验值发送至服务器端。76.具体地,客户端在确定出目标子文件的文件校验值之后,会将其反馈回服务器端,以使服务器端能够基于目标子文件的文件校验值确定出目标子文件,并将目标子文件加载至客户端的下载列表中。77.s204,下载服务器端加载至下载列表中的目标子文件。78.具体地,在服务器端将目标子文件加载至客户端的下载列表之后,客户端会下载加载至下载列表中的目标子文件,然后基于下载完成的目标子文件进行热更新。79.本技术实施例通过文件校验值识别出需要进行热更新的部分子文件,解决了现有技术中客户端进行热更新时需要下载整个脚本文件所导致的更新效率低下的技术问题,实现了缩短热更新时间,减少流量使用,提高热更新效率的技术效果80.在上述各技术方案的基础上,图3是本发明实施例提供的又一种客户端热更新方法的流程图,如图3所示,在s204下载目标子文件的过程中,该客户端热更新方法还包括:81.s301,判断下载列表中的目标子文件的文件大小是否大于第一预设值;82.s302,若目标子文件的文件大小大于第一预设值,则启用断点下载的方式下载目标子文件;83.s303,若目标子文件的文件大小小于或等于第一预设值,则判断下载列表中文件大小小于或等于第一预设值的目标子文件的数量是否大于第二预设值;84.s304,若大于第二预设值,则启用批量下载的方式下载目标子文件。85.具体地,为了最大地利用芯片和线程的潜能来提高下载速度,在下载过程中还需要判断目标子文件的文件大小是否大于第一预设值,例如,第一预设值为2m,当目标子文件的文件大小大于第一预设值时,则利用断点下载的方式下载目标子文件,防止过大的文件在下载过程中被中断;若目标子文件的大小小于或等于第一预设值,则需要判断小于或等于第一预设值的目标子文件的数量是否大于第二预设值,例如,第二预设值为5个,若大于第二预设值,则表明当前批次的下载文件数量较多,此时使用批量下载的方式下载目标子文件,能够防止在下载过程中丢失部分目标子文件。86.在上述各技术方案的基础上,图4是本发明实施例提供的又一种客户端热更新方法的流程图,如图4所示,在s204之后,客户端热更新方法还包括:87.s401,利用目标子文件的文件路径替换本地资源包中的相应子文件,完成热更新。88.s402,在完成目标子文件的替换之后,修改本地资源包的版本信息为更新后的当前版本信息。89.具体地,客户端在下载完成目标子文件之后,利用目标子文件的文件路径替换本地资源包中相信的子文件,以完成客户端的热更新,并在完成热更新之后,将本地资源部中的版本信息修改为最新的当前版本信息,以待下一次热更新时进行版本信息的对比。90.可选地,在客户端完成热更新之后,直接进入应用。91.总之,本技术实施例提供的客户端热更新方法具有下述优点:(1)在服务器端的部署更加方便,只需要上传一个待更新资源包即可,任意时候均可进行更新;并且开启客户端即更新,整个过程静默无感,无需用户过多参与等待,用户体验极佳。(2)通过对下载脚本的功能模块化分割,使得每次更新的下载量更集中,增量划分更明确,从而实现轻量化的热更新。(3)利用提前生成的文件校验值来对需要更新的文件进行识别,实现了对文件的进行分类下载,极大地提高更新速度,提升了更新效率。92.图5是本发明实施例提供的一种客户端热更新装置的结构图,该客户端热更新装置配置于服务器端,如图5所示,该客户端热更新装置包括:93.资源获取单元51,用于获取待更新资源包,其中,待更新资源包包含多个依据路由模块划分的资源文件,一个路由模块对应表示一组文件路径与功能的映射关系,每个资源文件依据功能划分为多个子文件,每个子文件对应唯一的文件校验值;94.标识生成单元52,用于遍历待更新资源包中的每个子文件,生成每个子文件的文件校验值;95.版本信息生成单元53,用于依据待更新资源包的当前时间戳生成当前版本信息,并将当前版本信息推送至客户端;96.资源加载单元54,用于基于客户端发送的更新资源请求将目标子文件加载至客户端的下载列表,其中,目标子文件为待更新资源包中文件校验值相对上一版本资源包发生变更的子文件。97.可选地,标识生成单元52具体用于:98.遍历待更新资源包中的每个子文件,利用密码散列函数生成每个子文件的文件校验值。99.可选地,在版本信息生成单元53将当前版本信息推送至客户端之前,客户端热更新装置还包括:100.验证信息接收单元,用于接收客户端发送的登录验证信息,并基于登录验证信息进行登录验证,版本信息生成单元53在登录验证通过后,执行向客户端推送当前版本信息的动作。101.可选地,在标识生成单元52生成每个子文件的文件校验值之后,还用于:生成每个子文件的文件路径以及文件大小。102.可选地,在资源加载单元54将目标子文件加载至客户端的下载列表之前,客户端热更新装置还包括:103.目标子文件确定单元,用于基于上一版本的资源包将待更新资源包中文件校验值发生变更的子文件挑选出来,得到目标子文件;或者,104.基于客户端发送的目标子文件的文件校验值确定目标子文件,其中,目标子文件的文件校验值是客户端基于服务器端发送的所有子文件的文件校验值与本地资源包中的文件校验值进行对比所得到。105.可选地,在版本信息生成单元53将当前版本信息推送至客户端之后,客户端热更新装置还包括:106.更新请求接收单元,用于接收客户端发送的更新资源请求,其中,更新资源请求是由客户端将服务器端发送的当前版本信息与本地资源包的版本信息进行对比所得到。107.本发明实施例提供的客户端热更新装置可执行本发明任意实施例所提供的应用于服务器端的客户端热更新方法,具备执行方法相应的功能模块和有益效果。108.图6是本发明实施例提供的另一种客户端热更新装置的结构图,该客户端热更新装置配置于客户端,如图6所示,该客户端热更新装置包括:109.标识接收单元61,用于接收服务器端发送的所有子文件的文件校验值;110.标识对比单元62,用于将文件校验值与本地资源包中的文件校验值进行对比,确定目标子文件的文件校验值,其中,本地资源包包含多个依据路由模块划分的资源文件,一个路由模块对应表示一组文件路径与功能的映射关系,每个资源文件依据功能划分为多个子文件,每个子文件对应唯一的文件校验值,目标子文件为文件校验值相对本地资源包中的文件校验值发生变更的子文件;111.结果反馈单元63,用于将目标子文件的文件校验值发送至服务器端;112.文件下载单元64,用于下载服务器端加载至下载列表中的目标子文件。113.可选地,在文件下载单元64下载目标子文件的过程中,客户端热更新装置还包括:114.下载方式选择单元,用于判断下载列表中的目标子文件的文件大小是否大于第一预设值;若目标子文件的文件大小大于第一预设值,则启用断点下载的方式下载目标子文件;若目标子文件的文件大小小于或等于第一预设值,则判断下载列表中文件大小小于或等于第一预设值的目标子文件的数量是否大于第二预设值;若大于第二预设值,则启用批量下载的方式下载目标子文件。115.可选地,在文件下载单元64目标子文件下载完成之后,客户端热更新装置还包括:116.热更新单元,用于利用目标子文件的文件路径替换本地资源包中的相应子文件,完成热更新;117.版本修改单元,用于在完成目标子文件的替换之后,修改本地资源包的版本信息为更新后的当前版本信息。118.本发明实施例提供的客户端热更新装置可执行本发明任意实施例所提供的应用于客户端的客户端热更新方法,具备执行方法相应的功能模块和有益效果。119.本发明实施例还提供了一种客户端热更新系统,系统包括:120.服务器端,用于获取待更新资源包,遍历待更新资源包中的每个子文件,生成每个子文件的文件校验值,依据待更新资源包的当前时间戳生成当前版本信息,将当前版本信息推送至客户端,并基于接收到的更新资源请求将目标子文件加载至客户端的下载列表,其中,待更新资源包包含多个依据路由模块划分的资源文件,一个路由模块对应表示一组文件路径与功能的映射关系,每个资源文件依据功能划分为多个子文件,每个子文件对应唯一的文件校验值;121.客户端,用于基于服务器端发送的文件校验值确定目标子文件的文件校验值,并下载服务器端加载至下载列表中的目标子文件用于热更新。122.具体地,服务器端在获取到待更新资源包之后,首先会遍历待更新资源包内的每个子文件,并利用密码散列函数为每个子文件生成文件校验值;然后会依据待更新资源包的当前时间戳生成当前版本信息,以此来区分不同版本的资源包,当客户端登录使用时,会向服务器端发送一登录验证信息,服务器端在通过登录验证之后,将当前版本信息发送给客户端,以使客户端用于判断自己是否需要进行资源包的更新。若客户端的判断结果为需要进行更新,则客户端会向服务器端发送更新资源请求,服务器端会基于该更新资源请求将文件校验值发生变更的子文件(即上述目标子文件)加载至客户端的下载列表中,以使客户端基于下载列表中的目标子文件进行热更新。123.通过使用本发明提供的客户端热更新系统,解决了现有技术中客户端进行热更新时需要下载整个脚本文件所导致的更新效率低下的技术问题,实现了缩短热更新时间,减少流量使用,提高热更新效率的技术效果。124.图7是本发明实施例提供的一种客户端热更新设备的结构示意图。该客户端热更新设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。125.如图7所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。126.电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。127.处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如一种应用于服务器端的客户端热更新方法或应用于客户端的客户端热更新方法。128.在一些实施例中,客户端热更新方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram 13并由处理器11执行时,可以执行上文描述的客户端热更新方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行应用于服务器端或客户端的客户端热更新方法。129.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。130.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。131.在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。132.为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。133.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。134.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。135.本发明实施例还提供一种计算机程序产品,该计算机程序产品包括计算机可执行指令,所述计算机可执行指令在由计算机处理器执行时用于执行本发明任意实施例所提供应用于服务器端的客户端热更新方法,或应用于客户端的客户端热更新方法。136.计算机程序产品在实现的过程中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。137.当然,本技术实施例所提供的计算机程序产品,其计算机可执行指令不限于如上所述的方法操作,还可以执行本技术任意实施例所提供的应用于服务器端的客户端热更新方法以及应用于客户端的客户端热更新方法中的相关操作。138.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本技术中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。139.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部