CN112558994A - 一种应用软件的升级方法、装置、设备和存储介质 - Google Patents
一种应用软件的升级方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112558994A CN112558994A CN202011540038.XA CN202011540038A CN112558994A CN 112558994 A CN112558994 A CN 112558994A CN 202011540038 A CN202011540038 A CN 202011540038A CN 112558994 A CN112558994 A CN 112558994A
- Authority
- CN
- China
- Prior art keywords
- installation
- file
- application software
- directory structure
- package
- 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
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000009434 installation Methods 0.000 claims abstract description 377
- 238000011161 development Methods 0.000 claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/61—Installation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用软件的升级方法、装置、设备和存储介质。所述方法包括:基于开发平台所上传当前版本的应用软件,形成当前待发布安装包;按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件;接收开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联;根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述文件的差异升级包实现所述应用软件的升级。该方法中通过生成的差异升级包对应用软件进行升级,该差异升级包解决了应用软件升级过程中由于升级包过大导致升级过程复杂花费时间多且容易出错的问题。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种应用软件的升级方法、装置、设备和存储介质。
背景技术
目前,开发人员开发的应用软件通常上传至发布平台侧进行打包以及发布,以便于第三方用户从发布平台上下载并安装使用。现有的应用软件的程序包文件一般都比较大,例如神经网络模型库中的文件往往动辄十多个GB,当此类庞大的程序包文件在开发环境中开发,各项功能测试通过后,需要在发布平台上发布并相对可执行程序形成一个应用软件版本,在黑盒测试以及用户需要现场进行程序更新升级时,需要将升级的应用软件程序包文件拷贝进待升级升级包所对应的发布目录,手动去完成整个待升级文件的打包。
然而,上述手动完成整个打包过程在执行时容易出现错误,并且由于升级应用软件程序包的文件数据非常庞大,在进行应用软件升级任务时,会花费较多时间来下载和拷贝升级应用软件程序包,因此,如何解决在版本自动发布和更新时升级应用软件程序包过大的情况是当前亟待解决的技术问题。
发明内容
本发明实施例提供了一种应用软件的升级方法、装置、设备和存储介质,能够通过生成差异升级包解决应用软件升级过程中由于升级包过大导致升级过程复杂且容易出错的问题。
第一方面,本发明实施例提供了一种应用软件的升级方法,包括:
基于开发平台所上传当前版本的应用软件,形成当前待发布安装包;
按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件;
接收开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联;
根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述差异升级包实现所述应用软件的升级。
第二方面,本发明实施例还提供了一种应用软件的升级方法,包括:
获取应用软件的差异升级包,所述差异升级包从发布终端侧下载;
获取当前已安装版本的所述应用软件对应的初始目录结构文件;
根据差异升级包及所述初始目录结构文件,执行对所述应用软件的升级安装。
第三方面,本发明实施例还提供了一种应用软件的升级装置,该装置配置于应用软件发布的发布终端,包括:
安装包形成模块,用于基于开发平台所上传当前版本的应用软件,形成当前待发布安装包;
文件生成模块,用于按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件;
接收模块,用于接收软件开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联;
升级模块,用于根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述差异升级包实现所述应用软件的升级。
第四方面,本发明实施例还提供了一种应用软件的升级装置,该装置配置于第三方安装终端,包括:
获取模块,用于获取应用软件的差异升级包,并生成所述差异升级包对应的差异目录结构文件,所述差异升级包从发布终端侧下载;
执行模块,用于根据所述差异目录结构文件,执行对所述应用软件的升级安装。
第五方面,本发明实施例还提供了一种发布终端设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器执行时实现如本发明实施例一所提供的应用软件的升级方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的应用软件的升级方法。
本发明实施例提供了一种应用软件的升级方法、装置、设备和存储介质,首先基于开发平台所上传当前版本的应用软件,形成当前待发布安装包;其次按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件;然后接收开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联;最后根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述差异升级包实现所述应用软件的升级。该方法中通过生成的差异升级包对应用软件进行升级,由于该差异升级包中只包括差异安装文件所以该差异升级包相对待发布安装包而言较小,因此,解决了应用软件升级过程中由于升级包过大导致升级过程复杂且容易出错的问题。
附图说明
图1为本发明实施例一提供的一种应用软件的升级方法的流程示意图;
图2为本发明实施例一提供的一种应用软件的升级方法的示例流程图;
图3为本发明实施例二提供的一种应用软件的升级方法的流程示意图;
图4为本发明实施例二提供的一种应用软件的升级方法的示例流程图;
图5为本发明实施例三提供的一种应用软件的升级装置的结构示意图;
图6为本发明实施例四提供的一种应用软件的升级装置的结构示意图;
图7为本发明实施例五提供的一种发布终端设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”。
实施例一
图1为本发明实施例一提供的一种应用软件的升级方法的流程示意图,该方法可适用于对应用软件进行升级的情况,该方法可以由应用软件的升级装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在应用软件的发布终端设备上。在本实施例中,该发布终端设备可以为计算机设备。
如图1所示,本发明实施例一提供的一种应用软件的升级方法,包括如下步骤:
S110、基于开发平台所上传当前版本的应用软件,形成当前待发布安装包。
在本实施例中,开发平台可以为软件开发端,可以从软件开发端上传当前版本的应用软件。
其中,当前版本的应用软件可以理解为当前使用的未更新升级的应用软件,应用软件可以为任意类型的应用软件,示例性的,可以为APP类型应用软件。
其中,待发布安装包可以为待发布于发布终端的安装包,待发布安装包可以基于当前版本的应用软件得到,可以理解为当前版本的应用软件在发布终端经过安装打包后可以形成当前待发布安装包,发布终端根据当前版本的应用软件形成当前待发布安装包是现有技术,此处不做赘述。S120、按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件。
其中,给定的文件生成格式可以为固定的文件格式,示例性的,给定的文件生成格式可以为json格式。
其中,当前目录结构文件可以为当前待发布安装包的目录结构文件,当前目录结构文件可以为json格式的文件。
在本实施例中,形成当前待发布安装包后可以将所述待发布安装包按照给定的文件生成格式,生成当前目录结构文件的过程可以包括:根据所述待发布安装包中包括的各安装文件确定所述各安装文件对应的安装目录以及所述相对各安装文件预先确定的密码散列值;对所述各安装目录以及对应的密码散列值以键值对形式记录,形成当前目录结构文件。
具体的,按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件可以包括:获取所述当前待发布安装包中所包括各第一安装文件的第一安装目录;获取相对各所述第一安装文件预先确定的第一密码散列值;以键值对形式记录各第一安装目录及相应的第一密码散列值,形成对应所述当前待发布安装包的当前目录结构文件。
其中,各第一安装文件可以为当前待发布安装包中包括的各安装目录下的安装文件。第一安装目录可以为所述第一安装文件所在的目录,即根据所述第一安装目录可以找到在该目录下的第一安装文件,第一安装目录记载了第一安装文件所在的安装路径,第一安装目录与第一安装文件可以是一一对应的,在一个第一安装目录下可以根据安装路径找到一个第一安装文件。
可选的,一个当前待发布安装包中可以包括多个第一安装目录以及多个第一安装目录对应的多个第一安装文件。
其中,第一密码散列值可以为预先对应各第一安装文件确定的md5值,md5值可以用于对文件进行加密,将文件的字符串输入md5算法可以生成一个不定长度的数值,该数值即md5值,用md5值表示value的类型,每个文件可以对应一个md5值。
其中,键值对形式可以理解为将两个数据组成一对的形式出现,即key和value成对出现。在本实施例中,一个键值对可以看作由应用软件所包含的一个安装文件的安装目录及相应的密码散列值组合而成,示例性的,一个键值对可以包括一个安装目录和与其相对应的一个密码散列值,若密码散列值为2,则一个键值对可以记录为(安装目录1,2),其中key对应的是安装目录1,2对应的是value,即md5值。
其中,当前目录结构文件可以包括各第一安装文件所在的第一安装目录,一个第一安装文件对应一个md5值,即一个第一安装目录对应一个md5值,将各第一安装目录与其对应的各md5值按照键值对形成记录在当前目录结构文件中。因此,可以根据当前目录结构文件中的md5值确定与其对应的第一安装目录,根据第一安装目录即可找到该目录下的第一安装文件。S130、接收开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联。
其中,历史目录结构文件可以为历史安装包对应的目录结构文件,历史安装包可以理解为当前待发布安装包的历史版本。相应的,历史目录结构文件也是根据给定的文件生成格式生成的文件,即历史目录结构文件可以为json格式的结构文件。开发端技术人员可以将所述历史目录结构文件上传至发布终端以供后续使用。
其中,上一版本的应用软件可以为当前版本的应用软件的上一版本。历史目录结构文件与上一版本的应用软件相关联可以理解为历史目录结构文件为上一版本的应用软件对应的目录结构文件。
相应的,历史目录结构文件与当前目录结构文件所包括的内容类似,历史目录结构文件中可以包括:第二安装文件的第二安装目录,以及第二安装文件的第二密码散列值。其中,第二安装目录与第二密码散列值也是以键值对形式记录的。
其中,第二安装文件可以为历史目录结构文件中的安装文件,第二安装文件也可以理解为上一版本的应用软件对应历史安装包中的安装文件,历史安装包中可以包括多个第二安装文件。其中,历史安装包可以为上一版本的应用软件对应的安装包。
其中,第二安装目录可以为所述第二安装文件所在的目录,第二安装目录记载了第二安装文件所在的安装路径,第二安装目录与第二安装文件是一一对应的,在一个第二安装目录下可以根据安装路径找到一个第二安装文件。
其中,第二密码散列值可以为md5值,第二密码散列值与第一密码散列值的计算方式相同,此处不做赘述。第二密码散列值是与第二安装文件一一对应的数值,即一个历史目录结构文件中包含的各第二安装文件都有与其对应的md5值。
可以理解的是,历史目录结构文件可以包括各第二安装文件所在的第二安装目录,一个第二安装文件对应一个md5值,即一个第二安装目录对应一个md5值,将各第二安装目录与其对应的各md5值按照键值对形成记录在历史目录结构文件中。因此,可以根据历史目录结构文件中的md5值确定与其对应的第二安装目录,根据第二安装目录即可找到该目录下的第二安装文件。
S140、根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述差异升级包实现所述应用软件的升级。
其中,差异升级包可以为将差异文件进行压缩打包后得到的压缩包,差异文件可以为两个安装包中包括的不同文件,两个安装包可以理解为同一个应用软件的两个不同版本应用软件对应的安装包。示例性的,差异升级包可以包括上一版本的应用软件的历史安装包与当前版本的应用软件的当前待发布安装包之间的差异文件。
在本实施例中,差异升级包可以包括生成第一差异安装文件、第二差异安装文件以及各第一安装目录,其中,差异升级包中的第一差异安装文件和第二差异安装文件的生成过程如下:
生成第一差异安装文件的过程可以为:根据当前目录结构文件和历史目录结构文件中的键值对确定第一键值对,根据第一键值对确定第一差异安装文件;
生成第二差异安装文件的过程可以为:根据当前目录结构文件和历史目录结构文件中的键值对确定第二键值对,根据第二键值对确定第二差异安装文件。
其中,第一键值对可以理解为仅仅存在于当前目录结构文件中的一个或多个键值对,即历史目录结构文件中不存在该一个或多个键值对,并且第一键值对中的md5值是历史目录结构文件中的键值对中不存在的。还可以理解为,在当前目录结构文件中与第一键值对对应的第一安装文件是不存在于历史目录结构文件中的,可以通过第一键值对确定仅存在于当前待发布升级包中的文件。
第二键值对可以理解为从当前目录结构文件中筛选出的键值对,该键值对中的第一安装目录与第二安装目录相同,第二键值对中的第一密码散列值与第二安装目录对应的第二密码散列值不同。
可以理解为,当前目录结构文件与历史目录结构文件在相同的安装目录下可以对应不同的md5值,对应不同md5值即可表明当前目录结构文件与历史目录结构文件在相同的安装目录下对应的安装文件是不相同的。
示例性的,当第一安装目录与第二安装目录为相同安装目录时,当前目录结构文件的一个键值对为(安装目录1,1),历史目录结构文件的键值对为(安装目录1,2),由于第一密码散列值为1,第二密码散列值为2,则可以确定上述两个键值对是有差异的,将当前目录结构文件中的该键值对可以确定为第二键值对。
具体的,根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包可以包括:遍历所述当前目录结构文件和历史目录结构文件的键值对;确定仅存在于所述当前目录结构文件中的第一键值对,从所述当前目录结构文件中筛选与第二安装目录相同、与相应第二密码散列值不同的第二键值对;确定与各所述第一键值对关联的第一差异安装文件,以及与各所述第二键值对关联的第二差异安装文件;对各所述第一差异安装文件以、各所述第二差异安装文件以及待发布安装包中的各第一安装目录进行压缩打包,形成所述应用程序的差异升级包。
通过遍历当前目录结构文件和历史目录结构文件的键值对,可以对应查找出多个第一键值对和多个第二键值对。在本实施例中,遍历所述当前目录结构文件和历史目录结构文件的键值对为现有技术,此处不做赘述。
第一差异安装文件可以为所述第一键值对中的安装文件,,第一差异安装文件可以理解为仅存在于当前目录结构文件中的第一安装文件,第一差异安装文件还可以理解为当前目录结构文件比历史目录结构文件增加的安装文件,该增加的安装文件可以表征当前目录结构文件与历史目录结构文件之间的差异。
第二差异安装文件可以为与所述第二键值对中的安装文件,可以理解为在相同安装目录下,当前目录结构文件在该相同安装目录下的安装文件与历史目录结构文件在该相同安装目录下的安装文件不同,当出现不同的安装文件时,将当前目录结构文件中在该相同安装目录下的安装文件确定为第二差异安装文件。
示例性的,上述过程还可以理解为:通过第一键值对和第二键值对可以确定与第一键值对对应的第一差异安装文件以及与第二键值对对应的第二差异安装文件。第一差异安装文件可以为当前目录结构文件中多于历史目录结构文件中的安装文件,第二差异安装文件可以为若当前目录结构文件和历史目录结构文件的相同安装目录下存在不同的安装文件,则第二差异安装文件可以为存在于当前目录结构文件下的与历史目录结构文件有差异的安装文件。
可选的,差异升级包还可以包括待发布安装包中的各第一安装目录,该待发布安装包中的各安装目录可以用于后续对应用软件进行升级安装时的校验,此处不做详细说明。
进一步的,在生成所述当前待发布安装包中的差异升级包之后还包括:通过将所述差异升级包存储到设定下载目录中实现升级包发布,以供所述第三方安装终端下载。
其中,设定下载目录可以为预先设置的差异升级包的下载目录,所述下载目录可以为应用软件的发布终端内的下载目录。示例性的,生成的差异升级包可以放置到发布终端的http的root目录下供第三方安装终端下载。
可选的,第三方安装终端可以为任意需要下载所述差异升级包的终端设备,示例性的,第三方安装终端可以为用户的计算机或手机等设备。
示例性的,上述过程可以理解为将当前待发布安装包的差异升级包存储于应用软件发布的发布终端内的设定下载目录中,第三方安装终端可以在发布终端下载所述差异升级包,以用于应用软件的升级更新。
本发明实施例一提供的一种应用软件的升级方法,首先基于开发平台所上传当前版本的应用软件,形成当前待发布安装包;其次按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件;然后接收开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联;最后根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述差异升级包实现所述应用软件的升级。该方法中通过对比文件的md5生成的差异升级包对应用软件进行升级,该差异升级包相对待发布安装包而言较小,因此,解决了应用软件升级过程中由于升级包过大导致升级过程复杂且容易出错的问题。
在上述实施例一的基础上,提出了上述实施例的示例性说明,图2为本发明实施例一提供的一种应用软件的升级方法的示例流程图。
如图2所示,开发平台获取历史安装包并根据历史安装包生成具有json格式的历史目录结构文件,发布终端接收开发平台反馈的历史目录结构文件;发布终端根据当前待发布安装包生成json格式的当前目录结构文件;对比历史目录结构文件和当前目录结构文件生成差异文件即第一差异安装文件和第二差异安装文件,将第一差异安装文件和第二差异安装文件进行打包以及各第一安装目录进行压缩打包形成差异升级包;将差异升级包通过发布终端的web服务器发布以供用户下载。
实施例二
图3为本发明实施例二提供的一种应用软件的升级方法的流程示意图,该方法可适用于应用软件进行升级的情况,其中该装置可由软件和/或硬件实现,并一般集成在第三方安装终端设备上。在本实施例中,该第三方安装终端设备可以为计算机设备。
如图3所示,本发明实施例二提供的一种应用软件的升级方法,包括如下步骤:
S310、获取应用软件的差异升级包,并生成所述差异升级包对应的差异目录结构文件,所述差异升级包从发布终端侧下载。
在本实施例中,第三方安装终端获取差异升级包的方式可以为:第三方安装终端在应用平台上的发布终端侧的设定下载目录下下载该应用软件的差异升级包。
根据所述差异升级包可以生成对应的差异目录结构文件,该差异目录结构文件为json格式的结构文件。差异目录结构文件与当前目录结构文件和历史目录结构文件的文件结构类似,差异目录结构文件以键值对形式记录各第一差异安装文件的安装目录和与其对应的md5值、各第二差异安装文件的安装目录和与其对应的md5值。示例性的,差异目录结构文件中包括的一个键值对可以为(安装目录,md5值),其中,安装目录可以为opt/vehicle/algserver/第一差异安装文件。根据md5值可以确定安装目录,根据安装目录中的安装路径可以确定第一差异安装文件。
S320、根据所述差异目录结构文件,执行对所述应用软件的升级安装。
在本实施例中,根据差异目录结构文件可以得到各差异安装目录,根据各差异安装目录确定差异安装文件的目标安装路径,根据所述目标安装路径和差异安装文件确定应用软件的本地目录结构文件,并对所述本地目录结构文件进行校验,若校验成功,则确定完成所述应用软件的升级安装。
其中,差异安装目录可以为差异目录结构文件中记载的差异安装文件的安装目录,根据差异安装目录中记载的路径可以找到差异安装文件。差异安装文件可以包括第一差异安装文件和第二差异安装文件。
其中,目标安装路径可以为差异升级包中的各差异文件在第三方安装终端内的安装路径。在第三方安装终端内已经安装有该应用程序的上一版本的应用软件,即第三方终端内下载过历史安装包,目标安装路径还可以理解为第三方终端内的历史安装包中的各安装文件的存储路径。
其中,本地目录结构文件可以为根据差异安装文件进行修改后得到的目录结构文件,本地目录结构文件记载修改后的各安装文件所在的安装目录和其对应的md5值。
具体的,根据差异升级包及所述初始目录结构文件,执行对所述应用软件的升级安装包括:遍历所述差异目录结构文件,获取包括的各差异安装目录;根据各所述差异安装目录,确定差异升级包中各差异安装文件对应的目标安装路径;将各所述差异安装文件按照相应的目标安装路径进行添加或替换,然后形成所述应用软件的本地目录结构文件;如果所述本地目录结构文件中具备的各本地安装目录与所述差异升级包所携带的各第一安装目录一致,则确定完成所述应用软件的升级安装。
需要说明的是,当第三方安装终端下载差异安装包后,将差异安装包下载至解压路径对差异安装包进行解压,示例性的,解压路径可以为/home/algserver_v.1.2.21_0.2.16_diff/opt/vehicle/algserver/差异安装文件1。其中,home/algserver_v.1.2.21_0.2.16_diff/为差异安装包在第三方安装终端内的路径,opt/vehicle/algserver/差异安装文件1为差异安装目录。
在本实施例中,根据差异安装目录可以确定各差异安装文件在第三方安装终端内的目标安装路径,根据目标安装路径可以对应找到各差异安装文件对应的在第三方安装终端内下载过的旧安装程序的各安装文件,若差异安装文件为第一差异安装文件,则将第一差异安装文件直接添加至其对应的目标安装路径内,若差异安装文件为第二差异安装文件,则将该目标安装路径下的已安装文件替换为第二差异安装文件。
进一步的,得到本地目录结构文件后还可以进一步校验本地目录结构中的各本地安装目录与差异升级包携带的各第一安装目录是否一致,若校验结果为一致,则确定完成应用软件的升级安装。
其中,若本地目录结构中的各本地安装目录与差异升级包携带的各第一安装目录若一致,则表明根据本地目录结构文件生成的安装包与待发布安装包相同。
本发明实施例二提供的一种应用软件的升级方法,首先获取应用软件的差异升级包,所述差异升级包从发布终端侧下载;然后获取当前已安装版本的所述应用软件对应的初始目录结构文件;最后根据差异升级包及所述初始目录结构文件,执行对所述应用软件的升级安装。利用该方法,能够通过下载差异升级包并根据差异升级包中的md5值进行应用软件的升级,解决了应用软件升级过程中由于升级包过大导致升级过程复杂且容易出错的问题。
在上述实施例二的基础上,提出了上述实施例的示例性说明,图4为本发明实施例二提供的一种应用软件的升级方法的示例流程图。
如图4所示,第三方安装终端可以从发布终端下载差异升级包即获取应用软件的差异升级包;设置第三方安装终端的服务器为升级状态;遍历升级包的json格式的差异目录结构文件对旧安装程序进行更新替换;对比本地目录结构文件中具备的各本地安装目录与差异升级包所携带的各第一安装目录是否一致,若是,则更新服务器为工作状态,若否,则重新更新。
需要说明的是,上述软件更新过程中会出现更新失败的情况,更新失败的原因可以为服务器断电等情况造成的,出现更新失败后需要重新进行更新,直到更新成功。
实施例三
图5为本发明实施例三提供的一种应用软件的升级装置的结构示意图,该装置可适用于对应用软件进行升级的情况,其中该装置可由软件和/或硬件实现,并一般配置于应用软件发布的发布终端。
如图5所示,该装置包括:
安装包形成模块510,用于基于开发平台所上传当前版本的应用软件,形成当前待发布安装包;
文件生成模块520,用于按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件;
接收模块530,用于接收软件开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联;
升级模块540,用于根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述差异升级包实现所述应用软件的升级。
在本实施例中,该装置首先通过安装包形成模块基于开发平台所上传当前版本的应用软件,形成当前待发布安装包;其次通过文件生成模块按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件;然后通过接收模块接收软件开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联;最后通过升级模块根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述差异升级包实现所述应用软件的升级。
本实施例提供了一种应用程序的升级装置,能够通过生成差异升级包解决应用软件升级过程中由于升级包过大导致升级过程复杂且容易出错的问题。
进一步的,文件生成模块520,还用于:获取所述当前待发布安装包中所包括各第一安装文件的第一安装目录;获取相对各所述第一安装文件预先确定的第一密码散列值;以键值对形式记录各第一安装目录及相应的第一密码散列值,形成对应所述当前待发布安装包的当前目录结构文件。
进一步的,所述历史目录结构文件中包括:第二安装文件的第二安装目录,以及第二安装文件的第二密码散列值;所述第二安装文件包含在上一版本的应用软件所对应历史安装包中。
在上述优化的基础上,升级模块540,还用于:遍历所述当前目录结构文件和历史目录结构文件的键值对;确定仅存在于所述当前目录结构文件中的第一键值对,从所述当前目录结构文件中筛选与第二安装目录相同、与相应第二密码散列值不同的第二键值对;确定与各所述第一键值对关联的第一差异安装文件,以及与各所述第二键值对关联的第二差异安装文件;对各所述第一差异安装文件、各所述第二差异安装文件以及所述待发布安装包中的各第一安装目录进行压缩打包,形成所述应用程序的差异升级包。
进一步的,发布模块,用于在生成所述当前待发布安装包中的差异升级包之后,通过将所述差异升级包存储到设定下载目录中实现升级包发布,以供所述第三方安装终端下载。
上述应用软件的升级装置可执行本发明实施例一所提供的应用软件的升级方法,具备执行方法相应的功能模块和有益效果。
实施例四
图6为本发明实施例四提供的一种应用软件的升级装置的结构示意图,该装置可适用于对应用软件进行升级的情况,其中该装置可由软件和/或硬件实现,并一般配置于第三方安装终端。
如图6所示,该装置包括:
获取模块610,用于获取应用软件的差异升级包,并生成所述差异升级包对应的差异目录结构文件,所述差异升级包从发布终端侧下载;
执行模块620,用于根据所述差异目录结构文件,执行对所述应用软件的升级安装。
在本实施例中,该装置首先通过获取应用软件的差异升级包,并生成所述差异升级包对应的差异目录结构文件,所述差异升级包从发布终端侧下载;然后通过执行模块根据所述差异目录结构文件,执行对所述应用软件的升级安装。
本实施例提供了一种应用程序的升级装置,能够通过下载差异升级包进行应用软件的升级,解决了应用软件升级过程中由于升级包过大导致升级过程复杂且容易出错的问题。
进一步的,执行模块620,还用于:遍历所述差异目录结构文件,获取包括的各差异安装目录;根据各所述差异安装目录,确定差异升级包中各差异安装文件对应的目标安装路径;将各所述差异安装文件按照相应的目标安装路径进行添加或替换,然后形成所述应用软件的本地目录结构文件。
如果所述本地目录结构文件中具备的各本地安装目录与所述差异升级包所携带的各第一安装目录一致,则确定完成所述应用软件的升级安装。
上述应用软件的升级装置可执行本发明实施例二所提供的应用软件的升级方法,具备执行方法相应的功能模块和有益效果。
实施例五
图7为本发明实施例五提供的一种发布终端设备的结构示意图。如图7所示,本发明实施例五提供的发布终端设备包括:一个或多个处理器71和存储装置72;该发布终端设备中的处理器71可以是一个或多个,图7中以一个处理器71为例;存储装置72用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器71执行,使得所述一个或多个处理器71实现如本发明实施例一中所述的应用软件的升级方法。
所述发布终端设备还可以包括:输入装置73和输出装置74。
发布终端设备中的处理器71、存储装置72、输入装置73和输出装置74可以通过总线或其他方式连接,图7中以通过总线连接为例。
该发布终端设备中的存储装置72作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例一所提供应用软件的升级方法对应的程序指令/模块(例如,附图5所示的应用软件的升级装置中的模块,包括:安装包形成模块510、文件生成模块520、接收模块530和升级模块540)。处理器71通过运行存储在存储装置72中的软件程序、指令以及模块,从而执行发布终端设备的各种功能应用以及数据处理,即实现上述方法实施例中应用软件的升级方法。
存储装置72可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据发布终端设备的使用所创建的数据等。此外,存储装置72可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置72可进一步包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置73可用于接收输入的数字或字符信息,以及产生与发布终端设备的用户设置以及功能控制有关的键信号输入。输出装置74可包括显示屏等显示设备。
并且,当上述发布终端设备所包括一个或者多个程序被所述一个或者多个处理器71执行时,程序进行如下操作:
基于开发平台所上传当前版本的应用软件,形成当前待发布安装包;
按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件;
接收开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联;
根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述差异升级包实现所述应用软件的升级。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行应用软件的升级方法。
如应用于实现应用软件发布的发布终端的方法,该方法包括:
基于开发平台所上传当前版本的应用软件,形成当前待发布安装包;
按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件;
接收开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联;
根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述差异升级包实现所述应用软件的升级。
如应用于第三方安装终端的方法,该方法包括:
获取应用软件的差异升级包,所述差异升级包从发布终端侧下载;
获取当前已安装版本的所述应用软件对应的初始目录结构文件;
根据差异升级包及所述初始目录结构文件,执行对所述应用软件的升级安装。
可选的,该程序被处理器执行时还可以用于执行本发明任意实施例所提供的应用软件的升级方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (11)
1.一种应用软件的升级方法,其特征在于,应用于实现应用软件发布的发布终端,包括:
基于开发平台所上传当前版本的应用软件,形成当前待发布安装包;
按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件;
接收开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联;
根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述差异升级包实现所述应用软件的升级。
2.根据权利要求1所述的方法,其特征在于,按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件包括:
获取所述当前待发布安装包中所包括各第一安装文件的第一安装目录;
获取相对各所述第一安装文件预先确定的第一密码散列值;
以键值对形式记录各第一安装目录及相应的第一密码散列值,形成对应所述当前待发布安装包的当前目录结构文件。
3.根据权利要求2所述的方法,其特征在于,所述历史目录结构文件中包括:第二安装文件的第二安装目录,以及第二安装文件的第二密码散列值;
所述第二安装文件包含在上一版本的应用软件所对应历史安装包中。
4.根据权利要求3所述的方法,其特征在于,根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,包括:
遍历所述当前目录结构文件和历史目录结构文件的键值对;
确定仅存在于所述当前目录结构文件中的第一键值对,从所述当前目录结构文件中筛选与第二安装目录相同、与相应第二密码散列值不同的第二键值对;
确定与各所述第一键值对关联的第一差异安装文件,以及与各所述第二键值对关联的第二差异安装文件;
对各所述第一差异安装文件、各所述第二差异安装文件进行打包以及所述各第一安装目录进行压缩打包,形成所述应用程序的差异升级包。
5.根据权利要求1-4任一所述的方法,其特征在于,在生成所述当前待发布安装包中的差异升级包之后,还包括:
通过将所述差异升级包存储到设定下载目录中实现升级包发布,以供所述第三方安装终端下载。
6.一种应用软件的升级方法,其特征在于,应用于第三方安装终端,包括:
获取应用软件的差异升级包,并生成所述差异升级包对应的差异目录结构文件,所述差异升级包从发布终端侧下载;
根据所述差异目录结构文件,执行对所述应用软件的升级安装。
7.根据权利要求6所述的方法,其特征在于,根据所述差异目录结构文件,执行对所述应用软件的升级安装,包括:
遍历所述差异目录结构文件,获取包括的各差异安装目录;
根据各所述差异安装目录,确定差异升级包中各差异安装文件对应的目标安装路径;
将各所述差异安装文件按照相应的目标安装路径进行添加或替换,然后形成所述应用软件的本地目录结构文件;
如果所述本地目录结构文件中具备的各本地安装目录与所述差异升级包所携带的各第一安装目录一致,则确定完成所述应用软件的升级安装。
8.一种应用软件的升级装置,其特征在于,配置于应用软件发布的发布终端,包括:
安装包形成模块,用于基于开发平台所上传当前版本的应用软件,形成当前待发布安装包;
文件生成模块,用于按照给定的文件生成格式,生成所述当前待发布安装包的当前目录结构文件;
接收模块,用于接收软件开发平台反馈的历史目录结构文件,所述历史目录结构文件与上一版本的应用软件关联;
升级模块,用于根据所述当前目录结构文件及历史目录结构文件,生成所述应用程序的差异升级包,以使第三方安装终端通过所述差异升级包实现所述应用软件的升级。
9.一种应用程序的升级装置,其特征在于,配置于第三方安装终端,包括:
第一获取模块,用于获取应用软件的差异升级包,所述差异升级包从发布终端侧下载;
第二获取模块,用于获取当前已安装版本的所述应用软件对应的初始目录结构文件;
执行模块,用于根据差异升级包及所述初始目录结构文件,执行对所述应用软件的升级安装。
10.一种发布终端设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的应用软件的升级方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的应用软件的升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011540038.XA CN112558994A (zh) | 2020-12-23 | 2020-12-23 | 一种应用软件的升级方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011540038.XA CN112558994A (zh) | 2020-12-23 | 2020-12-23 | 一种应用软件的升级方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112558994A true CN112558994A (zh) | 2021-03-26 |
Family
ID=75031587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011540038.XA Pending CN112558994A (zh) | 2020-12-23 | 2020-12-23 | 一种应用软件的升级方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112558994A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986331A (zh) * | 2021-10-29 | 2022-01-28 | 重庆富民银行股份有限公司 | 一种基于差异环境应用推送发布的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693302A (zh) * | 2012-05-21 | 2012-09-26 | 浙江省公众信息产业有限公司 | 快速文件比对方法、系统及客户端 |
CN103136013A (zh) * | 2011-12-01 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
CN104281504A (zh) * | 2014-10-30 | 2015-01-14 | 广东欧珀移动通信有限公司 | 一种基于md5码的应用程序数据备份还原的方法及系统 |
WO2018039875A1 (zh) * | 2016-08-29 | 2018-03-08 | 北京小米移动软件有限公司 | 应用升级包获取方法及装置 |
CN107943532A (zh) * | 2017-11-06 | 2018-04-20 | 北京潘达互娱科技有限公司 | 直播软件升级包发布方法、装置、电子设备以及存储介质 |
CN111381858A (zh) * | 2018-12-29 | 2020-07-07 | 深圳Tcl新技术有限公司 | 一种应用程序升级方法、服务器及终端设备 |
-
2020
- 2020-12-23 CN CN202011540038.XA patent/CN112558994A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136013A (zh) * | 2011-12-01 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
WO2013078951A1 (zh) * | 2011-12-01 | 2013-06-06 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
CN102693302A (zh) * | 2012-05-21 | 2012-09-26 | 浙江省公众信息产业有限公司 | 快速文件比对方法、系统及客户端 |
CN104281504A (zh) * | 2014-10-30 | 2015-01-14 | 广东欧珀移动通信有限公司 | 一种基于md5码的应用程序数据备份还原的方法及系统 |
WO2018039875A1 (zh) * | 2016-08-29 | 2018-03-08 | 北京小米移动软件有限公司 | 应用升级包获取方法及装置 |
CN107943532A (zh) * | 2017-11-06 | 2018-04-20 | 北京潘达互娱科技有限公司 | 直播软件升级包发布方法、装置、电子设备以及存储介质 |
CN111381858A (zh) * | 2018-12-29 | 2020-07-07 | 深圳Tcl新技术有限公司 | 一种应用程序升级方法、服务器及终端设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986331A (zh) * | 2021-10-29 | 2022-01-28 | 重庆富民银行股份有限公司 | 一种基于差异环境应用推送发布的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9021443B1 (en) | Test automation API for host devices | |
US8612947B2 (en) | System and method for remotely compiling multi-platform native applications for mobile devices | |
CN113326058B (zh) | 一种应用的版本更新方法、装置、设备及介质 | |
CN104714819A (zh) | 文件系统升级包制作方法、升级方法及装置、终端 | |
CN107239309B (zh) | 补丁生成方法及装置、更新方法、电子设备、存储介质 | |
CN105511911A (zh) | 系统固件升级包的生成方法及装置 | |
CN106843976B (zh) | 用于生成镜像文件的方法和装置 | |
CN111240722B (zh) | 空中升级固件的方法及其所应用的终端、服务器及系统 | |
CN105867973A (zh) | 应用程序中so文件的加载方法及系统 | |
CN102541596A (zh) | 一种操作系统升级方法及装置 | |
CN110162334B (zh) | 一种代码管理方法、装置及存储介质 | |
CN109391673A (zh) | 一种管理更新文件的方法、系统及终端设备 | |
CN113934426A (zh) | 软件包处理方法、装置、系统、设备及介质 | |
CN105072398B (zh) | 一种设备升级方法和装置 | |
CN113434158A (zh) | 一种大数据组件的自定义管理方法、装置、设备及介质 | |
CN112148297A (zh) | 一种服务器智能加密打包方法和装置 | |
CN113342386A (zh) | 一种go服务器热更新方法及相关设备 | |
CN115515012B (zh) | 一种密钥烧录方法、装置、电子设备板卡及存储介质 | |
CN112558994A (zh) | 一种应用软件的升级方法、装置、设备和存储介质 | |
CN113127000B (zh) | 应用程序组件的编译方法、装置、设备及存储介质 | |
CN111666079A (zh) | 软件升级的方法、装置、系统、设备和计算机可读介质 | |
CN115129574A (zh) | 一种代码测试方法和装置 | |
EP3346642A1 (en) | Method and device for managing network element model | |
CN112543104A (zh) | 应用程序打包方法、装置、电子设备及存储介质 | |
CN111427607A (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 |