CN112328284A - 应用程序升级方法、***、设备和存储介质 - Google Patents

应用程序升级方法、***、设备和存储介质 Download PDF

Info

Publication number
CN112328284A
CN112328284A CN202011271018.7A CN202011271018A CN112328284A CN 112328284 A CN112328284 A CN 112328284A CN 202011271018 A CN202011271018 A CN 202011271018A CN 112328284 A CN112328284 A CN 112328284A
Authority
CN
China
Prior art keywords
file
version
upgrade
application program
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
Application number
CN202011271018.7A
Other languages
English (en)
Inventor
郭恩烈
韩雪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Ezviz Software Co Ltd
Original Assignee
Hangzhou Ezviz Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Ezviz Software Co Ltd filed Critical Hangzhou Ezviz Software Co Ltd
Priority to CN202011271018.7A priority Critical patent/CN112328284A/zh
Publication of CN112328284A publication Critical patent/CN112328284A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version 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

本申请实施例提供一种应用程序升级方法、***、设备和存储介质。该方法包括:根据应用程序的第一版本的下载路径,获取第一版本的升级配置信息;升级配置信息包括:第一版本的第一文件的文件信息,文件信息包括:第一文件的名称和摘要信息;若应用程序的本地目录下不存在与第一文件相同名称的第二文件,则根据下载路径,获取第一文件,根据第一文件对应用程序进行升级;若应用程序的本地目录下存在与第一文件相同名称的第二文件,则根据第二文件的摘要信息与第一文件的摘要信息以及下载路径,获取第二文件对应的升级文件,并根据升级文件对应用程序进行升级。本申请实施例提高了升级成功率。

Description

应用程序升级方法、***、设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用程序升级方法、***、设备和存储介质。
背景技术
目前,客户端的应用程序在运行中经常遇到版本升级的问题,每当应用程序存在缺陷或者需要添加某些功能时,都需要对客户端上的应用程序进行版本升级。
相关技术中,为了节省带宽,一般通过差分升级,即通过新版本的安装包和老版本的安装包进行对比,生成差分包,利用差分包对应用程序进行升级,然而,若生成的差分包异常或差分包下载出错,则应用程序升级会失败,导致应用程序升级的成功率较低。
发明内容
本申请提供一种应用程序升级方法、***、设备和存储介质,以提高应用程序升级的成功率。
第一方面,本申请提供一种应用程序升级方法,包括:
根据应用程序的第一版本的下载路径,获取所述第一版本的升级配置信息;所述升级配置信息包括:所述第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
若所述应用程序的本地目录下不存在与所述第一文件相同名称的第二文件,则根据所述下载路径,获取所述第一文件,根据所述第一文件对所述应用程序进行升级;
若所述应用程序的本地目录下存在与所述第一文件相同名称的第二文件,则根据所述第二文件的摘要信息与所述第一文件的摘要信息以及所述下载路径,获取所述第二文件对应的升级文件,并根据所述升级文件对所述应用程序进行升级。
第二方面,本申请提供一种应用程序升级方法,包括:
向电子设备发送第一版本的升级配置信息;所述升级配置信息包括:所述第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
根据所述电子设备发送的第一请求消息向所述电子设备发送第一文件,所述第一文件用于所述电子设备升级所述应用程序;所述第一请求消息用于指示所述电子设备中不存在与所述第一文件相同名称的第二文件;
根据所述电子设备发送的第二请求消息向所述电子设备发送所述第二文件的升级文件,所述第二文件的升级文件用于所述电子设备升级所述应用程序;所述第二请求消息用于指示所述电子设备中存在与所述第一文件相同名称的第二文件。
第三方面,本申请提供一种应用程序升级装置,包括:
获取模块,用于根据应用程序的第一版本的下载路径,获取所述第一版本的升级配置信息;所述升级配置信息包括:所述第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
处理模块,用于若所述应用程序的本地目录下不存在与所述第一文件相同名称的第二文件,则根据所述下载路径,获取所述第一文件,根据所述第一文件对所述应用程序进行升级;
所述处理模块,还用于若所述应用程序的本地目录下存在与所述第一文件相同名称的第二文件,则根据所述第二文件的摘要信息与所述第一文件的摘要信息以及所述下载路径,获取所述第二文件对应的升级文件,并根据所述升级文件对所述应用程序进行升级。
第四方面,本申请提供一种应用程序升级装置,包括:
发送模块,用于向电子设备发送第一版本的升级配置信息;所述升级配置信息包括:所述第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
接收模块,用于接收所述电子设备发送的第一请求消息;
所述发送模块,还用于根据所述第一请求消息向所述电子设备发送第一文件,所述第一文件用于所述电子设备升级所述应用程序;所述第一请求消息用于指示所述电子设备中不存在与所述第一文件相同名称的第二文件;
所述接收模块,还用于接收所述电子设备发送的第二请求消息;所述发送模块,还用于根据所述第二请求消息向所述电子设备发送所述第二文件的升级文件,所述第二文件的升级文件用于所述电子设备升级所述应用程序;所述第二请求消息用于指示所述电子设备中存在与所述第一文件相同名称的第二文件。
第五方面,本申请实施例提供一种应用程序升级***,包括:
电子设备和服务器;
其中,所述电子设备用于根据应用程序的第一版本的下载路径,获取所述第一版本的升级配置信息;所述升级配置信息包括:所述第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
所述电子设备还用于:若所述应用程序的本地目录下不存在与所述第一文件相同名称的第二文件,则根据所述下载路径,获取所述第一文件,根据所述第一文件对所述应用程序进行升级;若所述应用程序的本地目录下存在与所述第一文件相同名称的第二文件,则根据所述第二文件的摘要信息与所述第一文件的摘要信息以及所述下载路径,获取所述第二文件对应的升级文件,并根据所述升级文件对所述应用程序进行升级;
所述服务器,用于向电子设备发送所述第一版本的升级配置信息;
所述服务器,还用于根据所述电子设备发送的第一请求消息向所述电子设备发送所述第一文件,所述第一请求消息用于指示所述电子设备中不存在与所述第一文件相同名称的第二文件;根据所述电子设备发送的第二请求消息向所述电子设备发送所述第二文件的升级文件,所述第二请求消息用于指示所述电子设备中存在与所述第一文件相同名称的第二文件。
第六方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面、第二方面中任一项所述的方法。
第七方面,本申请实施例提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的方法。
第八方面,本申请实施例提供一种服务器,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行第二方面中任一项所述的方法。
本申请实施例提供的应用程序升级方法、***、设备和存储介质,通过升级配置信息中的新的第一版本的文件信息,将新版本的第一文件与应用程序本地的第二文件进行对比,从而获取到升级文件,进行升级,在应用程序的本地不存在与第一文件相同名称的第二文件时,获取第一文件;在应用程序本地存在与第一文件相同名称的第二文件时,进一步根据第二文件的摘要信息与第一文件的摘要信息以及下载路径,获取第二文件对应的升级文件,从而根据第一文件或升级文件对应用程序进行升级,获取文件的颗粒度更细,提高了升级成功率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请实施例提供的***架构示意图;
图2是本申请提供的应用程序升级方法一实施例的流程示意图;
图3是本申请提供的方法一实施例的原理示意图;
图4是本申请提供的应用程序升级方法另一实施例的流程示意图;
图5是本申请提供的方法一实施例的工具界面示意图;
图6是本申请提供的方法另一实施例的原理示意图;
图7是本申请提供的应用程序升级装置一实施例的结构示意图;
图8是本申请提供的应用程序升级装置另一实施例的结构示意图;
图9是本申请提供的电子设备实施例的结构示意图;
图10是本申请提供的服务器实施例的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本申请的说明书和权利要求书及所述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,对本申请实施例涉及的应用场景进行介绍。
图1为本申请实施例提供的***架构示意图。如图1所示,本申请实施例的***架构中可以包括但不限于:电子设备11和服务器12。电子设备例如包括:手机、平板电脑、可穿戴设备、物联网设备等等。
其中,电子设备11和服务器12之间可以通过网络连接。
本申请实施例提供的方法可由一个电子设备如处理器执行相应的软件代码实现,也可由一个电子设备在执行相应的软件代码的同时,通过和服务器进行数据交互来实现。
相关技术中,为了节省带宽,一般通过差分升级,即通过新版本的安装包和老版本的安装包进行对比,生成差分包,利用差分包对应用程序进行升级,然而,若生成的差分包异常或差分包下载出错,则应用程序升级会失败,导致应用程序升级的成功率较低。
差分包为整个安装包之间的差分包。如果是安装包进行差分,则本地必须要有旧版本的安装包,但是应用程序一旦安装过之后,安装包无任何作用,程序运行使用不到,会暂用大量存储空间,浪费资源;如果本地没有旧版本的安装包,还要去下载旧版本的安装包才能通过差分包生成新版本的安装包,反而增加了带宽的成本;差分包的大小可能会比较大,容易下载失败,则会导致应用程序升级失败。
本申请实施例的方法,为了提高升级的成功率,通过升级配置信息中的新版本的文件信息,将新版本的第一文件与应用程序本地的第二文件进行一一对比,从而获取到升级文件,在应用程序的本地不存在与第一文件相同名称的第二文件时,获取第一文件;在应用程序本地存在与第一文件相同名称的第二文件时,进一步根据第二文件的摘要信息与第一文件的摘要信息以及下载路径,获取第二文件对应的升级文件,从而根据第一文件或升级文件对应用程序进行升级,相比整个安装包的差分包来说,文件的颗粒度更细。
下面以具体的实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2是本申请提供的应用程序升级法一实施例的流程示意图。如图2所示,本实施例提供的方法应用于电子设备,该方法包括:
步骤101、根据应用程序的第一版本的下载路径,获取第一版本的升级配置信息;升级配置信息包括:第一版本的第一文件的文件信息,文件信息包括:第一文件的名称和第一文件的摘要信息。
具体的,在电子设备需要对应用程序升级时,例如服务器向电子设备端推送升级信息,例如最新版本号,若电子设备确定要进行升级时,向服务器获取该应用程序的版本信息,如下载路径,例如发送升级请求消息获取版本信息;
根据下载路径,下载升级配置信息,该升级配置信息例如是通过文件进行存储,如xml文件;
在一实施例中,如果升级配置信息下载失败,且本地版本号低于最新版本号,则直接下载最新第一版本的安装包(如图3中所示的v3.0.0.exe),并进行应用程序的升级。
升级配置信息包括:第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
第一版本的第一文件为根据第一版本的安装包得到的,如对第一版本的安装包进行解压得到,第一文件可以是一个或多个。
步骤102、若应用程序的本地目录下不存在与第一文件相同名称的第二文件,则根据下载路径,获取第一文件,根据第一文件对应用程序进行升级。
具体的,对获取到的升级配置信息进行解析,遍历该升级配置信息中的所有第一文件的文件信息,与安装该应用程序的本地目录下的第二文件进行对比。
若应用程序的本地目录下不存在与第一文件相同名称的第二文件,则说明该第一文件可能是新增的或是被删除了(用户误删或者被其它恶意软件删除了),则根据下载路径,获取第一文件,根据第一文件对应用程序进行升级。
步骤103、若应用程序的本地目录下存在与第一文件相同名称的第二文件,则根据第二文件的摘要信息与第一文件的摘要信息以及下载路径,获取第二文件对应的升级文件,并根据升级文件对应用程序进行升级。
具体的,若应用程序的本地目录下存在与第一文件相同名称的第二文件,则进一步根据第二文件的摘要信息与第一文件的摘要信息,确定该第一文件是否进行了更新,若摘要信息不一致,则说明第一文件进行了更新,根据下载路径,获取第二文件对应的升级文件,并根据升级文件对应用程序进行升级。
若摘要信息一致,则说明本地的第二文件已经是最新的,无需更新,即无需获取第一文件。
在一实施例中,摘要信息为利用消息摘要算法对所述文件进行处理得到的。
在其他实施例中,也可以采用其他算法得到,本申请对此并不限定。
消息摘要算法例如为MD2、MD4或MD5等算法。例如,第一文件的MD5值为3CBFB301FC5BA55BB8613BAC43F670E4。
如果本地目录下的第二文件的摘要信息与最新的第一文件的摘要信息不一致,则为了节省带宽,先确定能否获取到该第二文件与第一文件的差分文件,若能获取到差分文件,则获取该差分文件,此时升级文件为该差分文件,利用该差分文件进行升级;若获取不到该第二文件与第一文件的差分文件,则获取该第一文件,此时升级文件为该第一文件,利用该第一文件进行升级。
本实施例的方法,通过升级配置信息中的新的第一版本的文件信息,将新版本的第一文件与应用程序本地的第二文件进行对比,从而获取到升级文件,进行升级,在应用程序的本地不存在与第一文件相同名称的第二文件时,获取第一文件;在应用程序本地存在与第一文件相同名称的第二文件时,进一步根据第二文件的摘要信息与第一文件的摘要信息以及下载路径,获取第二文件对应的升级文件,从而根据第一文件或升级文件对应用程序进行升级,获取文件的颗粒度更细,提高了升级成功率。
在一实施例中,为了节省带宽,提高下载效率,根据下载路径,获取第一文件,可以通过如下方式实现:
根据下载路径,获取第一文件的压缩包,并解压得到第一文件。
具体的,下载该第一文件的压缩包,并解压获取到最新的第一文件例:AnalyzeData.dll文件本地丢失,则从服务器下载AnalyzeData.zip文件,并解压获取到最新的AnalyzeData.dll文件。
为了避免升级过程中出错,可以先将本地的第二文件保存到一个临时文件夹下(如tmp文件夹),然后再根据第一文件对应用程序进行升级。
在一实施例中,所述升级配置信息还包括:所述第二版本的第三文件的摘要信息,步骤103可以通过如下方式实现:
若第二文件的摘要信息与第一文件的摘要信息不同,且存在与第二文件的摘要信息相同的第三文件,则根据下载路径,获取第二文件对应的差分文件,根据第二文件对应的差分文件与第二文件生成升级文件;
若第二文件的摘要信息与第一文件的摘要信息不同,且不存在与第二文件的摘要信息相同的第三文件,则根据下载路径,获取第一文件,并将第一文件作为升级文件。
具体的,如果本地目录下的第二文件的摘要信息与最新的第一文件的摘要信息不一致,说明文件需要更新,再跟升级配置信息中旧版本中该第一文件对应的第三文件的摘要信息进行对比,如果存在与第二文件的摘要信息相同的第三文件,说明该第二文件存在对应的差分文件(即第一文件与第二文件的差分文件,也即第一文件与第三文件的差分文件),下载该第二文件对应的差分文件,然后通过该差分文件与本地目录下的第二文件,生成最新的第一文件,即升级文件,利用该升级文件进行升级。
例如,AnalyzeData.dll文件需要更新,且本地目录下的第二文件计算出来的MD5值为701117ABF00A63384EB57DFC27B9C5DC,与升级配置信息中某个第三文件中的Md5匹配上,则下载对应的差分文件(2B9C8C681D609CABBB5CD0BF593BACA0.diff),差分文件下载成功后,通过2B9C8C681D609CABBB5CD0BF593BACA0.diff和本地目录下的AnalyzeData.dll文件生成最新的AnalyzeData.dll文件,为了避免升级过程中出错,可以先将该AnalyzeData.dll文件保存到临时文件夹下(如tmp文件夹)。
通过差分文件生成完整的升级文件时,是需要旧文件的(如旧文件A1和差分文件A.diff才能生成升级文件A2),如果本地程序的旧版本要升级,A1文件是一定存在的(因为程序运行的时候需要使用A1文件),因此只需要再下载一个差分文件A.diff即可生成升级文件A2。
在一实施例中,为了节省带宽,获取差分文件可以是通过获取压缩后的差分文件,进行解压,得到该差分文件。
在一实施例中,若获取差分文件失败,则获取该第一文件,通过第一文件进行升级,与前述步骤102的方式类似,此处不再赘述。
如果本地目录下的第二文件的摘要信息与最新的第一文件的摘要信息不一致,且本地目录下的第二文件的摘要信息与升级配置信息中旧版本(即第二版本)的第三文件的摘要信息也不一致,则获取该第一文件,通过第一文件进行升级,与前述步骤102的方式类似,此处不再赘述。
在一实施例中,若存在部分第一文件获取失败,则下载第一版本的安装包进行升级,或周期性的重新获取第一文件。
上述实施方式中,采用多种升级方式,先采用差分文件进行升级,再采用按文件升级,如果仍失败,则可以下载最新版本的安装包的方式,保证应用程序能升级到最新版本,提高了升级成功率。而且上述方式中尽量下载小的文件来获取到新的第一文件,节省带宽成本,提高下载效率。
在一实施例中,获取到第一文件或升级文件后对应用程序进行升级,可通过如下方式实现:
若步骤102中获取到第一文件,则将第一文件存入应用程序的本地目录下。
若步骤103中获取到升级文件(包括差分文件或第一文件),则将第二文件替换为升级文件。
具体的,若需要更新的文件都已成功获取到,则进行升级,若应用程序的本地目录下没有与该第一文件名称相同的第二文件,则将该第一文件存入应用程序的本地目录下。
若应用程序的本地目录下存在与该第一文件名称相同的第二文件,则用升级文件替换原来的第二文件。
在一实施例中,若存在部分文件替换失败,则下载第一版本的安装包进行升级,或周期性的重新获取文件进行替换。
在一实施例中,为了避免升级发生错误,导致应用程序无法使用,在进行升级之前,将所述应用程序的本地目录下的第二文件进行备份。
例如,将第二文件备份到一个新的文件夹中。
在一实施例中,将所述第二文件替换为所述升级文件之前,还包括:
将所述第二文件进行重命名。
具体的,如果替换本地目录下的第二文件失败,原因可能是因为本地目录下的第二文件被占用,则重命名本地目录下的该第二文件,并再次尝试替换到本地目录下。例如,如果本地目录下的AnalyzeData.dll文件被占用导致替换失败,则对本地目录下的AnalyzeData.dll文件重命名为AnalyzeData1.dll,然后再进行替换。
在一实施例中,如果有文件始终替换失败,则停止更新,并把前面替换成功的文件还原回原来的(从备份的文件夹中获取)。
如果所有文件都替换成功,则说明本次升级成功。
本申请实施例的方法,对升级配置信息中的第一版本的所有第一文件进行遍历,与应用程序的本地目录中的文件做对比,如果文件有差异就会更新到最新版本的文件。不管当前应用程序显示的版本号是否与最新第一版本的版本号相同,只要本地目录下的文件跟最新文件有差异,就会更新,防止文件被其它第三方篡改。即使本地应用程序是最新版本,也会下载升级配置信息,并解析升级配置信息,对最新第一版本的所有文件和本地目录下的文件做比较。
图4是本申请提供的应用程序升级法一实施例的流程示意图。如图4所示,本实施例提供的方法应用于服务器,该方法包括:
步骤201、向电子设备发送第一版本的升级配置信息;升级配置信息包括:第一版本的第一文件的文件信息,文件信息包括:第一文件的名称和第一文件的摘要信息。
具体的,若有最新版本的发布包时,服务器向电子设备端推送升级信息,例如最新版本号,若电子设备确定要进行升级时,向服务器获取该第一版本的升级配置信息。
在一实施例中,向电子设备发送第一版本的升级配置信息可以是在接收到电子设备发送的应用程序的升级请求消息后发送的。
步骤202、根据电子设备发送的第一请求消息向电子设备发送第一文件,第一文件用于电子设备升级应用程序;第一请求消息用于指示电子设备中不存在与第一文件相同名称的第二文件。
具体的,电子设备确定本地目录下是否存在与第一文件相同名称的第二文件,若不存在,则从服务器中获取第一文件,例如向服务器发送第一请求消息,第一请求消息用于指示电子设备中不存在与第一文件相同名称的第二文件,或用于请求该第一文件,服务器根据第一请求消息发送第一文件。其中,第一文件也可以是压缩后的文件。
步骤203、根据电子设备发送的第二请求消息向电子设备发送第二文件的升级文件,第二文件的升级文件用于电子设备升级应用程序;第二请求消息用于指示电子设备中存在与第一文件相同名称的第二文件。
具体的,电子设备确定本地目录下是否存在与第一文件相同名称的第二文件,若存在,则进一步根据摘要信息确定第一文件与第二文件的摘要信息是否相同,若不同则从服务器中获取第一文件或第一文件与第二文件的差分文件,例如向服务器发送第二请求消息,第二请求消息用于指示电子设备中存在与第一文件相同名称的第二文件,或用于请求升级文件,服务器根据第二请求消息发送升级文件,升级文件可以是第一文件或差分文件,其中第一文件或差分文件也可以是压缩后的第一文件或差分文件。
本实施例的方法,与前述电子设备侧的方法其实现原理和技术效果类似,此处不再赘述。
在一实施例中,服务器在接收电子设备的升级请求消息之前,会提前获取到发布包,该发布包可以是服务器生成的,或也可以是其他电子设备生成上传到该服务器上的。
生成发布包,具体可以通过如下方式实现:
根据第一版本的安装包,获取第一版本的第一文件;
若第二版本对应的文件中存在与第一文件名称相同的第三文件,且所述第一文件的摘要信息与所述第三文件的摘要信息不同,则生成所述第一文件与所述第三文件的差分文件;
根据所述差分文件、所述第一文件和所述第一版本的升级配置信息,生成所述第一版本的发布包;所述升级配置信息包括:所述第一版本的各个第一文件的文件信息;所述文件信息包括:所述第一文件的名称和第一文件的摘要信息。
在一实施例中,升级配置信息还包括以下至少一项信息:所述第二版本的第三文件的摘要信息,第一版本的版本标识、压缩后的第一文件的摘要信息、第一文件与第三文件的差分文件的摘要信息。
在一实施例中,生成发布包可以通过一个发布打包工具(AutoSetup.exe)实现,如图5所示,是该发布打包工具的界面,选择第二版本的安装包(针对老版本生成相应的差分文件,如果不需要针对某个老版本生成差分文件,可不选择),图5中,有两个老版本,老版本1和老版本2,点击生成按钮,通过该发布打包工具执行发布包的生成过程。
具体的,对第一版本的安装包进行解压,获取到第一版本的至少一个第一文件,即把安装包中的所有第一文件提取出来,如图6中新版本v3.0.0.exe,解压到v3.0.0文件夹中。
对老版本v2.0.0.exe和v1.0.0.exe也进行解压,并根据安装包名称解压到对应目录下。
解压完成后,遍历v3.0.0文件夹,对遍历出来的第一文件生成摘要信息。进一步,还可以对第一文件进行压缩,即生成.zip文件,对第一文件压缩,可以减少下载文件时带宽的消耗,提升下载速度。
对遍历出来的第一文件在v2.0.0和v1.0.0文件夹中查找名称相同的文件:
如果老版本文件夹中无与该第一文件名称相同的文件,则表示v3.0.0版本新增了该第一文件,无需生成差分文件。
如果老版本文件夹中有与该第一文件名称相同的文件,且第一文件与老版本文件夹中相同名称文件的摘要信息一致,则说明该第一文件无更新,无需生成差分文件。
如果老版本文件夹中有与该第一文件名称相同的文件,且第一文件与老版本文件夹中相同名称文件的摘要信息不一致,则说明该第一文件有更新,生成相应的差分文件。
如果v2.0.0和v1.0.0中与该第一文件名称相同的文件的摘要信息不一致,说明3个版本中该文件都有更新,则v1.0.0和v3.0.0生成一个差分文件,v2.0.0和v3.0.0生成一个差分文件。
其中,差分文件相对新的第一文件会小非常多,如:AnalyzeData.dll文件,实际大小可能是1MB,如果直接下载该文件则需要下载1MB的大小。但是该文件压缩后可能达到0.5MB,这样的话,只需下载0.5MB就可最终获取到该文件。再比如本地目录有旧版本的AnalyzeData.dll文件,且它与最新的AnalyzeData.dll文件差异比较小,则生成的差分文件可能只有2KB,则只需下载2KB,并结合本地的文件就可最终获取到最新的AnalyzeData.dll文件。
第一版本的第一文件遍历完成后,生成第一版本的升级配置信息。
把生成的发布文件和升级配置文件保存至服务器的发布包文件夹,发布包包括:第一版本的第一文件,第一文件对应的差分文件、第一版本的安装包和第一版本的升级配置信息,其中,第一版本的第一文件可以为压缩后的文件。在一实施例中,为了节省下载带宽,提高下载效率,步骤202之前还包括:
将所述第一文件进行压缩;
步骤202包括:
向所述电子设备发送压缩后的第一文件。
在一实施例中,将所述差分文件、压缩后的第一文件和所述第一版本的升级配置信息,生成所述第一版本的发布包。
本实施例中,通过新旧文件比较,提取差异的数据生成一个差分文件,再对新文件进行数据压缩生成一个压缩包,最后生成应用的发布包,能够提高电子设备侧的应用程序的升级成功率,而且节省带宽,提高升级效率。
图7为本申请提供的应用程序升级装置一实施例的结构图,如图7所示,本实施例的应用程序升级装置,应用于电子设备,该应用程序升级装置包括:
获取模块701,用于根据应用程序的第一版本的下载路径,获取所述第一版本的升级配置信息;所述升级配置信息包括:所述第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
处理模块702,用于若所述应用程序的本地目录下不存在与所述第一文件相同名称的第二文件,则根据所述下载路径,获取所述第一文件,根据所述第一文件对所述应用程序进行升级;
所述处理模块702,还用于若所述应用程序的本地目录下存在与所述第一文件相同名称的第二文件,则根据所述第二文件的摘要信息与所述第一文件的摘要信息以及所述下载路径,获取所述第二文件对应的升级文件,并根据所述升级文件对所述应用程序进行升级。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本申请提供的应用程序升级装置一实施例的结构图,如图8所示,本实施例的应用程序升级装置,应用于服务器,该应用程序升级装置包括:
发送模块,用于向电子设备发送第一版本的升级配置信息;所述升级配置信息包括:所述第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
接收模块,用于接收所述电子设备发送的第一请求消息;
所述发送模块,还用于根据所述第一请求消息向所述电子设备发送第一文件,所述第一文件用于所述电子设备升级所述应用程序;所述第一请求消息用于指示所述电子设备中不存在与所述第一文件相同名称的第二文件;
所述接收模块,还用于接收所述电子设备发送的第二请求消息;所述发送模块,还用于根据所述第二请求消息向所述电子设备发送所述第二文件的升级文件,所述第二文件的升级文件用于所述电子设备升级所述应用程序;所述第二请求消息用于指示所述电子设备中存在与所述第一文件相同名称的第二文件。
在一种可能的实现方式中,还包括:
处理模块,用于根据所述第一版本的安装包,获取所述第一版本的第一文件;
若第二版本对应的文件中存在与所述第一文件名称相同的第三文件,且所述第一文件的摘要信息与所述第三文件的摘要信息不同,则生成所述第一文件与所述第三文件的差分文件;
根据所述差分文件、所述第一文件和所述第一版本的升级配置信息,生成所述第一版本的发布包;所述升级配置信息包括:所述第一版本的各个第一文件的文件信息;所述文件信息包括:所述第一文件的名称和第一文件的摘要信息。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在本申请一实施例中,还提供一种应用程序升级***,包括:
电子设备和服务器;
其中,所述电子设备用于根据应用程序的第一版本的下载路径,获取所述第一版本的升级配置信息;所述升级配置信息包括:所述第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
若所述应用程序的本地目录下不存在与所述第一文件相同名称的第二文件,则根据所述下载路径,获取所述第一文件,根据所述第一文件对所述应用程序进行升级;
若所述应用程序的本地目录下存在与所述第一文件相同名称的第二文件,则根据所述第二文件的摘要信息与所述第一文件的摘要信息以及所述下载路径,获取所述第二文件对应的升级文件,并根据所述升级文件对所述应用程序进行升级;
所述服务器用于:向所述电子设备发送第一版本的升级配置信息;根据所述电子设备发送的第一请求消息向所述电子设备发送第一文件,所述第一请求消息用于指示所述电子设备中不存在与所述第一文件相同名称的第二文件;
根据所述电子设备发送的第二请求消息向所述电子设备发送所述第二文件的升级文件,所述第二请求消息用于指示所述电子设备中存在与所述第一文件相同名称的第二文件。
本实施例的***,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本申请提供的电子设备实施例的结构图,如图9所示,该电子设备包括:
处理器901,以及,用于存储处理器901的可执行指令的存储器902。
可选的,还可以包括:通信接口903,用于实现与其他设备的通信。
上述部件可以通过一条或多条总线进行通信。
其中,处理器901配置为经由执行所述可执行指令来执行前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,此处不再赘述。
图10为本申请提供的服务器实施例的结构图,如图10所示,该服务器包括:
处理器1001,以及,用于存储处理器1001的可执行指令的存储器1002。
可选的,还可以包括:通信接口1003,用于实现与其他设备的通信。
上述部件可以通过一条或多条总线进行通信。
其中,处理器301配置为经由执行所述可执行指令来执行前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,此处不再赘述。
本申请实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,其实现原理和技术效果类似,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。

Claims (14)

1.一种应用程序升级方法,其特征在于,包括:
根据应用程序的第一版本的下载路径,获取所述第一版本的升级配置信息;所述升级配置信息包括:所述第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
若所述应用程序的本地目录下不存在与所述第一文件相同名称的第二文件,则根据所述下载路径,获取所述第一文件,根据所述第一文件对所述应用程序进行升级;
若所述应用程序的本地目录下存在与所述第一文件相同名称的第二文件,则根据所述第二文件的摘要信息与所述第一文件的摘要信息以及所述下载路径,获取所述第二文件对应的升级文件,并根据所述升级文件对所述应用程序进行升级。
2.根据权利要求1所述的方法,其特征在于,所述升级配置信息还包括:第二版本的第三文件的摘要信息,所述根据所述第二文件的摘要信息与所述第一文件的摘要信息,以及所述下载路径,获取所述第二文件对应的升级文件,包括:
若所述第二文件的摘要信息与所述第一文件的摘要信息不同,且存在与所述第二文件的摘要信息相同的第三文件,则根据所述下载路径,获取所述第二文件对应的差分文件,根据所述第二文件对应的差分文件与所述第二文件生成所述升级文件;
若所述第二文件的摘要信息与所述第一文件的摘要信息不同,且不存在与所述第二文件的摘要信息相同的第三文件,则根据所述下载路径,获取所述第一文件,并将所述第一文件作为所述升级文件。
3.根据权利要求1或2所述的方法,其特征在于,根据所述下载路径,获取所述第一文件,包括:
根据所述下载路径,获取压缩后的第一文件,并解压得到所述第一文件;
根据所述第一文件对所述应用程序进行升级,包括:
将所述第一文件存入所述应用程序的本地目录下。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述升级文件对所述应用程序进行升级,包括:
将所述第二文件替换为所述升级文件。
5.根据权利要求4所述的方法,其特征在于,所述将所述第二文件替换为所述升级文件之前,还包括:
将所述第二文件进行重命名。
6.根据权利要求1或2所述的方法,其特征在于,
所述摘要信息为利用消息摘要算法对所述文件进行处理得到的。
7.一种应用程序升级方法,其特征在于,包括:
向电子设备发送第一版本的升级配置信息;所述升级配置信息包括:所述第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
根据所述电子设备发送的第一请求消息向所述电子设备发送第一文件,所述第一文件用于所述电子设备升级所述应用程序;所述第一请求消息用于指示所述电子设备中不存在与所述第一文件相同名称的第二文件;
根据所述电子设备发送的第二请求消息向所述电子设备发送所述第二文件的升级文件,所述第二文件的升级文件用于所述电子设备升级所述应用程序;所述第二请求消息用于指示所述电子设备中存在与所述第一文件相同名称的第二文件。
8.根据权利要求7所述的方法,其特征在于,还包括:
根据所述第一版本的安装包,获取所述第一版本的第一文件;
若第二版本对应的文件中存在与所述第一文件名称相同的第三文件,且所述第一文件的摘要信息与所述第三文件的摘要信息不同,则生成所述第一文件与所述第三文件的差分文件;
根据所述差分文件、所述第一文件和所述第一版本的升级配置信息,生成所述第一版本的发布包;所述升级配置信息包括:所述第一版本的各个第一文件的文件信息;所述文件信息包括:所述第一文件的名称和第一文件的摘要信息。
9.根据权利要求7或8所述的方法,其特征在于,根据所述第一请求消息向所述电子设备发送第一文件之前,还包括:
将所述第一文件进行压缩;
根据所述第一请求消息向所述电子设备发送第一文件,包括:
向所述电子设备发送压缩后的第一文件。
10.根据权利要求8所述的方法,其特征在于,根据所述差分文件、所述第一文件和所述第一版本的升级配置信息,生成所述第一版本的发布包,包括:
将所述差分文件、压缩后的第一文件和所述第一版本的升级配置信息,生成所述第一版本的发布包。
11.一种应用程序升级***,其特征在于,包括:
电子设备和服务器;
其中,所述电子设备用于根据应用程序的第一版本的下载路径,获取所述第一版本的升级配置信息;所述升级配置信息包括:所述第一版本的第一文件的文件信息,所述文件信息包括:所述第一文件的名称和第一文件的摘要信息;
所述电子设备还用于:若所述应用程序的本地目录下不存在与所述第一文件相同名称的第二文件,则根据所述下载路径,获取所述第一文件,根据所述第一文件对所述应用程序进行升级;若所述应用程序的本地目录下存在与所述第一文件相同名称的第二文件,则根据所述第二文件的摘要信息与所述第一文件的摘要信息以及所述下载路径,获取所述第二文件对应的升级文件,并根据所述升级文件对所述应用程序进行升级;
所述服务器,用于向电子设备发送所述第一版本的升级配置信息;
所述服务器,还用于根据所述电子设备发送的第一请求消息向所述电子设备发送所述第一文件,所述第一请求消息用于指示所述电子设备中不存在与所述第一文件相同名称的第二文件;根据所述电子设备发送的第二请求消息向所述电子设备发送所述第二文件的升级文件,所述第二请求消息用于指示所述电子设备中存在与所述第一文件相同名称的第二文件。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的方法。
13.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-6任一项所述的方法。
14.一种服务器,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求7-10任一项所述的方法。
CN202011271018.7A 2020-11-13 2020-11-13 应用程序升级方法、***、设备和存储介质 Pending CN112328284A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011271018.7A CN112328284A (zh) 2020-11-13 2020-11-13 应用程序升级方法、***、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011271018.7A CN112328284A (zh) 2020-11-13 2020-11-13 应用程序升级方法、***、设备和存储介质

Publications (1)

Publication Number Publication Date
CN112328284A true CN112328284A (zh) 2021-02-05

Family

ID=74317717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011271018.7A Pending CN112328284A (zh) 2020-11-13 2020-11-13 应用程序升级方法、***、设备和存储介质

Country Status (1)

Country Link
CN (1) CN112328284A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338395A (zh) * 2021-12-29 2022-04-12 武汉烽火信息集成技术有限公司 一种c/s通信网管方法、存储介质、电子设备及***
CN117055936A (zh) * 2023-02-27 2023-11-14 武汉路特斯科技有限公司 增量升级方法、***、计算机设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099780A (zh) * 2015-08-12 2015-11-25 北京思特奇信息技术股份有限公司 一种文件的自动发布或升级的方法及其***
CN106502725A (zh) * 2016-09-30 2017-03-15 歌尔科技有限公司 应用程序的升级方法、设备及电子设备
CN106603311A (zh) * 2017-01-18 2017-04-26 北京洋浦伟业科技发展有限公司 Ota升级方法、客户端、服务器和***
CN108509211A (zh) * 2018-02-07 2018-09-07 深圳壹账通智能科技有限公司 应用程序升级方法、装置、移动终端和存储介质
CN110806888A (zh) * 2019-12-23 2020-02-18 北京奇艺世纪科技有限公司 一种应用程序的升级方法、装置及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099780A (zh) * 2015-08-12 2015-11-25 北京思特奇信息技术股份有限公司 一种文件的自动发布或升级的方法及其***
CN106502725A (zh) * 2016-09-30 2017-03-15 歌尔科技有限公司 应用程序的升级方法、设备及电子设备
CN106603311A (zh) * 2017-01-18 2017-04-26 北京洋浦伟业科技发展有限公司 Ota升级方法、客户端、服务器和***
CN108509211A (zh) * 2018-02-07 2018-09-07 深圳壹账通智能科技有限公司 应用程序升级方法、装置、移动终端和存储介质
CN110806888A (zh) * 2019-12-23 2020-02-18 北京奇艺世纪科技有限公司 一种应用程序的升级方法、装置及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338395A (zh) * 2021-12-29 2022-04-12 武汉烽火信息集成技术有限公司 一种c/s通信网管方法、存储介质、电子设备及***
CN117055936A (zh) * 2023-02-27 2023-11-14 武汉路特斯科技有限公司 增量升级方法、***、计算机设备及可读存储介质

