CN107748668B - 一种应用程序升级的方法及装置 - Google Patents
一种应用程序升级的方法及装置 Download PDFInfo
- Publication number
- CN107748668B CN107748668B CN201711205791.1A CN201711205791A CN107748668B CN 107748668 B CN107748668 B CN 107748668B CN 201711205791 A CN201711205791 A CN 201711205791A CN 107748668 B CN107748668 B CN 107748668B
- Authority
- CN
- China
- Prior art keywords
- upgraded
- application program
- target
- upgrade package
- working directory
- 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.)
- Active
Links
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
Abstract
本发明的实施例公开了一种应用程序升级的方法及装置,该方法接收到待升级应用程序的目标升级包后,将该目标升级包存储到当前未被待升级应用程序占用的空闲工作目录,得到目标工作目录,然后创建调用目标工作目录的目标进程。该方法通过将目标升级包存储到空闲工作目录对应的文件夹中,使得对待升级应用程序的升级过程不影响待升级应用程序的正常运行,实现了对待升级应用程序升级过程中,使得待升级应用程序或者目标应用程序对应的服务不中断,保证对待升级应用程序升级过程中提供的该服务的连续性。
Description
技术领域
本发明实施例涉及网络安全技术领域,尤其是涉及一种应用程序升级的方法及装置。
背景技术
通常,如果需要升级某个应用程序,则下载该应用程序的升级包,若检测该应用程序当前存在活动的进程,则关闭这些活动的进程。删除该应用程序的进程运行时调用的工作目录中的内容,将升级包内的内容存储到该工作目录中。当再次启动该应用程序时,该应用程序的进程就会主动调用该工作目录中的文件。由此,在对应用程序升级时,必须先关闭该应用程序当前运行的进程。
在实现本发明实施例的过程中,发明人发现现有的对应用程序升级前需要关闭该应用程序进程的升级方法,导致升级过程中该应用程序对应的服务中断,无法保证该应用程序对应的服务的连续性。
发明内容
本发明所要解决的技术问题是如何解决现有的对应用程序升级前需要关闭该应用程序进程的升级方法,导致升级过程中该应用程序对应的服务中断,无法保证该应用程序对应的服务的连续性的问题。
针对以上技术问题,本发明的实施例提供了一种应用程序升级的方法,包括:
获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录;
将所述目标升级包存储到与所述空闲工作目录对应的文件夹中,得到目标工作目录;
创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程。
可选地,所述获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录,包括:
接收到对预设应用程序进行更新的最新程序信息后,获取所述预设应用程序的当前程序信息,根据所述最新程序信息和所述当前程序信息判断是否升级所述预设应用程序;
若判断升级所述预设应用程序,则将所述预设应用程序作为所述待升级应用程序,根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行解压,得到所述目标升级包;
根据所述待升级应用程序对应的所述待升级进程获取未被所述待升级进程调用的工作目录,作为所述空闲工作目录。
可选地,所述根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行解压,得到所述目标升级包,包括:
根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行合法性校验;
若所述合法性校验通过,则对所述升级包进行解压,对解压后的升级包进行病毒扫描,若所述病毒扫描的结果为所述升级包不携带病毒,则将解压后的升级包作为所述目标升级包;
其中,所述合法性校验包括对所述升级包进行的版本号码的校验、升级包更新时间的校验和代码签名证书的校验;所述病毒扫描包括通过本地查杀引擎对解压后的升级包进行病毒扫描和通过云查杀对解压后的升级包进行病毒扫描。
可选地,若所述病毒扫描的结果为所述升级包携带病毒,则判断解压后的升级包是否能修复为不携带病毒的安全升级包,若是,则将解压后的升级包修复为所述安全升级包,将所述安全升级包作为所述目标升级包,否则,发出所述升级包携带病毒的提示消息。
可选地,所述创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程,包括:
循环执行目标进程创建操作,直到关闭所有所述待升级进程;
其中,所述目标进程创建操作包括:
判断是否存在正在运行的所述待升级进程,若是,从正在运行的所述待升级进程中获取任一待升级进程作为待停进程;
创建新的进程,将所述目标工作目录配置为所述新的进程调用的工作目录,得到所述目标进程,运行所述目标进程,关闭所述待停进程。
可选地,还包括:
检测到所有所述待升级进程均关闭后,发出所述待升级应用程序升级完成的提示信息。
第二方面,本发明的实施例还提供了一种应用程序升级的装置,包括:
获取模块,用于获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录;
存储模块,用于将所述目标升级包存储到与所述空闲工作目录对应的文件夹中,得到目标工作目录;
创建模块,用于创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程。
可选地,所述获取模块还用于接收到对预设应用程序进行更新的最新程序信息后,获取所述预设应用程序的当前程序信息,根据所述最新程序信息和所述当前程序信息判断是否升级所述预设应用程序;若判断升级所述预设应用程序,则将所述预设应用程序作为所述待升级应用程序,根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行解压,得到所述目标升级包;根据所述待升级应用程序对应的所述待升级进程获取未被所述待升级进程调用的工作目录,作为所述空闲工作目录。
可选地,所述获取模块还用于根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行合法性校验;若所述合法性校验通过,则对所述升级包进行解压,对解压后的升级包进行病毒扫描,若所述病毒扫描的结果为所述升级包不携带病毒,则将解压后的升级包作为所述目标升级包;其中,所述合法性校验包括对所述升级包进行的版本号码的校验、升级包更新时间的校验和代码签名证书的校验;所述病毒扫描包括通过本地查杀引擎对解压后的升级包进行病毒扫描和通过云查杀对解压后的升级包进行病毒扫描。
可选地,所述获取模块还用于若所述病毒扫描的结果为所述升级包携带病毒,则判断解压后的升级包是否能修复为不携带病毒的安全升级包,若是,则将解压后的升级包修复为所述安全升级包,将所述安全升级包作为所述目标升级包,否则,发出所述升级包携带病毒的提示消息。
可选地,所述创建模块还用于循环执行目标进程创建操作,直到关闭所有所述待升级进程;其中,所述目标进程创建操作包括:判断是否存在正在运行的所述待升级进程,若是,从正在运行的所述待升级进程中获取任一待升级进程作为待停进程;创建新的进程,将所述目标工作目录配置为所述新的进程调用的工作目录,得到所述目标进程,运行所述目标进程,关闭所述待停进程。
可选地,还包括提示模块,所述提示模块用于检测到所有所述待升级进程均关闭后,发出所述待升级应用程序升级完成的提示信息。
第三方面,本发明的实施例还提供了一种电子设备,包括:
至少一个处理器、至少一个存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述通信接口用于该电子设备和服务器的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行以上任一项所述的方法。
第四方面,本发明的实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行以上任一项所述的方法。
本发明的实施例提供了一种应用程序升级的方法及装置,该方法接收到待升级应用程序的目标升级包后,将该目标升级包存储到当前未被待升级应用程序占用的空闲工作目录,得到目标工作目录,然后创建调用目标工作目录的目标进程。该方法在创建目标进程的过程中,待升级应用程序对应的待升级进程正常运行。当目标进程运行后,再关闭待升级进程,关闭待升级进程的过程中和关闭待升级进程后,待升级应用程序升级后的目标应用程序对应的目标进程正常运行。由此,该方法通过将目标升级包存储到空闲工作目录对应的文件夹中,使得对待升级应用程序的升级过程不影响待升级应用程序的正常运行,实现了对待升级应用程序升级过程中,使得待升级应用程序或者目标应用程序对应的服务不中断,保证对待升级应用程序升级过程中提供的该服务的连续性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的应用程序升级的方法的流程示意图;
图2是本发明另一个实施例提供的应用程序升级的方法的流程示意图;
图3是本发明另一个实施例提供的服务器中本地查杀的病毒库和文件扫描引擎升级的过程示意图;
图4是本发明另一个实施例提供的应用程序升级的装置的结构框图;
图5是本发明另一个实施例提供的电子设备的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本实施例提供的一种应用程序升级的方法的流程示意图,参见图1,该方法包括:
101:获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录;
102:将所述目标升级包存储到与所述空闲工作目录对应的文件夹中,得到目标工作目录;
103:创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程。
需要说明的是,本实施例提供的方法由服务器或终端(例如,手机或者电脑)执行,例如,由代理服务器(如Nginx)执行。待升级应用程序为将接收到的预设应用程序的最新程序信息(例如,最新更新的预设应用程序的版本信息、预设应用程序的升级包占用的存储空间信息或者预设应用程序的升级包更新时间信息等)和存储在本地的该预设应用程序对应的当前程序信息进行对比后,判断该预设应用程序不是最新版本而需要对其进行升级的应用程序。目标升级包为对该待升级应用程序的升级包进行解压后得到数据包,其中,升级包可以从提供该待升级应用程序对应的升级包的服务器(例如,云端服务器)下载,本实施例对此不做具体限制。
待升级应用程序通过待升级进程提供对应于该待升级应用程序对应的服务。待升级进程运行的过程中调用存储了待升级应用程序的程序(待升级应用程序的引擎对应的主程序)和数据的工作目录。通过待升级进程的配置信息,可以查询到待升级进程调用的工作目录的名称或者调用的工作目录的路径信息,通过该名称或者路径信息可以确定出该待升级进程运行过程中所调用的工作目录。排除被待升级进程运行过程中所调用的工作目录,可以得到未被该待升级进程调用的工作目录,即为空闲工作目录。需要说明的是,工作目录为有序存储的一系列文件夹,待升级进程通过工作目录可以迅速找到需要的程序或者数据。例如,目标升级包中目标应用程序对应的主程序可以存储到目标工作目录中主程序对应的文件夹内,相应的是数据可以存储到用于存储这些数据的文件夹中。
可理解的是,创建进程的过程中,在配置信息中将目标工作目录配置为该进程调用的工作目录即可得到运行过程中调用该目标工作目录的目标进程。当存在至少一个目标进程处于运行状态后,即得到了对该待升级应用程序进行升级的目标应用程序。当存在运行的目标进程后,关闭待升级进程时或关闭待升级进程后,由目标进程提供对应于该待升级应用程序或者目标应用程序对应的服务,因而对待升级应用程序的升级不会中断该待升级应用程序或者目标应用程序对应的服务。
本实施例提供了一种应用程序升级的方法,该方法接收到待升级应用程序的目标升级包后,将该目标升级包存储到当前未被待升级应用程序占用的空闲工作目录,得到目标工作目录,然后创建调用目标工作目录的目标进程。该方法在创建目标进程的过程中,待升级应用程序对应的待升级进程正常运行。当目标进程运行后,再关闭待升级进程,关闭待升级进程的过程中和关闭待升级进程后,待升级应用程序升级后的目标应用程序对应的目标进程正常运行。由此,该方法通过将目标升级包存储到空闲工作目录对应的文件夹中,使得对待升级应用程序的升级过程不影响待升级应用程序的正常运行,实现了对待升级应用程序升级过程中,使得待升级应用程序或者目标应用程序对应的服务不中断,保证对待升级应用程序升级过程中提供的该服务的连续性。
更进一步地,在上述实施例的基础上,所述获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录,包括:
接收到对预设应用程序进行更新的最新程序信息后,获取所述预设应用程序的当前程序信息,根据所述最新程序信息和所述当前程序信息判断是否升级所述预设应用程序;
若判断升级所述预设应用程序,则将所述预设应用程序作为所述待升级应用程序,根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行解压,得到所述目标升级包;
根据所述待升级应用程序对应的所述待升级进程获取未被所述待升级进程调用的工作目录,作为所述空闲工作目录。
需要说明的是,预设应用程序为安装在当前的本地服务器或者终端上的应用程序,例如,预设应用程序为病毒查杀的应用程序。用于对预设应用程序进行更新的服务器,将最新更新的该预设应用程序的最新程序信息发送到本地服务器或者终端上,终端接收到该最新程序信息后,获取本地服务器或者终端的预设应用程序的当前程序信息,将最新程序信息和当前程序信息进行对比,判断是否需要升级预设应用程序。
例如,预设应用程序进行更新的云端服务器将最新更新的该预设应用程序的版本号码发送到该本地服务器或者终端,该本地服务器或者终端接收到该版本号码后,获取本地安装的预设应用程序的当前的版本号码,若该本地服务器或者终端接收到该版本号码和当前的版本号码相同,则表明该预设应用程序已为最新版本,不升级该预设应用程序。若该本地服务器或者终端接收到该版本号码和当前的版本号码不相同,则表明该预设应用程序已不是最新版本,需要升级该预设应用程序。若需要升级该预设应用程序,则从云端服务器下载该该预设应用程序对应的升级包,并对下载的升级包进行解压,得到目标升级包。
本实施例提供了一种应用程序升级的方法,该方法提供了是否升级预设应用程序的判断方法,通过最新程序信息和当前程序信息的对比可以对是否升级该预设应用程序进行快速的判断。
更进一步地,在上述实施例的基础上,所述根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行解压,得到所述目标升级包,包括:
根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行合法性校验;
若所述合法性校验通过,则对所述升级包进行解压,对解压后的升级包进行病毒扫描,若所述病毒扫描的结果为所述升级包不携带病毒,则将解压后的升级包作为所述目标升级包;
其中,所述合法性校验包括对所述升级包进行的版本号码的校验、升级包更新时间的校验和代码签名证书的校验;所述病毒扫描包括通过本地查杀引擎对解压后的升级包进行病毒扫描和通过云查杀对解压后的升级包进行病毒扫描。
进一步地,若所述合法性校验不通过,则发出对所述升级包的合法性校验不通过的提示消息。
需要说明的是,对升级包进行合法性校验的过程中,可以仅进行版本号码的校验、升级包更新时间的校验和代码签名证书的校验中的一种或者两种,也可以三种均进行校验,本实施例对此不做具体限制。无论是通过几种方法进行合法性校验,均是只有在每一合法性校验均通过的情况下,才判断对所述升级包进行合法性校验通过。
对于版本号码的校验,例如,可以包括:获取所述待升级应用程序的第一版本号码和所述升级包对应的第二版本号码,若按照预设规则(例如,更新时间越早的软件版本,其对应的版本号码的最后一位数字越小,即若第二版本号码的最后一位数字大于第一版本号码的最后一位数字,则说明该升级包的更新时间比待升级应用程序所对应的安装包的更新时间晚)判断所述第二版本号码相较于所述第一版本号码代表了较新的软件版本,则判断对所述升级包进行的版本号码的校验通过,否则,对所述升级包进行的更新时间的校验不通过。
对于更新时间的校验,例如,包括:获取所述待升级应用程序的第一更新时间和所述升级包对应的第二更新时间,若第二更新时间晚于所述第一更新时间,则判断对所述升级包进行的更新时间的校验通过,否则,对所述升级包进行的更新时间的校验不通过。
对于代码签名证书的校验,例如,包括:获取所述升级包对应的代码签名证书,判断所述代码签名证书是否与预设的代码签名证书(通常预设的代码签名证书为预先获取的,开发该升级包的开发商提供的与该升级包对应的代码签名证书)相同,若是,则判断对所述升级包进行的代码签名证书的校验通过,否则,对所述升级包进行的代码签名证书的校验不通过。
通过本地查杀引擎对解压后的升级包进行病毒扫描,例如,可以运行启发式查杀或者QEX脚本查杀对解压后的升级包进行病毒扫描。通过云查杀对解压后的升级包进行病毒扫描,例如,可以计算对应于解压后的升级包的MD5值或SHA1值,将所述MD5值或所述SHA1值SHA1值的判断得到解压后的升级包是否携带病毒的扫描结果。同理,可以对解压后的升级包进行本地查杀或者云查杀,也可以本地查杀和云查杀均进行扫描,本实施例对此不做具体限制。若通过本地查杀和云查杀对解压后的升级包进行扫描,则只有在二者的扫描结果均为不携带病毒时,才判断对解压后的升级包进行病毒扫描的结果为所述升级包不携带病毒。
本实施例提供了一种应用程序升级的方法,该方法对下载的升级包进行合法性校验和病毒查杀,防止升级过程中被病毒攻击,提高了安全性。
更进一步地,在上述各实施例的基础上,还包括:
若所述病毒扫描的结果为所述升级包携带病毒,则判断解压后的升级包是否能修复为不携带病毒的安全升级包,若是,则将解压后的升级包修复为所述安全升级包,将所述安全升级包作为所述目标升级包,否则,发出所述升级包携带病毒的提示消息。
需要说明的是,提示消息可以通过短信或者邮件的方式发出,已通知相关人员进行处理,本实施例对此不做具体限制。
检查携带病毒的文件是否能修复,以及对文件的修复,均可以由相应的软件来实现,本实施例对此不做具体限制。例如,该软件对解压后的升级包中的某一文件中的病毒所在的位置进行检查,若该文件的文件头被病毒植入,则判定该文件不能修复。若病毒植入了文件中,并且删除该文件后不影响该目标文件的运行,则判定该文件能被修复。若判定该文件能被修复,则对该文件进行修复,保证解压后的升级包中每一文件均不携带病毒,则该不携带病毒的升级包即为修复后的安全升级包。
本实施例提供了一种应用程序升级的方法,该方法在检测到解压后的升级包中的某一文件存在病毒后,对该文件进行修复,能够在保证安全性的基础上,降低了升级过程被中止的几率。
更进一步地,在上述各实施例的基础上,所述创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程,包括:
循环执行目标进程创建操作,直到关闭所有所述待升级进程;
其中,所述目标进程创建操作包括:
判断是否存在正在运行的所述待升级进程,若是,从正在运行的所述待升级进程中获取任一待升级进程作为待停进程;
创建新的进程,将所述目标工作目录配置为所述新的进程调用的工作目录,得到所述目标进程,运行所述目标进程,关闭所述待停进程。
本实施例提供了一种应用程序升级的方法,该方法针对存在多个待升级进程同时运行的待升级应用程序,循环执行目标进程创建操作,每次新创建一个目标进程后,关闭一个待升级进程,直到所有的待升级进程均关闭。该方法始终保持运行的待升级进程和目标进程的数量不变,保证了对待升级应用程序升级过程中,由待升级应用程序或者目标应用程序提供的服务的稳定性。
更进一步地,在上述各实施例的基础上,还包括:
检测到所有所述待升级进程均关闭后,发出所述待升级应用程序升级完成的提示信息。
需要说明的是,提示信息可以通过弹出的窗口上的文字说明展示,也可以通过向用户或者相关工作人员发送短信或者邮件的方式提示对待升级应用程序升级完成,本实施例对此不做具体限制。
本实施例提供了一种应用程序升级的方法,该方法在待升级进程均关闭后,发出提示信息,保证了用户或者相关工作人员及时了解当前运行的应用程序的版本信息。
作为一种具体的实施例,图2示出了对病毒查杀的应用程序进升级的升级过程,参见图2,该过程包括:
201:接收到病毒查杀应用程序的第一版本信息后,获取本地的病毒查杀应用程序的第二版本信息。
其中,病毒查杀应用程序为预设应用程序,第一版本信息为最新程序信息,第二版本信息为当前程序信息。
202:判断所述第一版本信息和所述第二版本信息是否相同,若不相同,则执行步骤203,若相同,则执行步骤209,其中,209:不升级本地的病毒查杀应用程序。
203:下载对应于所述第一版本信息的目标病毒查杀应用程序的升级包,获取未被本地的病毒查杀应用程序的待升级进程调用的空闲工作目录。此时,本地的病毒查杀应用程序为待升级应用程序。
203:解压所述升级包,得到目标升级包,将所述目标升级包存储到所述空闲工作目录对应的文件夹中。例如,将目标升级包中的病毒库和病毒库引擎存储到空闲工作目录对应的文件夹中。
204:判断是否存在正在运行的所述待升级进程,若是,则执行步骤205,否则,执行步骤208。
205:从正在运行的所述待升级进程中获取任一待升级进程作为待停进程。
206:创建新的进程,将所述目标工作目录配置为所述新的进程调用的工作目录,得到所述目标病毒查杀应用程序对应的所述目标进程,运行所述目标进程,关闭所述待停进程。
207:发出对本地的病毒查杀应用程序升级完成的提示信息。
本实施例提供的应用程序升级的方法通过将目标升级包存储到空闲工作目录对应的文件夹中,使得对本地的病毒查杀应用程序的升级过程不影响该病毒查杀应用程序的正常运行,实现了对本地的病毒查杀应用程序升级过程中,使得本地的病毒查杀应用程序或者升级后的病毒查杀应用程序对应的服务不中断,保证对本地的病毒查杀应用程序升级过程中提供的该服务的连续性。
图3为本实施例提供的服务器中本地查杀的病毒库和文件扫描引擎升级的过程示意图,参见图3,在该服务器中包括文件扫描引擎、病毒库和引擎更新引擎。例如,服务器从云端服务器下载升级文件(升级包)后,将本地病毒库文件和升级文件进行对比,判断是否需要对本地病毒库文件进行更新。
其中,病毒库和引擎更新引擎用于根据更新规则对病毒库、扫描引擎进行更新。通过用户更新模块可以设定病毒库和引擎更新引擎获取新的病毒库或者引擎的时间或者触发条件。引擎、病毒库更新服务用于向病毒库和引擎更新引擎提供新的引擎或者病毒,以使得病毒库和引擎更新引擎获取新的引擎或者病毒后,对代理服务器的病毒库和引擎进行更新。
图4示出了本发明的实施例提供的应用程序升级的装置的结构框图,参见图4,本实施例提供的应用程序升级的装置,包括获取模块401、存储模块402和创建模块403,其中,
获取模块401,用于获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录;
存储模块402,用于将所述目标升级包存储到与所述空闲工作目录对应的文件夹中,得到目标工作目录;
创建模块403,用于创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程。
本实施例提供的应用程序升级的装置适用于上述实施例中提供的应用程序升级的方法,在此不再赘述。
本发明的实施例提供了一种应用程序升级的装置,该装置接收到待升级应用程序的目标升级包后,将该目标升级包存储到当前未被待升级应用程序占用的空闲工作目录,得到目标工作目录,然后创建调用目标工作目录的目标进程。该方法在创建目标进程的过程中,待升级应用程序对应的待升级进程正常运行。当目标进程运行后,再关闭待升级进程,关闭待升级进程的过程中和关闭待升级进程后,待升级应用程序升级后的目标应用程序对应的目标进程正常运行。由此,该装置通过将目标升级包存储到空闲工作目录对应的文件夹中,使得对待升级应用程序的升级过程不影响待升级应用程序的正常运行,实现了对待升级应用程序升级过程中,使得待升级应用程序或者目标应用程序对应的服务不中断,保证对待升级应用程序升级过程中提供的该服务的连续性。
第三方面,图5是示出本实施例提供的电子设备的结构框图。
参照图5,所述电子设备包括:处理器(processor)501、存储器(memory)502、通信接口(Communications Interface)503和总线504;
其中,
所述处理器501、存储器502、通信接口503通过所述总线504完成相互间的通信;
所述通信接口503用于该电子设备和服务器的通信设备之间的信息传输;
所述处理器501用于调用所述存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录;将所述目标升级包存储到与所述空闲工作目录对应的文件夹中,得到目标工作目录;创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程。
第四方面,本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录;将所述目标升级包存储到与所述空闲工作目录对应的文件夹中,得到目标工作目录;创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如,包括:获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录;将所述目标升级包存储到与所述空闲工作目录对应的文件夹中,得到目标工作目录;创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。
Claims (12)
1.一种应用程序升级的方法,其特征在于,包括:
获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录;
将所述目标升级包存储到与所述空闲工作目录对应的文件夹中,得到目标工作目录;
创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程;目标升级包中目标应用程序对应的主程序存储到目标工作目录中主程序对应的文件夹;
所述获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录,包括:
接收到对预设应用程序进行更新的最新程序信息后,获取所述预设应用程序的当前程序信息,根据所述最新程序信息和所述当前程序信息判断是否升级所述预设应用程序;
若判断升级所述预设应用程序,则将所述预设应用程序作为所述待升级应用程序,根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行解压,得到所述目标升级包;
根据所述待升级应用程序对应的所述待升级进程获取未被所述待升级进程调用的工作目录,作为所述空闲工作目录。
2.根据权利要求1中所述的方法,其特征在于,所述根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行解压,得到所述目标升级包,包括:
根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行合法性校验;
若所述合法性校验通过,则对所述升级包进行解压,对解压后的升级包进行病毒扫描,若所述病毒扫描的结果为所述升级包不携带病毒,则将解压后的升级包作为所述目标升级包;
其中,所述合法性校验包括对所述升级包进行的版本号码的校验、升级包更新时间的校验和代码签名证书的校验;所述病毒扫描包括通过本地查杀引擎对解压后的升级包进行病毒扫描和通过云查杀对解压后的升级包进行病毒扫描。
3.根据权利要求2中所述的方法,其特征在于,还包括:
若所述病毒扫描的结果为所述升级包携带病毒,则判断解压后的升级包是否能修复为不携带病毒的安全升级包,若是,则将解压后的升级包修复为所述安全升级包,将所述安全升级包作为所述目标升级包,否则,发出所述升级包携带病毒的提示消息。
4.根据权利要求1中所述的方法,其特征在于,所述创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程,包括:
循环执行目标进程创建操作,直到关闭所有所述待升级进程;
其中,所述目标进程创建操作包括:
判断是否存在正在运行的所述待升级进程,若是,从正在运行的所述待升级进程中获取任一待升级进程作为待停进程;
创建新的进程,将所述目标工作目录配置为所述新的进程调用的工作目录,得到所述目标进程,运行所述目标进程,关闭所述待停进程。
5.根据权利要求1中所述的方法,其特征在于,还包括:
检测到所有所述待升级进程均关闭后,发出所述待升级应用程序升级完成的提示信息。
6.一种应用程序升级的装置,其特征在于,包括:
获取模块,用于获取待升级应用程序对应的目标升级包和当前未被所述待升级应用程序对应的待升级进程调用的空闲工作目录;
存储模块,用于将所述目标升级包存储到与所述空闲工作目录对应的文件夹中,得到目标工作目录;
创建模块,用于创建调用所述目标工作目录的目标进程,作为所述待升级应用程序升级后的目标应用程序对应的进程,运行所述目标进程,关闭所述待升级进程;目标升级包中目标应用程序对应的主程序存储到目标工作目录中主程序对应的文件夹;
所述获取模块还用于接收到对预设应用程序进行更新的最新程序信息后,获取所述预设应用程序的当前程序信息,根据所述最新程序信息和所述当前程序信息判断是否升级所述预设应用程序;若判断升级所述预设应用程序,则将所述预设应用程序作为所述待升级应用程序,根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行解压,得到所述目标升级包;根据所述待升级应用程序对应的所述待升级进程获取未被所述待升级进程调用的工作目录,作为所述空闲工作目录。
7.根据权利要求6中所述的装置,其特征在于,所述获取模块还用于根据所述最新程序信息下载所述待升级应用程序的升级包,对所述升级包进行合法性校验;若所述合法性校验通过,则对所述升级包进行解压,对解压后的升级包进行病毒扫描,若所述病毒扫描的结果为所述升级包不携带病毒,则将解压后的升级包作为所述目标升级包;其中,所述合法性校验包括对所述升级包进行的版本号码的校验、升级包更新时间的校验和代码签名证书的校验;所述病毒扫描包括通过本地查杀引擎对解压后的升级包进行病毒扫描和通过云查杀对解压后的升级包进行病毒扫描。
8.根据权利要求7中所述的装置,其特征在于,所述获取模块还用于若所述病毒扫描的结果为所述升级包携带病毒,则判断解压后的升级包是否能修复为不携带病毒的安全升级包,若是,则将解压后的升级包修复为所述安全升级包,将所述安全升级包作为所述目标升级包,否则,发出所述升级包携带病毒的提示消息。
9.根据权利要求6中所述的装置,其特征在于,所述创建模块还用于循环执行目标进程创建操作,直到关闭所有所述待升级进程;其中,所述目标进程创建操作包括:判断是否存在正在运行的所述待升级进程,若是,从正在运行的所述待升级进程中获取任一待升级进程作为待停进程;创建新的进程,将所述目标工作目录配置为所述新的进程调用的工作目录,得到所述目标进程,运行所述目标进程,关闭所述待停进程。
10.根据权利要求6中所述的装置,其特征在于,还包括提示模块,所述提示模块用于检测到所有所述待升级进程均关闭后,发出所述待升级应用程序升级完成的提示信息。
11.一种电子设备,其特征在于,包括:
至少一个处理器、至少一个存储器、通信接口和总线;其中,
所述处理器、存储器、通信接口通过所述总线完成相互间的通信;
所述通信接口用于该电子设备和服务器的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至5中任一项所述的方法。
12.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711205791.1A CN107748668B (zh) | 2017-11-27 | 2017-11-27 | 一种应用程序升级的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711205791.1A CN107748668B (zh) | 2017-11-27 | 2017-11-27 | 一种应用程序升级的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107748668A CN107748668A (zh) | 2018-03-02 |
CN107748668B true CN107748668B (zh) | 2021-02-02 |
Family
ID=61252402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711205791.1A Active CN107748668B (zh) | 2017-11-27 | 2017-11-27 | 一种应用程序升级的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107748668B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502255B (zh) * | 2018-05-17 | 2023-12-29 | 许昌许继软件技术有限公司 | 一种轨道交通综合监控系统的软件升级系统 |
CN109254921A (zh) * | 2018-09-18 | 2019-01-22 | 平安科技(深圳)有限公司 | 应用版本验证方法、装置、计算机设备以及存储介质 |
CN108874433B (zh) * | 2018-09-21 | 2022-08-26 | 歌尔光学科技有限公司 | 一种头戴式显示设备的固件升级方法、系统及存储介质 |
CN112130886B (zh) * | 2019-06-25 | 2023-11-03 | 杭州海康威视数字技术股份有限公司 | 一种交通信号控制机的主控程序升级方法及装置 |
CN110489140B (zh) * | 2019-07-11 | 2023-06-06 | 平安科技(深圳)有限公司 | 软件升级方法、装置、计算机设备及计算机存储介质 |
CN110806890B (zh) * | 2019-11-21 | 2023-06-06 | 金蝶软件(中国)有限公司 | 软件更新方法以及相关装置 |
CN111796854B (zh) * | 2020-07-03 | 2023-03-31 | 中国建设银行股份有限公司 | 一种模块热升级的方法、装置、电子设备和可读存储介质 |
CN112506551A (zh) * | 2020-12-30 | 2021-03-16 | 珠海华网科技有限责任公司 | 一种基于arm装置的usb软件升级方法 |
CN112650520B (zh) * | 2020-12-31 | 2023-08-01 | 威胜集团有限公司 | 电表升级方法、系统、智能电表及存储介质 |
CN113391832A (zh) * | 2021-06-11 | 2021-09-14 | 中电科航空电子有限公司 | 机载软件升级方法、升级包加载方法、装置和设备 |
CN114553693B (zh) * | 2022-02-21 | 2024-03-26 | 上海哔哩哔哩科技有限公司 | 网关升级方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702692B (zh) * | 2009-10-30 | 2011-12-07 | 南京中兴软创科技股份有限公司 | 一种对消息处理系统进行热更新的系统及其方法 |
CN102299940A (zh) * | 2010-06-25 | 2011-12-28 | 龚华清 | 一种不间断网络服务的软件升级方法 |
CN104123488A (zh) * | 2014-08-14 | 2014-10-29 | 北京网秦天下科技有限公司 | 应用程序的验证方法和装置 |
CN104391720A (zh) * | 2014-11-29 | 2015-03-04 | 广东好帮手电子科技股份有限公司 | 基于Android系统后视镜盒子升级方法及后视镜盒子 |
KR20170045981A (ko) * | 2015-10-20 | 2017-04-28 | 한국전자통신연구원 | 소프트웨어를 포함한 시스템 및 이의 무중단 업그레이드 방법 |
-
2017
- 2017-11-27 CN CN201711205791.1A patent/CN107748668B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107748668A (zh) | 2018-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107748668B (zh) | 一种应用程序升级的方法及装置 | |
CN105786538B (zh) | 基于安卓系统的软件升级方法和装置 | |
CN107547239B (zh) | 配置对象的更新方法及装置 | |
CN109829294B (zh) | 一种固件验证方法、系统、服务器及电子设备 | |
CN106131612B (zh) | 安卓app动态加载资源功能模块的方法及系统 | |
US9244758B2 (en) | Systems and methods for repairing system files with remotely determined repair strategy | |
CN105307195B (zh) | 一种更新接入点名称参数的方法及装置 | |
CN109240731B (zh) | 一种TBox的安全升级方法和系统 | |
CN106815049B (zh) | 特征库升级的方法及装置 | |
CN103036706A (zh) | 应用升级异常的本地处理方法 | |
CN108280347A (zh) | 一种病毒扫描的方法及装置 | |
CN110597545A (zh) | 一种基于ota组件的热补丁智能升级方法及系统 | |
CN108958785B (zh) | 一种应用程序升级方法及装置 | |
CN111046377B (zh) | 加载动态链接库的方法、装置、电子设备及存储介质 | |
CN104158907A (zh) | 应用程序文件下载方法及装置 | |
CN109348472B (zh) | 一种基于单点推送的ota升级方法及系统 | |
CN108133154B (zh) | 一种对文件进行存储的方法及装置 | |
US20220300256A1 (en) | Validating Binary Image Content | |
CN116150711A (zh) | 一种软件处理方法、装置、电子设备及存储介质 | |
CN111949290B (zh) | 一种热补丁管理方法、装置、电子设备及存储介质 | |
CN113867756A (zh) | 软件升级方法、终端设备及可读存储介质 | |
CN110569088A (zh) | 客户端插件管理方法、装置、电子设备及存储介质 | |
CN113721960A (zh) | 基于rpa和ai的应用程序漏洞修复方法和装置 | |
CN110825406A (zh) | 一种软件升级的方法及相关设备 | |
CN111597570B (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: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant after: Qianxin Technology Group Co.,Ltd. Address before: 100015 15, 17 floor 1701-26, 3 building, 10 Jiuxianqiao Road, Chaoyang District, Beijing. Applicant before: Beijing Qi'anxin Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |