CN112328295A - 软件更新方法及装置 - Google Patents
软件更新方法及装置 Download PDFInfo
- Publication number
- CN112328295A CN112328295A CN202011333850.5A CN202011333850A CN112328295A CN 112328295 A CN112328295 A CN 112328295A CN 202011333850 A CN202011333850 A CN 202011333850A CN 112328295 A CN112328295 A CN 112328295A
- Authority
- CN
- China
- Prior art keywords
- software
- file
- data
- version information
- target
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012423 maintenance Methods 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 9
- 238000007726 management method Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 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/65—Updates
- G06F8/658—Incremental updates; Differential 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)
- 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为本发明实施例中电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一方面,本发明实施例提供了一种软件更新方法,参考图1所示,包括如下步骤:
S101、获取目标软件的第一本地文件。
具体的,获取的第一本地文件包含软件代码本身、模板数据文件、虚拟数据文件等等的一种或者多种。
如果应用于软件维护者所使用的管理设备,则第一本地文件是指软件维护者进行维护或者升级之后生成的数据文件。如果应用于软件使用者所使用的管理设备,则第一本地文件是目标软件当前运行版本的数据文件。
S102、获取目标软件的第一文件版本信息。
可以从服务端获取目标软件的第一文件版本信息,比如,目标软件的第一文件版本信息包含如下一种或者多种信息:当前软件版本包含的每个数据文件的文件名称、每个数据文件的文件相对路径以及每个数据文件的MD5码。
更具体来讲,存储在服务端的第一软件版本信息中包含第一文件版本信息,则从第一软件版本信息中获取第一文件版本信息。服务端保存有目标软件的多个历史软件版本的软件版本信息,而第一软件版本信息是目标软件的当前软件版本的版本信息。
在具体实施时,连接服务端并进入在服务端针对目标软件设置的软件目录,其中,在针对目标软件设置的软件目录下包含目标软件的每个软件版本的软件版本信息、文件目录以及每个软件版本的数据文件。从软件目录获取目标软件的软件版本信息,从而获得第一软件版本信息。具体的,可以是与服务端自动进行连接,或者在需要进行连接时基于连接操作建立与服务端的连接。
在本发明实施例中,在服务端保存一个以上软件产品所有版本的软件数据和软件版本信息,用于提供对一个或者多个软件产品的软件数据的更新服务。比如,在服务端保存有软件产品A所有版本的软件数据和软件版本信息、以及软件产品B所有版本的软件数据和软件版本信息,……,等等。对于来自不同软件维护者的管理设备的开发和维护的各种软件数据,在服务端进行组织和存储,使得在服务端保存有不同软件产品的不同软件版本的软件数据和软件版本信息,从而不需要单独针对每个软件产品的每一个软件版本都分别保存全部软件数据,而是以软件版本信息将一个软件产品的全部版本的软件数据进行组织,从而在服务端能够完整获取到所有软件产品的各软件版本的软件数据,并且了节省服务端的数据存储空间,以及能在更新软件时减少上传和下载的数据量。
具体的,在服务端的根目录或者在服务端预先建立的固定目录下建立不同名称的目录,用于对应存储不同软件产品的软件数据和软件版本信息。针对同一软件产品,通过软件版本信息在服务端组织同一软件产品不同软件版本的软件数据,让同一软件产品不同软件版本的软件数据同时存放在服务端。能够从服务端完整获取到每个软件产品所有版本的软件数据;比如,在服务端的某个固定目录A下有“功能软件1”、“功能软件2”、“功能软件3”等多个软件目录,分别用来存放功能软件1-3的软件数据和软件版本信息。
针对任意一个软件产品而言,在服务端对应的软件目录下存储的软件版本信息的形式可以但限于是软件版本信息,参考图2所示,软件版本信息中包含:软件版本列表、目录数据列表以及数据文件列表这三方面的版本信息:
其中,软件版本信息的结构参考图2所示,软件版本列表的形式如下:版本1.0,版本1.1,版本1.2,……,软件版本列表下记录了该软件产品每个软件版本的版本基本信息,每个软件版本的版本基本信息具体包括如下一种或者多种信息:①版本号;②包含的目录数据列表;③包含的文件数据列表、以及各文件在对应文件数据列表中的文件版号;④软件启动文件;⑤更新人信息、更新时间、更新说明等等。
其中,目录数据列表下包含该软件产品不同软件版本的目录信息,形式参考图2所示:目录1、目录2、目录1下的目录3等等。
其中,文件数据列表下包含该软件产品不同软件版本的文件信息,形式参考图2所示,文件1、目录1下的文件2,每个文件的文件信息包括:文件名称、文件相对路径、文件版本列表以及文本版本信息摘要。
针对任意一个软件产品而言,在服务端对应的软件目录下的软件数据包含:文件目录,文件目录是实际存在的真实目录,在文件目录下存储有对应的数据文件,文件目录与目录数据列表中的目标名称一一对应。比如,目标数据文件存储在对应的文件目录下,针对新的数据文件,对应在服务端新建文件目录,新的数据文件则存储至该新建文件目录下,并在软件版本信息进行相应记录。
具体的,针对每个数据文件而言,服务端存储该数据文件的名称是在原有文件名称的基础上添加版号,格式是“[原有文件名]_[版本号]”。其中版本号是该数据文件的版本号,从0开始,只有再次上传同名的数据文件,但是数据内容不同时才进版为1,以此类推。
这些数据文件是按照相对目录结构存储在服务端的。比如“功能软件1”的实际根目录下有“数据文件1”,那么在服务端的“功能软件1”目录下,也对应有“数据文件1_[版本号]”这样一个数据文件;如果在功能软件1实际的根目录下有“目录1\数据文件2”,那么服务端也会有“目录1\文件2_[版本号]”这样一个数据文件。
而目标软件可以是服务端上存储的任意一个软件产品。目标软件的软件数据包含目标软件不同软件版本的数据文件和文件目录,每个数据文件存储在对应文件目录下。目标软件的软件版本信息包含每个数据文件的文件版本信息,第一文件版本信息具体是:目标软件的第一软件版本信息所需包含的每个数据文件的文件版本信息。在具体实施时,每个数据文件的文件版本信息是对数据文件的信息摘要,比如,可以是对数据文件计算的MD5(message-digestalgorithm5,Message-Digest Algorithm)码。
服务端的上述软件版本信息的结构是用来组织不同软件版本的软件数据,实现不同软件版本的软件数据同时存放在服务端,能够完整获取到所有版本的软件数据;并且最大程度节省数据存储空间;以及在更新软件时,减少上传和下载的数据量。
S103、对比第一本地文件与第一文件版本信息之间差异,得到第一软件差异数据。
在步骤S103中,具体是根据第一文件版本信息获取文件版本信息摘要;计算第一本地文件的信息摘要;根据第一本地文件的信息摘要与文件版本信息摘要,确定出第一软件差异数据。
具体的,针对目标软件而言,第一本地文件包含一个或者多个,针对每个第一本地文件与第一文件版本信息进行对比,得到第一软件差异数据,其中,得到的第一软件差异数据包括如下三方面:
1、服务端没有与第一本地文件的文件名称相同的数据文件,表明第一本地文件是目标软件在下一个软件版本中需要新增的数据文件;
2、本地不存在与第一数据文件名称相同的本地文件,则表明第一本地文件是目标软件在下一个软件版本中不需要的数据文件。
3、服务端保存有与第一本地文件的文件名称相同的数据文件,但是文件内容不同。具体来讲,文件内容差异的对比通过如下实施方式确定:从相同文件名称的数据文件的第一文件版本信息中获取文件版本信息摘要(比如,可以是最新文件版本的MD5码);针对第一本地文件计算出信息摘要;对比第一本地文件的信息摘要与文件版本信息摘要,得到第一软件差异数据。如果MD5码相同,则表明该数据文件的文件内容没有发生变化。如果MD5码不相同,则表明第一本地文件相对于该数据文件的文件内容发生变化。
S104、根据第一软件差异数据,对目标软件的软件数据和/或第一软件版本信息进行更新。
具体来讲,若步骤S102是为了通过管理设备将软件维护者上传到服务端,在对比目标软件的第一本地文件与从服务端获取的第一文件版本信息之间的差异,得到第一软件差异数据,将第一软件差异数据上传至服务端,以对服务端存储的目标软件的软件数据和/或第一软件版本信息进行更新,并且仅上传软件差异数据,而不需要将整个更新后软件上传到服务端,减少了向服务端进行更新上传时的数据量。
具体的,在实施步骤S104时,包括:根据第一软件差异数据,对所述目标软件存储在服务端的软件数据进行更新;根据更新结果,对存储在所述服务端的第一软件版本信息进行修改,得到第二软件版本信息。
根据第一软件差异数据,对目标软件存储在服务端的软件数据进行更新时,包含:新建文件目录,并将新的数据文件上传到对应的文件目录下。
存储在服务端的第一软件版本信息进行修改,包括:在目标软件对应的软件版本信息中进行修改/新增加数据文件的记录。
步骤1:根据第一软件差异数据,根据第一本地文件中确定上传操作列表;具体的,上传操作列表包含待新建的文件目录、待上传的数据文件。如果不需要新建文件目录,仅仅包含待上传的数据文件;如果需要新建文件目录,则包含待新建的文件目录的目录名称以及待上传的数据文件。
步骤2:根据上传操作列表向服务端上传新的数据文件,对目标软件存储在服务端的软件数据进行更新。
具体的,根据实际情况,步骤S3032中上传数据文件包括一种或者两种:一、针对上传操作列表中需要新建文件目录的数据文件,则新建文件目录,并上传该数据文件至对应新建的文件目录下。对于上传操作列表中不需要新建文件目录的数据文件,则将该数据文件上传至服务端上对应的原有文件目录下。比如,在原有文件目录A下新增一个数据文件。
步骤3:根据更新结果,对存储在服务端的目标软件的第一软件版本信息进行修改,得到第二软件版本信息。
通过对第一软件版本信息进行修改,实现对此次软件更新进行了适当记录。对于第一软件版本信息的修改根据实际情况,包括但是不限于如下一种或者多种:
①在软件版本列表下添加下一个软件版本的软件版本条目:比如,当前最新版本是版本1.1,则在软件版本列表下添加下一个软件版本为“软件版本1.3”,并记录软件版本1.3的版本基本信息;②在目录数据列表下添加新建文件目录的目录名称;③在文件数据列表下记录新增数据文件的文件名称、文件相对路径、文件版本、以及文件版本对应的MD5码;等等。
进一步的,由于同一软件产品中有多种不同类型的软件数据需要维护更新,其中,需要维护更新的数据类型包括:软件代码、模板数据和虚拟数据等等,为了提高维护效率,希望不同类型的软件数据由不同的软件维护者进行维护,比如,多个软件产品的模板数据由一个软件维护者维护,多个软件产品的虚拟数据由另一个软件维护者进行维护,每个软件产品的软件代码本身由各自的软件维护者分别进行维护。同一份模板数据可以被应用到不同的软件产品中,比如,功能软件1和功能软件2均可以使用到同一份模板数据。同一个软件产品可以被多个软件维护者进行维护,因此,可以提高维护效率,且实现精准维护。
但是多人维护同一软件产品会存在相互干扰问题。为了解决多人同时维护同一软件产品时的相互干扰问题,根据第一软件差异数据,分多个维护层次对服务端存储的软件数据和/或软件版本信息进行更新,即:如果获取的第一本地文件位于针对目标数据类型设置的独立维护目录中,针对存储在服务端的多个软件产品,对需要第一本地文件的每个软件产品的软件数据进行更新,以及对需要第一本地文件的每个软件产品的软件版本信息进行修改;否则,仅仅对服务端存储的目标软件的软件数据和/或软件版本信息进行更新。
具体来讲,每个软件产品的软件数据中包含软件代码、模板数据、虚拟数据等N个类型,N为大于1的整数;如果获取的第一本地文件位于针对目标数据类型设置的独立维护目录中,目标数据类型为不同软件产品可以通用的数据,比如模板数据和虚拟数据,而软件代码则不属于目标数据类型。
为了实现分N个维护层次对服务端上存储的软件数据和软件版本信息进行更新,需要针对每个单独维护的层次,在本地的根目录下对应设置有本地维护目录,比如,可以分别设置模板数据目录、虚拟数据目录等多个独立的维护目录;在服务端针对每个需要单独维护的层次设置独立维护目录。便于不同的软件维护者单独对模板数据和虚拟数据分别进行维护,而不必仅仅对哪一个软件产品的模板数据和虚拟数据进行维护。
具体来讲,基于软件维护者的选择操作,如果是选择针对软件代码本身设置的维护目录,触发连接服务端,则在服务端存储的目标软件的软件数据和/或软件版本信息进行更新,而不会维护到其他软件产品的软件数据。如果基于软件维护者的选择操作,是从针对目标软件预先设置的N个单独的本地维护目录中选择目标本地维护目录。则触发连接服务端,并进入服务端上与所选择目标本地维护目录对应的独立维护目录下,以在服务端对每个需要使用到第一本地文件的软件产品的软件数据和/或者软件版本信息进行更新。
如果第一本地文件为模板数据文件,则第一本地文件位于针对模板数据类型设置的第一独立维护目录,服务端对每个需要使用到该模板数据文件的软件产品的模板数据和软件版本信息进行更新;
其他类型的数据则不需要进行维护,不需要涉及目标软件目前是处于什么版本,最新的数据文件是什么;也不会破坏目标软件中其他类型的软件数据,同样的模板数据,只需更新一次,就可以同时更新给所有使用到的软件产品,不需要分别对每个软件产品的模板数据进行一一维护更新。使得软件维护者的维护工作变得比较单纯、方便。
如果第一本地文件为虚拟数据文件,则第一本地文件位于针对虚拟数据类型设置的第二独立维护目录,服务端对每个需要使用到该虚拟数据文件的软件产品的虚拟数据和软件版本信息进行更新。
如果没有分多个维护层次,根据上传操作列表向服务端上传新的数据文件之后,对目标软件的第一软件版本信息进行修改,以对目标软件的此次维护更新进行记录。
进一步的,如果前文所述的软件维护方法是应用于软件维护者的管理设备,针对的是软件维护者维护或者升级所生成的第一本地文件,则能够对服务端存储的目标软件的软件数据进行更新,在对存储在服务端的所述第一软件版本信息进行修改,得到第二软件版本信息之后,根据服务端存储的目标软件的软件数据和第二软件版本信息,对在使用者的用户设备安装的目标软件进行更新,具体包括如下步骤:
即在软件维护者的管理设备执行步骤S104之后,已经完成了对目标软件的维护或者升级,并保存至了服务端。但是用户设备上的目标软件的软件版本并未更新,为了实现对用户设备上安装的目标软件进行更新,还包括如下步骤:
步骤105、在启动安装在用户设备的所述目标软件时,获取目标软件在用户设备的第二本地文件。
步骤106、从第二软件版本信息中提取第二文件版本信息,并对比第二本地文件与第二文件版本信息之间差异,得到第二软件差异数据。
在用户设备安装的目标软件启动时连接至服务端,并进入在服务端上针对目标软件设置的软件目录;从软件目录获取目标软件的第二软件版本信息;从第二软件版本信息中读取目标软件的第二文件版本信息。根据第二文件版本信息,获取文件版本信息摘要;计算所述第二本地文件的信息摘要;根据第二本地文件的信息摘要与第二文件版本信息的文件版本信息摘要,确定出所述第二软件差异数据。
需要说明的是,第二软件差异数据的确定方式与第一软件差异数据的确定方式的实施原理相同,为了说明书的简洁,在此不再赘述。
步骤107、根据第二软件差异数据,对目标软件存储在用户设备的软件数据进行更新,得到更新后目标软件;
具体来讲,根据第二软件差异数据生成下载操作列表,下载操作列表包含待新建的文件目录和待下载的数据文件;根据下载操作列表,执行文件目录新建,并下载新的数据文件;关闭目标软件,并根据下载操作列表执行数据文件和文件目录的替换,得到更新后目标软件;
在一可选的实施方式下,生成下载操作列表之后,创建临时下载目录,再在临时下载目录新建文件目录。
在一可选的实施方式下,具体的,如果划分了多个维护层次,则基于预先设定的维护次序和所述第二软件差异数据,对所述目标软件存储在所述用户设备的软件数据进行更新。
具体的,预先设置的维护次序可以是:1、软件代码的更新;2、模板数据的更新;3、虚拟数据的更新;4、…
重新启动更新后的目标软件之后,根据新的软件数据判断是否对目标软件进行整体更新,如果是,则替换目标软件在用户设备的所有文件目录下的数据文件,完成对目标软件进行整体更新,再依次根据新的软件数据更新下载对应每个需要单独维护的层次中软件数据,这样能够让各个文件目录中的软件数据保证版本最新;如果不需要对目标软件进行整体更新,则直接依次根据新的软件数据更新下载对应每个需要单独维护的层次中软件数据,避免影响其他目录下的软件数据,起到数据隔离保护的作用,从服务端的模板数据文件目录下载的模板数据,替换目标软件的模板目录中模板数据,而不影响目标软件其他目录下的软件数据。
基于上述维护次序更新目标软件的方式,能够满足在软件启动时,自动从服务端更新到最新的部分数据(比如,模板数据)。在软件运行过程中也可以热更新模板数据。也可以热更新上传到模板数据中,可以分享给其他的用户。
步骤108、根据第二软件版本信息,在用户设备启动更新后目标软件。
在一可选的实施方式下,重新启动更新后的目标软件之后,检测软件更新是否失败,如果失败,提示是否需要强制关闭目标软件。如果选择是,则强制关闭目标软件。
第二方面,基于同一发明构思,本发明实施例提供一种软件更新装置,参考图3所示,包括:
第一文件获取单元301,用于获取目标软件的第一本地文件;
第一信息获取单元302,用于获取所述目标软件的第一文件版本信息;
第一对比单元303,用于对比所述第一本地文件与所述第一文件版本信息之间差异,得到第一软件差异数据;
第一更新单元304,用于根据所述第一软件差异数据,对所述目标软件的软件数据和/或第一软件版本信息进行更新。
在一可选的实施方式下,第一对比单元303,具体用于:
根据所述第一文件版本信息,获取文件版本信息摘要;
计算所述第一本地文件的信息摘要;
根据所述第一本地文件的信息摘要与所述文件版本信息摘要,确定出所述第一软件差异数据。
在一可选的实施方式下,第一更新单元304具体用于:
根据所述第一软件差异数据,对所述目标软件存储在服务端的软件数据进行更新;
根据更新结果,对存储在所述服务端的所述第一软件版本信息进行修改,得到第二软件版本信息。
在一可选的实施方式下,如果获取的所述第一本地文件位于针对目标数据类型设置的独立维护目录中,该装置还包括:
第二更新单元,用于针对存储在所述服务端的多个软件产品,对需要所述第一本地文件的每个软件产品的软件数据进行更新;对需要所述第一本地文件的每个软件产品的软件版本信息进行修改。
在一可选的实施方式下,如果所述第一本地文件为模板数据文件,则所述第一本地文件位于针对模板数据类型设置的第一独立维护目录;
如果所述第一本地文件为虚拟数据文件,则所述第一本地文件位于针对虚拟数据类型设置的第二独立维护目录。
在一可选的实施方式下,还包括:
第二文件获取单元,用于在启动安装在用户设备的所述目标软件时,获取所述目标软件在所述用户设备的第二本地文件;
第二数据获取单元,用于从所述第二软件版本信息中提取第二文件版本信息,并对比所述第二本地文件与所述第二文件版本信息之间差异,得到第二软件差异数据;
第三更新单元,用于根据所述第二软件差异数据,对所述目标软件存储在所述用户设备的软件数据进行更新,得到更新后目标软件;
启动单元,用于根据所述第二软件版本信息,在所述用户设备启动所述更新后目标软件。
在一可选的实施方式下,第三更新单元,具体用于:
基于预先设定的维护次序和所述第二软件差异数据,对所述目标软件存储在所述用户设备的软件数据进行更新。
第三方面,基于同一发明构思,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时前文软件更新方法实施例,为了说明书的简洁,在此不再赘述。
基于同一发明构思,本发明实施例提供一种服务车辆装置,参考图4所示,包括存储器404、处理器402及存储在存储器404上并可在处理器402上运行的计算机程序,处理器402执行程序时实现前文方法实施例所描述的服务车辆分配方法,为了说明书的简洁,此处不再赘述。
其中,在图4中,总线架构(用总线400来代表),总线400可以包括任意数量的互联的总线和桥,总线400将包括由处理器402代表的一个或多个处理器和存储器304代表的存储器的各种电路链接在一起。总线400还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口405在总线400和接收器401和发送器403之间提供接口。接收器401和发送器403可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器402负责管理总线400和通常的处理,而存储器404可以被用于存储处理器402在执行操作时所使用的数据。
第四方面,基于同一发明构思,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行所述程序时前文软件更新方法实施例,为了说明书的简洁,在此不再赘述。
通过获取目标软件的第一本地文件;获取目标软件的第一文件版本信息;对比所述第一本地文件与第一文件版本信息之间差异,得到第一软件差异数据;根据所述第一软件差异数据,对目标软件的软件数据和/或第一软件版本信息进行更新,从而仅仅对差异部分进行管理,不需要每次都进行一次性更新全部软件数据,比如,在软件的数据内容改动较小,避免上传和下载整个软件的安装包,减少上传和下载的数据量,提高软件更新升级和维护的效率。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种软件更新方法,其特征在于,包括:
获取目标软件的第一本地文件;
获取所述目标软件的第一文件版本信息;
对比所述第一本地文件与所述第一文件版本信息之间差异,得到第一软件差异数据;
根据所述第一软件差异数据,对所述目标软件的软件数据和/或第一软件版本信息进行更新。
2.如权利要求1所述的方法,其特征在于,所述对比所述第一本地文件与所述第一文件版本信息之间差异,得到第一软件差异数据,包括:
根据所述第一文件版本信息,获取文件版本信息摘要;
计算所述第一本地文件的信息摘要;
根据所述第一本地文件的信息摘要与所述文件版本信息摘要,确定出所述第一软件差异数据。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述第一软件差异数据,对所述目标软件的软件数据和/或第一软件版本信息进行更新,包括:
根据所述第一软件差异数据,对所述目标软件存储在服务端的软件数据进行更新;
根据更新结果,对存储在所述服务端的所述第一软件版本信息进行修改,得到第二软件版本信息。
4.如权利要求3所述的方法,其特征在于,如果获取的所述第一本地文件位于针对目标数据类型设置的独立维护目录中,在所述得到第一软件差异数据之后,还包括:
针对存储在所述服务端的多个软件产品,对需要所述第一本地文件的每个软件产品的软件数据进行更新;
对需要所述第一本地文件的每个软件产品的软件版本信息进行修改。
5.如权利要求4所述的方法,其特征在于:
如果所述第一本地文件为模板数据文件,则所述第一本地文件位于针对模板数据类型设置的第一独立维护目录;
如果所述第一本地文件为虚拟数据文件,则所述第一本地文件位于针对虚拟数据类型设置的第二独立维护目录。
6.如权利要求3所述的方法,其特征在于,在所述对存储在所述服务端的所述第一软件版本信息进行修改,得到第二软件版本信息之后,还包括:
在启动安装在用户设备的所述目标软件时,获取所述目标软件在所述用户设备的第二本地文件;
从所述第二软件版本信息中提取第二文件版本信息,并对比所述第二本地文件与所述第二文件版本信息之间差异,得到第二软件差异数据;
根据所述第二软件差异数据,对所述目标软件存储在所述用户设备的软件数据进行更新,得到更新后目标软件;
根据所述第二软件版本信息,在所述用户设备启动所述更新后目标软件。
7.如权利要求6所述的方法,其特征在于,根据所述第二软件差异数据,对所述目标软件存储在所述用户设备的软件数据进行更新,包括:
基于预先设定的维护次序和所述第二软件差异数据,对所述目标软件存储在所述用户设备的软件数据进行更新。
8.一种软件更新装置,其特征在于,包括:
文件获取单元,用于获取目标软件的第一本地文件;
信息获取单元,用于获取所述目标软件的第一文件版本信息;
对比单元,用于对比所述第一本地文件与所述第一文件版本信息之间差异,得到第一软件差异数据;
更新单元,用于根据所述第一软件差异数据,对所述目标软件的软件数据和/或第一软件版本信息进行更新。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-7中任一所述方法。
10.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-7中任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011333850.5A CN112328295B (zh) | 2020-11-25 | 2020-11-25 | 软件更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011333850.5A CN112328295B (zh) | 2020-11-25 | 2020-11-25 | 软件更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112328295A true CN112328295A (zh) | 2021-02-05 |
CN112328295B CN112328295B (zh) | 2024-09-24 |
Family
ID=74308639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011333850.5A Active CN112328295B (zh) | 2020-11-25 | 2020-11-25 | 软件更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328295B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112947976A (zh) * | 2021-04-26 | 2021-06-11 | 统信软件技术有限公司 | 一种操作系统升级方法、计算设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136013A (zh) * | 2011-12-01 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
CN104281504A (zh) * | 2014-10-30 | 2015-01-14 | 广东欧珀移动通信有限公司 | 一种基于md5码的应用程序数据备份还原的方法及系统 |
WO2015003516A1 (zh) * | 2013-07-08 | 2015-01-15 | 惠州Tcl移动通信有限公司 | 生成升级包的方法、服务器、软件升级方法、移动终端 |
US20160188316A1 (en) * | 2014-12-31 | 2016-06-30 | Guangzhou Ucweb Computer Technology Co., Ltd. | Method and apparatus for software update management |
CN106250148A (zh) * | 2016-08-01 | 2016-12-21 | 浪潮软件集团有限公司 | 一种基于ant的项目差量升级方法 |
CN106790432A (zh) * | 2016-12-05 | 2017-05-31 | 广州谷得网络科技有限公司 | 一种软件更新方法及装置 |
-
2020
- 2020-11-25 CN CN202011333850.5A patent/CN112328295B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136013A (zh) * | 2011-12-01 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 软件升级方法和系统 |
WO2015003516A1 (zh) * | 2013-07-08 | 2015-01-15 | 惠州Tcl移动通信有限公司 | 生成升级包的方法、服务器、软件升级方法、移动终端 |
CN104281504A (zh) * | 2014-10-30 | 2015-01-14 | 广东欧珀移动通信有限公司 | 一种基于md5码的应用程序数据备份还原的方法及系统 |
US20160188316A1 (en) * | 2014-12-31 | 2016-06-30 | Guangzhou Ucweb Computer Technology Co., Ltd. | Method and apparatus for software update management |
CN106250148A (zh) * | 2016-08-01 | 2016-12-21 | 浪潮软件集团有限公司 | 一种基于ant的项目差量升级方法 |
CN106790432A (zh) * | 2016-12-05 | 2017-05-31 | 广州谷得网络科技有限公司 | 一种软件更新方法及装置 |
Non-Patent Citations (2)
Title |
---|
XIN JIN等: "Incremental Update for a Compositional SDN Hypervisor", HOT TOPICS IN SOFTWARE DEFINED NETWORKING, 22 August 2014 (2014-08-22), pages 187 - 192, XP058053576, DOI: 10.1145/2620728.2620731 * |
施超: "基于Android平台OTA增量升级系统研究与设计", 中国优秀硕士学位论文全文数据库信息科技辑, no. 01, 15 January 2018 (2018-01-15), pages 7 - 10 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112947976A (zh) * | 2021-04-26 | 2021-06-11 | 统信软件技术有限公司 | 一种操作系统升级方法、计算设备及存储介质 |
CN112947976B (zh) * | 2021-04-26 | 2024-06-04 | 统信软件技术有限公司 | 一种操作系统升级方法、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112328295B (zh) | 2024-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7310801B2 (en) | Servicing a component-based software product throughout the software product lifecycle | |
US7934210B1 (en) | System and method for updating one or more programs and their environment | |
US8578371B2 (en) | Software distribution method and system with automatic prerequisite installation | |
US7694291B2 (en) | Build optimizer tool for efficient management of software builds for mobile devices | |
US8606765B2 (en) | Systems and methods for updating software appliances | |
US8347263B1 (en) | Repository including installation metadata for executable applications | |
US5752042A (en) | Server computer for selecting program updates for a client computer based on results of recognizer program(s) furnished to the client computer | |
US6408434B1 (en) | System and method for using a substitute directory to automatically install an update program | |
US8037198B2 (en) | Firmware upgrade for thin clients using one or more servers | |
US6202207B1 (en) | Method and a mechanism for synchronized updating of interoperating software | |
US7689983B2 (en) | Information processing method and apparatus and recording medium | |
CN104820602A (zh) | 软件包发布方法、装置及系统 | |
US6901590B2 (en) | System and method for single transparent deployment flow | |
CN107025108B (zh) | 从源代码管理(scm)系统将分级数据导出到产品生命周期管理(plm)系统 | |
CN107483241B (zh) | 一种在网元升级过程中下载升级镜像版本的方法和装置 | |
CN113342387A (zh) | 一种软件自动升级方法、更新客户端及更新服务器 | |
CN114024951B (zh) | 一种基于云边协同的电力边缘异构部署方法 | |
US8719812B1 (en) | Methods, systems, and computer readable media for dynamically modifying and utilizing a software package description for software installation | |
CN108920171A (zh) | 固件更新方法及装置、电子设备 | |
CN113535206B (zh) | 多版本代码升级方法及系统 | |
CN112328295A (zh) | 软件更新方法及装置 | |
CN108664255A (zh) | 一种软件升级方法及装置 | |
CN117492787A (zh) | 一种软件升级方法、终端设备及网络设备 | |
WO2017036197A1 (zh) | 一种网元模型管理方法及装置 | |
CN114756276A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |