一种软件轻量更新方法、装置及设备制造方法及图纸

技术编号:21059463 阅读:22 留言:0更新日期:2019-05-08 06:33
本申请公开了一种软件轻量更新方法、装置及设备。方案包括:客户端获取服务器发送的针对待更新程序的更新指令;所述更新指令用于指示所述客户端对所述待更新程序进行更新;从所述服务器中下载所述更新指令对应的脚本;从所述脚本中确定待更新函数在所述待更新程序中对应的地址信息;监控预设事件是否发生;得到监控结果;当所述监控结果表示所述预设事件发生时,根据所述地址信息将所述待更新函数替换为所述脚本中的目标函数。通过上述方法,实现自动化补丁以及APP功能动态轻量更新。

A Software Lightweight Updating Method, Device and Equipment

【技术实现步骤摘要】
一种软件轻量更新方法、装置及设备
本申请涉及计算机
,尤其涉及一种软件轻量更新方法、装置及设备。
技术介绍
随着互联网技术的发展,各种APP应用已经非常普及,用户端系统或者各种APP版本更新速度较快,在使用过程中一个重要的问题就是版本的更新。在进行版本更新时,移动端会频繁收到升级提示,极大程度影响用户的使用体验。在更新过程中,需要将新的版本完全替换旧的版本,用户在更新过程中,无法对特定的场景进行修改和更新,导致更新过程持续时间较长。在移动端和PC端,当一个产品发布后,后续的产品功能更新、BUG修复等,都需要更新替换功能模块或是重新下载整个安装文件,有些安装包的体积较大,更新过程较长且由于平台、系统、网络和手机硬件的限制,每次对APP的升级和BUG修改都进行全量更新时,速度较慢,无法实现动态轻量更新。
技术实现思路
有鉴于此,本申请实施例提供了一种软件轻量更新方法、装置及设备,用于实现动态补丁以及APP功能自动化轻量级更新。为解决上述技术问题,本说明书实施例是这样实现的:本说明书实施例提供的一种软件轻量更新方法,包括:客户端获取服务器发送的针对待更新程序的更新指令;所述更新指令用于指示所述客户端对所述待更新程序进行更新;从所述服务器中下载所述更新指令对应的脚本;从所述脚本中确定待更新函数在所述待更新程序中对应的地址信息;监控预设事件是否发生;得到监控结果;当所述监控结果表示所述预设事件发生时,根据所述地址信息将所述待更新函数替换为所述脚本中的目标函数。可选的,所述从所述脚本中确定待更新函数在所述待更新程序中对应的地址信息,具体包括:从所述脚本中确定HOOK模板;所述脚本为lua脚本;根据所述HOOK模板确定所述待更新函数在所述待更新程序中的地址信息。可选的,所述根据所述HOOK模板确定所述待更新函数在所述待更新程序中的地址信息,具体包括:从所述HOOK模板中确定stub数据结构;从所述stub数据结构中获取所述待更新函数指针数据;根据所述待更新函数指针数据确定所述待更新函数的地址信息。可选的,所述将所述待更新函数替换为所述脚本中的目标函数,具体包括:从所述Lua脚本中确定所述目标函数的位置信息;将所述待更新函数替换为所述Lua脚本中的目标函数。可选的,所述从所述Lua脚本中确定所述目标函数的位置信息,具体包括:从所述Lua脚本中确定所述目标函数的过滤函数;根据所述过滤函数确定所述目标函数的位置信息。可选的,所述将所述待更新函数替换为所述脚本中的目标函数之后,还包括:将所述Lua脚本作为第一Lua功能脚本保存在所述客户端中;当所述客户端收到所述服务器发送的新的更新指令时,从所述服务器中下载第二Lua功能脚本;采用所述第二Lua功能脚本替换所述第一Lua功能脚本。一种软件轻量更新装置,包括:更新指令获取模块,用于客户端获取服务器发送的针对待更新程序的更新指令;所述更新指令用于指示所述客户端对所述待更新程序进行更新;脚本下载模块,用于从所述服务器中下载所述更新指令对应的脚本;待更新函数确定模块,用于从所述脚本中确定待更新函数在所述待更新程序中对应的地址信息;监控模块,用于监控预设事件是否发生;得到监控结果;替换模块,用于当所述监控结果表示所述预设事件发生时,根据所述地址信息将所述待更新函数替换为所述脚本中的目标函数。可选的,所述待更新函数确定模块,具体包括:HOOK模板确定单元,用于从所述Lua脚本中确定HOOK模板;待更新函数确定单元,用于根据所述HOOK模板确定所述待更新函数在所述待更新程序中的地址信息。一种软件轻量更新设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行所述一种软件轻量更新方法。一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现所述一种软件轻量更新方法的步骤。本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:通客户端获取服务器发送的针对待更新程序的更新指令,下载所述更新指令对应的脚本;从脚本中确定待更新函数在待更新程序中对应的地址信息;监控预设事件是否发生,得到监控结果;当所述监控结果表示所述预设事件发生时,根据所述地址信息将所述待更新函数替换为所述脚本中的目标函数,实现整个APP的更新和BUG修复功能。动态实现了产品功能和逻辑的更新,只需要在后台上传Lua脚本,就能实现全网用户的软件轻量级动态更新。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本说明书实施例提供的一种软件轻量更新方法的流程示意图;图2为本说明书实施例提供的软件轻量更新方法中确定待更新函数的流程示意图;图3为本说明书实施例提供的对应于图1的一种软件轻量更新装置的结构示意图;图4为本说明书实施例提供的对应于图1的一种软件轻量更新设备的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。现有技术中在客户端(移动端或者PC端),当产品发布后,后续的产品如果需要功能更新或者BUG修复时,需要更新替换模块或者重新下载整个安装包,安装包占用体积较大且在进行全量更新过程中更新速度较慢,更新时间较长,影响了用户体验。图1为本说明书实施例提供的一种软件轻量更新方法的流程示意图。从程序角度而言,流程的执行主体可以为搭载于应用服务器的程序或应用客户端。如图1所示,该流程可以包括以下步骤:S101:客户端获取服务器发送的针对待更新程序的更新指令;所述更新指令用于指示所述客户端对所述待更新程序进行更新。客户端(Client),也可称为用户端,是指与服务器相对应,为客户提供本地服务的程序。除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行。例如:移动终端或PC端中的应用程序(APPlication,简称APP)。服务器,也可以称为伺服器,是提供计算服务的设备。服务器的构成包括处理器、硬盘、内存、系统总线等,需要响应服务请求。客户端启动后与服务器(server)建立联系,不间断的从服务器获取所需数据,数据的传输通过套接字(socket)完成,以发送接收数据包(packet)的形式交互,packet是一个结构体(struct),一般有命令id、长度、用户id以及其他成员变量组成。服务器会对客户端中对应的程序进行检测更新,当检测到客户端中存在需要更新的程序时,向客户端发送更新指令,指示客户端对待更新程序进行更新。例如:所述更新指令可以是某APP的功能更新、版本更新或者是修复系统BUG。服务器会自动检测系统中的APP是否需要更新,是否存在漏洞(BUG)等等,当检测到需要进行修复更新时,则将更新本文档来自技高网...