Similar Documents

Publication Publication Date Title
JP5696018B2 (ja) 対象データの配置方法、対象データ配置システム、および、それらのサーバ装置、クライアント装置、プログラム
US6996818B2 (en) Update system for facilitating software update and data conversion in an electronic device
CN102262544B (zh) 软件升级的方法和装置
US6493871B1 (en) Method and system for downloading updates for software installation
US7814474B2 (en) Updatable mobile handset based on Linux with compression and decompression techniques
US6993760B2 (en) Installing software on a mobile computing device using the rollback and security features of a configuration manager
CN111381858B (zh) 一种应用程序升级方法、服务器及终端设备
US20070294685A1 (en) Program upgrade system and method for ota-capable portable device
US11775288B2 (en) Method and apparatus for generating difference between old and new versions of data for updating software
CN101719073A (zh) 一种基于智能客户端的按需下载实现方法
JP2001147826A (ja) 一次メモリのハッシュインデックスからオブジェクトをロードするための装置及び方法
CN103188097A (zh) 一种实现补丁管理的方法、装置及***
CN112202920B (zh) 车机***升级方法及装置
CN111158719B (zh) 应用软件升级方法及装置
CN112328284A (zh) 应用程序升级方法、***、设备和存储介质
US11379216B2 (en) Software update agent device and software patching method through the same
CN104699511A (zh) 插件升级方法及装置
CN112286543B (zh) 一种应用服务部署方法及装置
JP2007280415A (ja) 管理装置及びバージョン管理システム及びプログラムバージョン管理方法
CN112416386A (zh) 软件升级的方法、装置、***以及介质
CN110825406A (zh) 一种软件升级的方法及相关设备
CN110673869B (zh) 库文件的加载方法、装置及***
CN113626391B (zh) 操作***缓存文件处理方法
CN116107603B (zh) 一种固件升级方法、装置、存储介质和电子设备
JP4410224B2 (ja) プログラムのバージョン管理システムおよび方法

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