CN110377321A - 应用程序升级的方法、装置、终端及存储介质 - Google Patents
应用程序升级的方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN110377321A CN110377321A CN201910660053.9A CN201910660053A CN110377321A CN 110377321 A CN110377321 A CN 110377321A CN 201910660053 A CN201910660053 A CN 201910660053A CN 110377321 A CN110377321 A CN 110377321A
- Authority
- CN
- China
- Prior art keywords
- application program
- file
- information
- object module
- identification information
- 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
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/656—Updates while running
-
- 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
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)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及大数据领域,公开了一种应用程序升级的方法,包括在接收到用户的启动指令时,获取启动指令对应的应用程序的当前版本信息;当检测到应用程序运行时,获取应用程序中运行的目标模块标识信息;根据应用程序的当前版本信息,获取服务器中的差异文件信息;当差异文件信息包含目标模块标识信息时,向服务器发送下载请求,下载目标模块标识信息对应的增量模块文件;将下载的增量模块文件替换目标模块标识信息对应的目标模块文件,生成新应用程序并运行所述新应用程序。本发明还公开了一种装置、终端及计算机存储介质。本发明精确的获取应用程序中需要升级的模块对象,并减少终端数据流量和网络带宽资源、减少升级时间。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种应用程序升级的方法、装置、终端及计算机存储介质。
背景技术
版本升级是指对操作系统或软件旧版本的漏洞进行完善,或者对软件添加新的应用功能的更新,使软件更加完善好用。
但现有技术中,通过比较旧版本文件和新版本文件,生成用于记录所述旧版本文件和新版本文件之间的差异信息的增量文件;客户端下载所述增量文件,并将所述增量文件与自身的旧版本文件进行合并,得到对应的新版本文件,安装该新版本文件后即完成版本升级。以致造成操作系统或软件版本中不需要升级的对象也进行升级,不仅浪费带宽资源和终端流量,还延长升级时间。
发明内容
本发明的主要目的在于提供一种应用程序升级的方法,旨在解决现有的应用程序升级,造成一些不使用的模块也升级,不仅浪费带宽资源和终端流量,还延长升级时间的技术问题。
为实现上述目的,本发明提供一种应用程序升级的方法,所述应用程序升级的方法包括:
在接收到用户的启动指令时,获取所述启动指令对应的应用程序的当前版本信息;
当检测到所述应用程序运行时,获取所述应用程序中运行的目标模块标识信息;
根据所述应用程序的当前版本信息,获取服务器中的差异文件信息,其中,所述差异文件信息为终端的当前版本信息与服务器中的待升级版本信息的文件差异;
当所述差异文件信息包含所述目标模块标识信息时,向服务器发送下载请求,下载所述目标模块标识信息对应的增量模块文件;
将下载的所述增量模块文件替换所述目标模块标识信息对应的目标模块文件,生成新应用程序并运行所述新应用程序。
可选的,所述当检测到所述应用程序运行时,获取所述应用程序中运行的目标模块标识信息包括:
当检测到运行所述应用程序时,调取所述应用程序的日志表,查看所述日志表中记载的所述应用程序运行的执行代码;
确定所述执行代码所属的目标模块,并获取到所述目标模块的名称信息,其中,所述目标模块至少为一个;
将所述目标模块的名称信息作为目标模块标识信息。
可选的,所述根据所述应用程序的当前版本信息,获取服务器中的差异文件信息包括:
当获取到所述应用程序的当前版本信息时,向服务器发送搜索请求,搜索请求用于搜索所述当前版信息对应的待升级版本信息;
在接收到所述服务器发送所述应用程序的待升级版本信息时,启动预置计算程序;
根据所述预置计算程序,获取所述待升级版本信息与所述应用程序当前版本信息之间的差异文件信息。
可选的,所述根据所述预置计算程序,获取所述待升级版本信息与所述应用程序当前版本信息之间的差异文件信息包括:
当启动所述预置计算程序时,计算出所述应用程序的当前版本中各个模块文件的校验值以及待升级版本中各个模块文件的校验值;
当所述当前版本中模块文件的校验值与对应的所述待升级版本中模块文件的校验值不一致时,确定所述待升级版本中的模块文件为差异文件;
将所述差异文件的信息作为并获取所述差异文件信息。
可选的,所述当所述差异文件信息包含所述目标模块标识信息时,向服务器发送下载请求,下载所述目标模块标识信息对应的增量文件包括:
当获取到所述差异文件信息时,读取所述差异文件信息的各个模块的名称信息;
在所述名称信息与所述目标模块标识信息相同时,向服务器发送下载请求,下载所述差异文件中所述名称信息对应的模块文件,并将下载的所述模块文件定义为增量文件。
可选的,所述将下载的所述增量模块文件替换所述目标模块标识信息对应的目标模块文件,生成新应用程序并运行所述新应用程序包括:
在获取到所述增量模块文件时,将所述增量模块文件中的源代码覆盖到所述应用程序的源码中进行增量翻译,以生成增量代码;
将所述增量代码替换所述目标模块标识信息对应的目标模块文件的源代码并生成新应用程序包;
启动签名机制,使用统一的签名文件对所述新应用程序包进行签名,触发所述新应用程序重新运行。
可选的,所述在接收到用户的启动指令时,获取所述启动指令对应的应用程序的当前版本信息包括:
当接收到语音启动指令或操作启动指令时,启动所述语音启动指令或所述操作启动指令对应的应用程序;
在启动所述应用程序时,获取所述应用程序的当前版本信息。
此外,为实现上述目的,本发明还提供一种应用程序升级的装置,所述应用程序升级的装置包括:
第一获取单元,用于在接收到用户的启动指令时,获取所述启动指令对应的应用程序的当前版本信息;
第二获取单元,用于当检测到所述应用程序运行时,获取所述应用程序中运行的目标模块标识信息;
第三获取单元,用于根据所述应用程序的当前版本信息,获取服务器中的差异文件信息,其中,所述差异文件信息为终端的当前版本信息与服务器中的待升级版本信息的文件差异;
下载单元,用于当所述差异文件信息包含所述目标模块标识信息时,向服务器发送下载请求,下载所述目标模块标识信息对应的增量模块文件;
生成运行单元,用于将下载的所述增量模块文件替换所述目标模块标识信息对应的目标模块文件,生成新应用程序并运行所述新应用程序。
可选的,所述第二获取单元具体用于:
当检测到运行所述应用程序时,调取所述应用程序的日志表,查看所述日志表中记载的所述应用程序运行的执行代码;
确定所述执行代码所属的目标模块,并获取到所述目标模块的名称信息,其中,所述目标模块至少包为一个;
将所述目标模块的名称信息作为目标模块标识信息。
可选的,所述第三获取单元具体用于:
搜索单元,当获取到所述应用程序的当前版本信息时,向服务器发送搜索请求,搜索请求用于搜索所述当前版信息对应的待升级版本信息;
启动单元,在接收到所述服务器发送所述应用程序的待升级版本信息时,启动预置计算程序;
计算单元,根据所述预置计算程序,获取所述待升级版本信息与所述应用程序当前版本信息之间的差异文件信息。
可选的,所述计算单元具体用于:
当启动所述预置计算程序时,计算出所述应用程序的当前版本中各个模块文件的校验值以及待升级版本中各个模块文件的校验值;
当所述当前版本中模块文件的校验值与对应的所述待升级版本中模块文件的校验值不一致时,确定所述待升级版本中的模块文件为差异文件;
将所述差异文件的信息作为获取所述差异文件信息。
可选的,所述下载单元具体用于:
当获取到所述差异文件时信息,读取所述差异文件信息的各个模块的名称信息;
在所述名称信息与所述目标模块标识信息相同时,向服务器发送下载请求,下载所述差异文件中与所述名称信息对应的模块文件,并将下载的所述模块文件定义为增量文件。
可选的,所述生成运行单元具体用于:
在获取到所述增量模块文件时,将所述增量模块文件中的源代码覆盖到所述应用程序的源码中进行增量翻译,,以生成增量代码;
将所述增量代码替换所述目标模块标识信息对应的目标模块文件的源代码并生成新应用程序包;
启动签名机制,使用统一的签名文件对所述新应用程序包进行签名,触发所述新应用程序重新运行。
可选的,所述第一获取单元具体用于:
当接收到语音启动指令或操作启动指令时,启动所述语音启动指令或所述操作启动指令对应的应用程序;
在启动所述应用程序时,获取所述应用程序的当前版本信息。
此外,为实现上述目的,本发明还提供一种终端,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用程序升级程序,所述应用程序升级程序被所述处理器执行时实现如上发明所述应用程序升级的方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有应用程序升级程序,所述应用程序升级程序被处理器执行时实现如上发明所述的应用程序升级方法的步骤。
本发明实施例提出的一种应用程序升级的方法、装置、终端及计算机存储介质,通过在接收到用户的启动指令时,获取所述启动指令对应的应用程序的当前版本信息;当检测到所述应用程序运行时,获取所述应用程序中运行的目标模块标识信息;根据所述应用程序的当前版本信息,获取服务器中的差异文件信息,其中,所述差异文件信息为终端的当前版本信息与服务器中的待升级版本信息的文件差异;当所述差异文件信息包含所述目标模块标识信息时,向服务器发送下载请求,下载所述目标模块标识信息对应的增量模块文件;将下载的所述增量模块文件替换所述目标模块标识信息对应的目标模块文件,生成新应用程序并运行所述新应用程序,实现了精确的获取应用程序中需要升级的模块对象,并减少终端数据流量和网络带宽资源、减少升级时间。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本发明一种应用程序升级的方法的第一实施例的流程示意图;
图3为本发明一种应用程序升级的方法的第二实施例的流程示意图;
图4为本发明一种应用程序升级的方法的第三实施例的流程示意图;
图5为本发明一种应用程序升级的方法的第四实施例的流程示意图;
图6为图5中S33的步骤的细化流程示意图;
图7为本发明一种应用程序升级的方法的第五实施例的流程示意图;
图8为本发明一种应用程序升级的方法的第六实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:在接收到用户的启动指令时,获取所述启动指令对应的应用程序的当前版本信息;当检测到所述应用程序运行时,获取所述应用程序中运行的目标模块标识信息;根据所述应用程序的当前版本信息,获取服务器中的差异文件信息,其中,所述差异文件信息为终端的当前版本信息与服务器中的待升级版本信息的文件差异;当所述差异文件信息包含所述目标模块标识信息时,向服务器发送下载请求,下载所述目标模块标识信息对应的增量模块文件;将下载的所述增量模块文件替换所述目标模块标识信息对应的目标模块文件,生成新应用程序并运行所述新应用程序
由于现有技术中应用程序升级,造成一些不使用的模块也升级,不仅浪费带宽资源和终端流量,还延长升级时间的技术问题。
本发明提供一种解决方案,使终端精确的获取应用程序中需要升级的模块对象,并减少终端数据流量和网络带宽资源、减少升级时间。
如图1所示,图1为本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例终端可以是智能手机、平板电脑、电子书阅读器、便携计算机等可移动式终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及应用程序升级程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的应用程序升级程序,并执行以下操作:
在接收到用户的启动指令时,获取启动指令对应的应用程序的当前版本信息;
当检测到应用程序运行时,获取应用程序中运行的目标模块标识信息;
根据应用程序的当前版本信息,获取服务器中的差异文件信息,其中,所述差异文件信息为终端的当前版本信息与服务器中的待升级版本信息的文件差异;
当差异文件信息包含目标模块标识信息时,向服务器发送下载请求,下载目标模块标识信息对应的增量模块文件;
将下载的增量模块文件替换目标模块标识信息对应的目标模块文件,生成新应用程序并运行新应用程序。
进一步地,处理器1001可以调用存储器1005中存储的应用程序升级程序,还执行以下操作:
当检测到运行所述应用程序时,调取应用程序的日志表,查看日志表中记载的应用程序运行的执行代码;
确定执行代码所属的目标模块,并获取到目标模块的名称信息,其中,目标模块至少为一个;
将目标模块的名称信息作为目标模块标识信息。
进一步地,处理器1001可以调用存储器1005中存储的应用程序升级程序,还执行以下操作:
当获取到应用程序的当前版本信息时,向服务器发送搜索请求,搜索请求用于搜索所述当前版信息对应的待升级版本信息;
在接收到服务器发送所述应用程序的待升级版本信息时,启动预置计算程序;
根据预置计算程序,获取待升级版本信息与应用程序当前版本信息之间的差异文件信息。
进一步地,处理器1001可以调用存储器1005中存储的应用程序升级程序,还执行以下操作:
当启动预置计算程序时,计算出应用程序的当前版本中各个模块文件的校验值以及待升级版本中各个模块文件的校验值;
当当前版本中模块文件的校验值与对应的待升级版本中模块文件的校验值不一致时,确定待升级版本中的模块文件为差异文件;
将所述差异文件的信息作为所述差异文件信息。
进一步地,处理器1001可以调用存储器1005中存储的应用程序升级程序,还执行以下操作:
当获取到差异文件信息时,读取差异文件信息的各个模块的名称信息;
在名称信息与目标模块标识信息相同时,向服务器发送下载请求,下载差异文件中名称信息对应的模块文件,并将下载的模块文件定义为增量文件。
进一步地,处理器1001可以调用存储器1005中存储的应用程序升级程序,还执行以下操作:
在获取到增量模块文件时,将增量模块文件中的源代码覆盖到应用程序的源码中进行增量翻译,以生成增量代码;
将所述增量代码替换目标模块标识信息对应的目标模块文件的源代码并生成新应用程序包;
启动签名机制,使用统一的签名文件对新应用程序包进行签名,触发新应用程序重新运行。
进一步地,处理器1001可以调用存储器1005中存储的应用程序升级程序,还执行以下操作:
当接收到语音启动指令或操作启动指令时,启动语音启动指令或操作启动指令对应的应用程序;
在启动应用程序时,获取应用程序的当前版本信息。
参照图2,本发明一种应用程序升级的方法的第一实施例,该一种应用程序升级的方法方法包括:
步骤S10,在接收到用户的启动指令时,获取启动指令对应的应用程序的当前版本信息;
在终端接收到用户的启动指令时,启动指令可以是用户的语音启动指令也可以是用户的操作启动指令等,终端根据用户的语音指令或操作指令启动对应的应用程序,获取应用程序当前的版本信息,例如,版本信息为2.0、2.1等,其中应用程序可以是系统应用程序可以是第三方应用程序。
步骤S20,当检测到应用程序运行时,获取应用程序中运行的目标模块标识信息;
当终端启动应用程序后,应用程序进行正常的运行。应用程序包括不同的程序模块,例如,接受模块、查询模块、搜索模块等。当应用程序运行时,终端检测到应用程序中运行的模块,获取运行的模块标识信息,模块标识信息包括模块的名称信息以及模块对应源代码信息,或者模块的参数信息等。
步骤S30,根据应用程序的当前版本信息,获取服务器中的差异文件信息,其中,所述差异文件信息为终端的当前版本信息与服务器中的待升级版本信息的文件差异;
当终端获取到应用程序的当前版本信息时,向服务器发送搜索请求。搜索请求为搜索服务器中是否有应用程序的待升级版本信息,当在服务器中搜索到应用程序的待升级版本信息时,将服务器中应用程序的待升级版本信息作为待升级版本,并获取待升级版本中各个文件信息。其中文件信息包括不同的文件名称以及文件中的源代码。当终端获取到待升级中各个文件的源代码信息,将待升级版本中的各个文件与当前版本中的各个文件进行对比,通过各个文件中的源代码对比,获取到的源代码不同或当前版本中没有的源代码时,将对应的文件作为待升级版本与当前版本之间的差异文件,并获取版本差异文件包的模块信息、代码信息等。
步骤S40,当差异文件信息包含目标模块标识信息时,向服务器发送下载请求,下载目标模块标识信息对应的增量模块文件;
当终端获取到版本差异文件中的目标模块标识信息时,判断版本差异文件中的目标模块标识信息是否为应用程序中运行的目标模块标识信息。当版本差异文件中的目标模块标识信息为应用程序中运行的目标模块标识信息时,终端向服务器发送下载目标模块标识信息对应的版本文件的请求。当目标模块文件为多个时,一一与应用程序中运行的模块标识信息进行对比,将目标模块标识信息对应的增量文件一一进行下载。
步骤S50,将下载的增量模块文件替换目标模块标识信息对应的目标模块文件,生成新应用程序并运行新应用程序。
当终端获取到目标模块标识信息对应的增量文件时,将增量文件替换应用程序当前版本文件中的对应的目标模块文件,生成新的应用程序文件包通过运行替换后的新的应用程序文件包,完成应用程序的升级。
在本实施例中,终端在接收到用户发送的启动指令时,获取启动指令对应的应用程序的当前版本信息,应用程序在运行时,检测应用程序中运行的目标模块标识信息,根据应用程序的当前版本信息,获取服务器中的差异文件信息,当差异文件中包含有目标模块标识信息时,向服务器放轻松下载请求,下载该目标模块标识信息对应的增量文件,终端将下载好的增量文件替换应用程序中目标模块标识信息对应的目标模块文件,生成新的英欧永程序帮运行该新的应用程序,精确的获取应用程序中需要升级的模块对象,并减少终端数据流量和网络带宽资源、减少升级时间。
进一步的,参照图3,为本发明一种应用程序升级的方法的第二实施例,基于上述图2所示的实施例,步骤S20包括:
步骤S21,当检测到运行应用程序时,调取应用程序的日志表,查看日志表中记载的应用程序运行的执行代码;
步骤S22,确定执行代码所属的目标模块,并获取到目标模块的名称信息,其中,所述目标模块至少为一个;
步骤S23,将目标模块的名称信息作为目标模块标识信息。
当终端启动应用程序后,应用程序在运行过程中,终端调取应用称的日志表,日志表中记载有应用程序那些代码正在运行以及运行过的代码时间等。终端检测到应用程序中运行的执行代码,运行的执行代码可以是一段也可以是多段,终端基于运行的执行代码来确定该执行代码所属的模块,将执行代码所属的模块确定为目标模块。当终端获取到执行代码对应的目标模块时,获取到目标模块的名称信息。其中,代码与关联代码,终端在日志表中查看执行代码时,获取执行代码的注释代码,当注释代码中记载该执行代码为关联代码时,将关联的模块也确定为目标模块。在获取到目标模块的名称信息是,将目标模块的名称信息作为目标模块标识信息。
在本实施例中,终端在检测到应用程序在运行时,调取应用程序中的日志表,查看日志表中记载的执行代码,确定执行代码所属的目标模块,IGN获取到该目标模块的名称信息,通过查看日志表来获取到正在运行的执行代码,并确定该执行代码所属的目标模块,精确的获取应用程序中需要升级的模块对象。
参照图4,图4为本发明一种应用程序升级的方法第三实施例,基于上述图2所示的实施例,步骤S30包括:
步骤S31,当获取到应用程序的当前版本信息时,向服务器发送搜索请求,搜索请求用于搜索所述当前版信息对应的待升级版本信息;
步骤S32,在接收到服务器发送应用程序的待升级版本信息时,启动预置计算程序;
步骤S33,根据预置计算程序,获取待升级版本信息与应用程序当前版本信息之间的差异文件信息。
当终端获取到应用程序的当前版本信息时,向服务器发送搜索请求,根据搜索请求获取到服务器反馈的应用程序的最新版本信息,例如,终端获取到应用程序当前版本的名称信息,根据名称信息向服务器发送搜索请求,搜索到服务器中名称相同的应用程序时,比较服务器中的应用程序的版本号是否高于当前版本号。当版本号高于当前版本号时,将服务器中的应用程序版本作为应用程序的待升级版本。当终端获取到待升级版本中各个模块文件信息时,启动预置的CRC32计算程序,CRC32:CRC本身是“冗余校验码”的意思,CRC32则表示会产生一个32bit(8位十六进制数)的校验值;由于CRC32产生校验值时源数据块的每一个bit(位)都参与了计算,所以数据块中即使只有一位发生了变化,也会得到不同的CRC32值。根据预置的CRC32计算程序,计算出当前版本中各个模块文件的CRC值以及待升级版本中各个模块文件的CRC值。终端根据获取到的当前版本中各个模块文件的CRC值以及待升级版本中各个模块文件的CRC值,将当前版本中各个模块文件的CRC值与待升级版本中各个模块文件的CRC值进行对比,当前版本中各个模块文件的CRC值与待升级版本中各个模块文件的CRC值不一致时,判定待升级版本中CRC值对应的模块文件为差异文件,或者,当待升级版本中的模块文件CRC值没有找到当前版本中的模块文件的CRC值,判定该文件为差异文件。当判定当前模块文件为差异文件时,获取差异文件中的模块名称信息或源代码参数信息。
在本实施例中,终端在获取到应用程序的版本信息时,向服务器发送搜索请求,当获取到服务器反馈的应用程序的最新版本信息,启动预置的CRC32计算程序,计算出应用程序的当前版本与服务器中的待升级版本之间的差异文件信息,通过预置的CRC32,可以快速的计算出应用程序的当前版本与服务器中的待升级版本之间的差异文件信息。
参照图5,图5为图4中S33的步骤的细化流程示意图,基于上述图4所示的实施例,步骤S33包括:
步骤S331,当启动预置计算程序时,计算出应用程序的当前版本中各个模块文件的校验值以及待升级版本中各个模块文件的校验值;
步骤S332,当当前版本中模块文件的校验值与对应的待升级版本中模块文件的校验值不一致时,确定待升级版本中的模块文件为差异文件;
步骤S333,将差异文件的信息作为差异文件信息。
终端启动预置的CRC32计算程序,CRC32:CRC本身是“冗余校验码”的意思,CRC32则表示会产生一个32bit(8位十六进制数)的校验值;由于CRC32产生校验值时源数据块的每一个bit(位)都参与了计算,所以数据块中即使只有一位发生了变化,也会得到不同的CRC32值。根据预置的CRC32计算程序,压缩当前版本中任意一个模块文件中的字节,具体为二进制除法就为:
1110=这个余数也就是所谓的CRC值,通常又被称为校验值。
计算出当前版本中各个模块文件的CRC值以及待升级版本中各个模块文件的CRC值。终端根据获取到的当前版本中各个模块文件的CRC值以及待升级版本中各个模块文件的CRC值,将当前版本中各个模块文件的CRC值与待升级版本中各个模块文件的CRC值进行对比,当前版本中各个模块文件的CRC值与待升级版本中各个模块文件的CRC值不一致时,判定待升级版本中CRC值对应的模块文件为差异文件,或者,当待升级版本中的模块文件CRC值没有找到当前版本中的模块文件的CRC值,判定该文件为差异文件。当判定当前模块文件为差异文件时,获取差异文件中的模块名称信息或源代码参数信息,将获取到的差异文件中的模块名称信息或源代码参数信息作为当前版本信息与待升级版本信息的差异文件信息。
在本实施例中,终端在启动预置的CRC32计算程序,计算出应用程序的当前版本中各个模块文件的CRC值以及待升级版本中各个模块文件的CRC值,在应用程序版本中模块文件的CRC值与对应的待升级版本中模块文件的CRC值不一致时,确定待升级版本中的模块文件为差异文件,预置的CRC32计算程序,可以快速的计算出应用程序的当前版本中各个模块的CRC值与服务器中的待升级版本中各个模块的CRC值,从而得到两者之间的差异文件信息。
进一步的,参照图6,为本发明一种应用程序升级的方法的第四实施例,基于上述图2所示的实施例,步骤S40包括:
步骤S41,当获取到差异文件信息时,读取差异文件信息的各个模块的名称信息;
步骤S42,在名称信息与目标模块标识信息相同时,向服务器发送下载请求,下载差异文件中名称信息对应的模块文件,并将下载的模块文件定义为增量文件。
当终端获取到差异文件时,遍历差异文件,获取差异文件中各个中的模块名称信息。当得到的模块名称为与应用程序中运行的目标模块名称相同时,终端向服务下载该目标模块对应的增量文件。例如,当遍历差异文件包得到差异问文件的模块名称为搜索模块,当应用程序中运行的模块的名称也为搜索模块时,终端向服务器下载该差异文件包。
在本实施例中,当终端获取到差异文件时,遍历差异文件,获取差异文件中各个中的模块名称信息。当得到的模块名称为与应用程序中运行的目标模块名称相同时,终端向服务下载该目标模块对应的增量文件。从而减少终端数据流量和网络带宽资源、减少升级时间。
进一步的,参照图7,为本发明一种应用程序升级的方法的第五实施例,基于上述图2所示的实施例,步骤S50包括:
步骤S51,在获取到增量模块文件时,将增量模块文件中的源代码覆盖到应用程序的源码中进行增量翻译,以生成增量代码;
步骤S52,将增量代码替换目标模块标识信息对应的目标模块文件的源代码并生成新应用程序包;
步骤S53,启动签名机制,使用统一的签名文件对新应用程序包进行签名,触发新应用程序重新运行。
终端在获取到增量模块文件时,将增量模块文件中的源代码覆盖到应用程序的源码中进行增量翻译,生成增量代码。将生成的增量代码替换目标模块信息对应的目标模块文件中的源代码并生成新应用程序包,启动签名机制,使用统一的签名文件对新应用程序包进行签名,触发新应用程序重新运行,具体实施时,首先取第一个增量模块代码的源码差异文件覆盖到应用程序源码中进行增量编译,编译完成后再取下一个增量模块代码再进行增量编译生成下一个目标模升级文件,直到所有目标模块升级文件生成为止。所有的源码差异文件是基于应用程序源码中修改的。增量编译只会编译相对于上次系统编译更新过的系统源码,可以极大的减少编译时间。
在本实施例中,终端在获取到增量模块文件时,将增量模块文件中的源代码覆盖到应用程序的源码中进行增量翻译,替换目标模块文件中的源代码并生成新应用程序包,启动签名机制,使用统一的签名文件对新应用程序包进行签名,触发新应用程序重新运行,增量编译只会编译相对于上次系统编译更新过的系统源码,可以极大的减少编译时间。
进一步的,参照图8,为本发明一种应用程序升级的方法的第六实施例,基于上述图2所示的实施例,步骤S10包括:
步骤S11,当接收到语音启动指令或操作启动指令时,启动语音启动指令或操作启动指令对应的应用程序;
步骤S12,在启动应用程序时,获取应用程序的当前版本信息。
终端在接收到用户的启动指令时,启动指令可以是语音指令可以时操作启动指令等,终端根据用户的语音指令或操作指令启动指令对应的应用程序,获取应用程序当前的版本信息,例如,版本信息为2.0、2.1等,其中应用程序可以是系统应用程序可以是第三方应用程序。
在本实施例中,终端在接收到用户的启动指令时,启动指令可以是语音指令可以时操作启动指令等,终端根据用户的语音指令或操作指令启动指令对应的应用程序,获取应用程序当前的版本信息。
此外,本发明实施例还提出一种终端,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用程序升级程序,所述应用程序升级程序被所述处理器执行时实现如上实施例的应用程序升级的方法的步骤。
此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质上存储有应用程序升级程序,所述应用程序升级程序被处理器执行时实现上实施例的应用程序升级方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种应用程序升级的方法,其特征在于,所述应用程序升级的方法包括:
在接收到用户的启动指令时,获取所述启动指令对应的应用程序的当前版本信息;
当检测到所述应用程序运行时,获取所述应用程序中运行的目标模块标识信息;
根据所述应用程序的当前版本信息,获取服务器中的差异文件信息,其中,所述差异文件信息为终端的当前版本信息与服务器中的待升级版本信息的文件差异;
当所述差异文件信息包含所述目标模块标识信息时,向服务器发送下载请求,下载所述目标模块标识信息对应的增量模块文件;
将下载的所述增量模块文件替换所述目标模块标识信息对应的目标模块文件,生成新应用程序并运行所述新应用程序。
2.如权利要求1所述的应用程序升级的方法,其特征在于,所述当检测到所述应用程序运行时,获取所述应用程序中运行的目标模块标识信息包括:
当检测到运行所述应用程序时,调取所述应用程序的日志表,查看所述日志表中记载的所述应用程序运行的执行代码;
确定所述执行代码所属的目标模块,并获取到所述目标模块的名称信息,其中,所述目标模块至少为一个;
将所述目标模块的名称信息作为目标模块标识信息。
3.如权利要求1所述的应用程序升级的方法,其特征在于,所述根据所述应用程序的当前版本信息,获取服务器中的差异文件信息包括:
当获取到所述应用程序的当前版本信息时,向服务器发送搜索请求,搜索请求用于搜索所述当前版本信息对应的待升级版本信息;
在接收到所述服务器发送所述应用程序的待升级版本信息时,启动预置计算程序;
根据所述预置计算程序,获取所述待升级版本信息与所述应用程序当前版本信息之间的差异文件信息。
4.如权利要求3所述的应用程序升级的方法,其特征在于,所述根据所述预置计算程序,获取所述待升级版本信息与所述应用程序当前版本信息之间的差异文件信息包括:
当启动所述预置计算程序时,计算出所述应用程序的当前版本中各个模块文件的校验值以及待升级版本中各个模块文件的校验值;
当所述当前版本中模块文件的校验值与对应的所述待升级版本中模块文件的校验值不一致时,确定所述待升级版本中的模块文件为差异文件;
将所述差异文件的信息作为所述差异文件信息。
5.如权利要求4所述的应用程序升级的方法,其特征在于,所述当所述差异文件信息包含所述目标模块标识信息时,向服务器发送下载请求,下载所述目标模块标识信息对应的增量文件包括:
当获取到所述差异文件信息时,读取所述差异文件信息的各个模块的名称信息;
在所述名称信息与所述目标模块标识信息相同时,向服务器发送下载请求,下载所述差异文件中所述名称信息对应的模块文件,并将下载的所述模块文件定义为增量文件。
6.如权利要求1所述的应用程序升级的方法,其特征在于,所述将下载的所述增量模块文件替换所述目标模块标识信息对应的目标模块文件,生成新应用程序并运行所述新应用程序包括:
在获取到所述增量模块文件时,将所述增量模块文件中的源代码覆盖到所述应用程序的源代码中进行增量翻译,以生成增量代码;
将所述增量代码替换所述目标模块标识信息对应的目标模块文件的源代码并生成新应用程序包;
启动签名机制,使用统一的签名文件对所述新应用程序包进行签名,触发所述新应用程序重新运行。
7.如权利要求1所述的应用程序升级的方法,其特征在于,所述在接收到用户的启动指令时,获取所述启动指令对应的应用程序的当前版本信息包括:
当接收到语音启动指令或操作启动指令时,启动所述语音启动指令或所述操作启动指令对应的应用程序;
在启动所述应用程序时,获取所述应用程序的当前版本信息。
8.一种应用程序升级的装置,其特征在于,所述应用程序升级的装置包括:
第一获取单元,用于在接收到用户的启动指令时,获取所述启动指令对应的应用程序的当前版本信息;
第二获取单元,用于当检测到所述应用程序运行时,获取所述应用程序中运行的目标模块标识信息;
第三获取单元,用于根据所述应用程序的当前版本信息,获取服务器中的差异文件信息,其中,所述差异文件信息为终端的当前版本信息与服务器中的待升级版本信息的文件差异;
下载单元,用于当所述差异文件信息包含所述目标模块标识信息时,向服务器发送下载请求,下载所述目标模块标识信息对应的增量模块文件;
生成运行单元,用于将下载的所述增量模块文件替换所述目标模块标识信息对应的目标模块文件,生成新应用程序并运行所述新应用程序。
9.一种终端,其特征在于,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用程序升级程序,所述应用程序升级程序被所述处理器执行时实现如权利要求1至7中任一项所述应用程序升级的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有应用程序升级程序,所述应用程序升级程序被处理器执行时实现如权利要求1至7中任一项所述的应用程序升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910660053.9A CN110377321A (zh) | 2019-07-22 | 2019-07-22 | 应用程序升级的方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910660053.9A CN110377321A (zh) | 2019-07-22 | 2019-07-22 | 应用程序升级的方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110377321A true CN110377321A (zh) | 2019-10-25 |
Family
ID=68254583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910660053.9A Pending CN110377321A (zh) | 2019-07-22 | 2019-07-22 | 应用程序升级的方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110377321A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764805A (zh) * | 2019-10-28 | 2020-02-07 | 腾讯科技(深圳)有限公司 | 客户端无感升级的方法、装置、终端及存储介质 |
CN111158716A (zh) * | 2019-12-20 | 2020-05-15 | 中国平安财产保险股份有限公司 | 版本升级调用方法、装置、计算机系统及可读存储介质 |
CN111158725A (zh) * | 2019-12-30 | 2020-05-15 | 上海达梦数据库有限公司 | 程序升级方法、装置、终端及存储介质 |
CN111611003A (zh) * | 2020-05-26 | 2020-09-01 | 网神信息技术(北京)股份有限公司 | 离线升级方法、装置、电子设备和计算机可读存储介质 |
CN111913733A (zh) * | 2020-06-09 | 2020-11-10 | 武汉中科医疗科技工业技术研究院有限公司 | 制作自动升级包方法、装置、计算机设备和存储介质 |
CN112114856A (zh) * | 2020-09-15 | 2020-12-22 | 北京达佳互联信息技术有限公司 | 一种热更新方法及装置 |
CN112256301A (zh) * | 2020-10-19 | 2021-01-22 | 平安科技(深圳)有限公司 | 应用在线升级方法、装置、设备及计算机可读存储介质 |
CN112579126A (zh) * | 2020-12-21 | 2021-03-30 | 杭州米络星科技(集团)有限公司 | 软件开发平台及软件开发方法 |
CN112860284A (zh) * | 2019-11-12 | 2021-05-28 | 深圳怡化电脑股份有限公司 | 设备远程升级的sp升级包生成方法、装置及计算机设备 |
CN112925551A (zh) * | 2021-02-08 | 2021-06-08 | 北京罗克维尔斯科技有限公司 | 对象升级方法、装置、设备和存储介质 |
CN113535203A (zh) * | 2021-07-06 | 2021-10-22 | 海南视联通信技术有限公司 | 服务器升级方法、装置、设备及存储介质 |
CN113778510A (zh) * | 2021-08-17 | 2021-12-10 | 珠海西山居移动游戏科技有限公司 | 应用程序多版本维护方法、装置及可读存储介质 |
CN114253591A (zh) * | 2021-12-08 | 2022-03-29 | 杭州米络星科技(集团)有限公司 | 增量数据获取方法、装置、电子设备及可读存储介质 |
CN114691175A (zh) * | 2022-04-22 | 2022-07-01 | 麒麟合盛网络技术股份有限公司 | 一种应用更新方法、装置和系统 |
CN116088926A (zh) * | 2023-01-10 | 2023-05-09 | 睿智合创(北京)科技有限公司 | 一种决策组件版本管理方法 |
CN117055937A (zh) * | 2023-07-18 | 2023-11-14 | 深圳先锋居善科技有限公司 | 一种应用程序的更新方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095838A (zh) * | 2013-01-16 | 2013-05-08 | 福州博远无线网络科技有限公司 | 一种通过下载增量升级包来升级安卓智能手机软件的方法 |
CN103136013A (zh) * | 2011-12-01 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
CN103428188A (zh) * | 2012-05-25 | 2013-12-04 | 北京小米科技有限责任公司 | 一种文件更新方法、装置及相关设备 |
CN104202471A (zh) * | 2014-08-22 | 2014-12-10 | 惠州Tcl移动通信有限公司 | 基于移动终端的固件升级处理方法、系统及移动终端 |
CN106302753A (zh) * | 2016-08-18 | 2017-01-04 | 福建天泉教育科技有限公司 | 客户端程序增量更新的方法及系统 |
CN106911758A (zh) * | 2015-12-23 | 2017-06-30 | 北京奇虎科技有限公司 | 文件获取系统 |
CN109697071A (zh) * | 2017-10-24 | 2019-04-30 | 腾讯科技(深圳)有限公司 | 安装包合成方法、装置、终端及存储介质 |
-
2019
- 2019-07-22 CN CN201910660053.9A patent/CN110377321A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136013A (zh) * | 2011-12-01 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
CN103428188A (zh) * | 2012-05-25 | 2013-12-04 | 北京小米科技有限责任公司 | 一种文件更新方法、装置及相关设备 |
CN103095838A (zh) * | 2013-01-16 | 2013-05-08 | 福州博远无线网络科技有限公司 | 一种通过下载增量升级包来升级安卓智能手机软件的方法 |
CN104202471A (zh) * | 2014-08-22 | 2014-12-10 | 惠州Tcl移动通信有限公司 | 基于移动终端的固件升级处理方法、系统及移动终端 |
CN106911758A (zh) * | 2015-12-23 | 2017-06-30 | 北京奇虎科技有限公司 | 文件获取系统 |
CN106302753A (zh) * | 2016-08-18 | 2017-01-04 | 福建天泉教育科技有限公司 | 客户端程序增量更新的方法及系统 |
CN109697071A (zh) * | 2017-10-24 | 2019-04-30 | 腾讯科技(深圳)有限公司 | 安装包合成方法、装置、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
苏刚 等: "《Visua Basic程序设计》", 31 August 2012, 哈尔滨工业大学出版社 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764805A (zh) * | 2019-10-28 | 2020-02-07 | 腾讯科技(深圳)有限公司 | 客户端无感升级的方法、装置、终端及存储介质 |
CN110764805B (zh) * | 2019-10-28 | 2024-01-23 | 腾讯科技(深圳)有限公司 | 客户端无感升级的方法、装置、终端及存储介质 |
CN112860284A (zh) * | 2019-11-12 | 2021-05-28 | 深圳怡化电脑股份有限公司 | 设备远程升级的sp升级包生成方法、装置及计算机设备 |
CN112860284B (zh) * | 2019-11-12 | 2024-05-10 | 深圳怡化电脑股份有限公司 | 设备远程升级的sp升级包生成方法、装置及计算机设备 |
CN111158716A (zh) * | 2019-12-20 | 2020-05-15 | 中国平安财产保险股份有限公司 | 版本升级调用方法、装置、计算机系统及可读存储介质 |
CN111158725A (zh) * | 2019-12-30 | 2020-05-15 | 上海达梦数据库有限公司 | 程序升级方法、装置、终端及存储介质 |
CN111158725B (zh) * | 2019-12-30 | 2024-01-23 | 上海达梦数据库有限公司 | 程序升级方法、装置、终端及存储介质 |
CN111611003A (zh) * | 2020-05-26 | 2020-09-01 | 网神信息技术(北京)股份有限公司 | 离线升级方法、装置、电子设备和计算机可读存储介质 |
CN111913733A (zh) * | 2020-06-09 | 2020-11-10 | 武汉中科医疗科技工业技术研究院有限公司 | 制作自动升级包方法、装置、计算机设备和存储介质 |
CN112114856A (zh) * | 2020-09-15 | 2020-12-22 | 北京达佳互联信息技术有限公司 | 一种热更新方法及装置 |
CN112256301A (zh) * | 2020-10-19 | 2021-01-22 | 平安科技(深圳)有限公司 | 应用在线升级方法、装置、设备及计算机可读存储介质 |
CN112579126A (zh) * | 2020-12-21 | 2021-03-30 | 杭州米络星科技(集团)有限公司 | 软件开发平台及软件开发方法 |
CN112925551A (zh) * | 2021-02-08 | 2021-06-08 | 北京罗克维尔斯科技有限公司 | 对象升级方法、装置、设备和存储介质 |
CN113535203A (zh) * | 2021-07-06 | 2021-10-22 | 海南视联通信技术有限公司 | 服务器升级方法、装置、设备及存储介质 |
CN113535203B (zh) * | 2021-07-06 | 2024-06-07 | 海南视联通信技术有限公司 | 服务器升级方法、装置、设备及存储介质 |
CN113778510A (zh) * | 2021-08-17 | 2021-12-10 | 珠海西山居移动游戏科技有限公司 | 应用程序多版本维护方法、装置及可读存储介质 |
CN114253591A (zh) * | 2021-12-08 | 2022-03-29 | 杭州米络星科技(集团)有限公司 | 增量数据获取方法、装置、电子设备及可读存储介质 |
CN114691175A (zh) * | 2022-04-22 | 2022-07-01 | 麒麟合盛网络技术股份有限公司 | 一种应用更新方法、装置和系统 |
CN116088926A (zh) * | 2023-01-10 | 2023-05-09 | 睿智合创(北京)科技有限公司 | 一种决策组件版本管理方法 |
CN116088926B (zh) * | 2023-01-10 | 2023-10-20 | 睿智合创(北京)科技有限公司 | 一种决策组件版本管理方法 |
CN117055937A (zh) * | 2023-07-18 | 2023-11-14 | 深圳先锋居善科技有限公司 | 一种应用程序的更新方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110377321A (zh) | 应用程序升级的方法、装置、终端及存储介质 | |
US20020169591A1 (en) | Module for developing wireless device applications using an integrated emulator | |
CN111459495B (zh) | 单元测试代码文件生成方法、电子装置及存储介质 | |
CN108845839A (zh) | 应用页面加载方法、装置及计算机可读存储介质 | |
CN111158741A (zh) | 监控业务模块对第三方类库依赖关系变化的方法及装置 | |
CN111563257B (zh) | 数据检测方法及装置、计算机可读介质及终端设备 | |
CN109582907A (zh) | 网页资源完整性的校验方法、装置、设备及可读存储介质 | |
CN112965731B (zh) | 基于Tinker的Flutter热更新方法、装置、设备及存储介质 | |
CN114238948A (zh) | 一种应用程序检测方法、装置、电子设备及存储介质 | |
CN107608663A (zh) | 一种移动应用插件及移动应用的开发方法及装置 | |
CN110659210A (zh) | 一种信息获取方法、装置、电子设备及存储介质 | |
CN107798064A (zh) | 页面处理方法、电子设备及计算机可读存储介质 | |
CN111400102A (zh) | 应用程序的变更监控方法、装置、设备及存储介质 | |
CN111610990B (zh) | 一种应用程序升级的方法、装置和相关系统 | |
CN112181822A (zh) | 一种测试方法和应用程序的启动耗时测试方法 | |
CN112052007A (zh) | 源码调试方法、装置、服务器及存储介质 | |
CN114896161A (zh) | 基于人工智能的文件构造方法、装置、计算机设备及介质 | |
CN114816816A (zh) | 崩溃堆栈信息处理方法、装置、设备及存储介质 | |
CN110826074A (zh) | 一种应用漏洞检测方法、装置和计算机可读存储介质 | |
CN111629200A (zh) | 一种快速检测差分包可靠性的方法、装置及可读存储介质 | |
CN116166907B (zh) | 一种使用WebAssembly和服务页面编译技术开发Web应用的方法及装置 | |
CN112230963A (zh) | 安全漏洞修复的方法、装置、计算机设备和存储介质 | |
CN115454575B (zh) | jar包转换并自动加载的方法、装置、设备及存储介质 | |
CN111488286A (zh) | 一种Android模块独立开发的方法及装置 | |
CN113342353B (zh) | 一种mock数据生成方法和装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191025 |