【技术保护点】
1.一种软件轻量更新方法,其特征在于,包括:客户端获取服务器发送的针对待更新程序的更新指令;所述更新指令用于指示所述客户端对所述待更新程序进行更新;从所述服务器中下载所述更新指令对应的脚本;从所述脚本中确定待更新函数在所述待更新程序中对应的地址信息;监控预设事件是否发生,得到监控结果;当所述监控结果表示所述预设事件发生时,根据所述地址信息将所述待更新函数替换为所述脚本中的目标函数。

【技术特征摘要】
1.一种软件轻量更新方法,其特征在于,包括:客户端获取服务器发送的针对待更新程序的更新指令;所述更新指令用于指示所述客户端对所述待更新程序进行更新;从所述服务器中下载所述更新指令对应的脚本;从所述脚本中确定待更新函数在所述待更新程序中对应的地址信息;监控预设事件是否发生,得到监控结果;当所述监控结果表示所述预设事件发生时,根据所述地址信息将所述待更新函数替换为所述脚本中的目标函数。2.如权利要求1所述的方法,其特征在于,所述从所述脚本中确定待更新函数在所述待更新程序中对应的地址信息,具体包括:从所述脚本中确定HOOK模板;所述脚本为lua脚本;根据所述HOOK模板确定所述待更新函数在所述待更新程序中的地址信息。3.如权利要求2所述的方法,其特征在于,所述根据所述HOOK模板确定所述待更新函数在所述待更新程序中的地址信息,具体包括:从所述HOOK模板中确定stub数据结构;从所述stub数据结构中获取所述待更新函数指针数据;根据所述待更新函数指针数据确定所述待更新函数的地址信息。4.如权利要求1所述的方法,其特征在于,所述将所述待更新函数替换为所述脚本中的目标函数,具体包括:从所述Lua脚本中确定所述目标函数的位置信息;将所述待更新函数替换为所述Lua脚本中的目标函数。5.如权利要求4所述的方法,其特征在于,所述从所述Lua脚本中确定所述目标函数的位置信息,具体包括:从所述Lua脚本中确定所述目标函数的过滤函数;根据所述过滤函数确定所述目标函数的位置信息。6.如权利要求1所述的方法,其特征在于,所述将所述待更新函数替换为...

【专利技术属性】
技术研发人员:卢雄涛
申请(专利权)人:广州华多网络科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1