CN104123149B - 软件升级方法、装置、客户端及系统 - Google Patents
软件升级方法、装置、客户端及系统 Download PDFInfo
- Publication number
- CN104123149B CN104123149B CN201310155618.0A CN201310155618A CN104123149B CN 104123149 B CN104123149 B CN 104123149B CN 201310155618 A CN201310155618 A CN 201310155618A CN 104123149 B CN104123149 B CN 104123149B
- Authority
- CN
- China
- Prior art keywords
- software
- upgrading
- information
- check information
- configuration
- 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
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供一种软件升级方法、装置、客户端及系统,其中的方法可包括:当客户端中的第一版本软件需要升级时,获取关于所述第一版本软件的增量升级文件;将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件;在所述客户端中安装所述第二版本软件。本发明在软件升级过程中,无需下载新版本软件的完整安装包,仅需要下载软件的增量升级文件,减少带宽资源的消耗,降低软件维护成本。
Description
技术领域
本发明涉及一种互联网技术领域,具体涉及软件技术领域,尤其涉及一种软件升级方法、装置、客户端及系统。
背景技术
软件(software),又可称为应用或应用软件,指采用程序设计语言编制得到的程序的集合,可以为用户提供在不同领域、解决不同问题的应用功能。
为了满足用户不断增长的应用需求,软件发布者需要定期或者不定期地提供软件的新版本软件的安装包,以实现客户端(例如:手机、笔记本电脑等)中旧版本软件的功能升级。现有的客户端软件的升级过程一般包括:软件发布者通过各个推广渠道发布新版本软件的安装包,用户可从各个推广渠道下载新版本软件的安装包,在客户端安装该新版本软件的安装包以替换客户端中的旧版本软件,完成软件升级,实现客户端中的软件的功能升级。然而,上述现有方案中,每次进行软件升级过程,均需要下载新版本软件的完整安装包,由于安装包的数据量一般较大(例如:一个APK(AndroidPackage,安卓系统的安装包)通常有16M),这需要消耗客户端中较大的带宽资源,提高了软件升级和维护成本。
发明内容
本发明实施例提供一种软件升级方法、装置、客户端及系统,在软件升级过程中,无需下载新版本软件的完整安装包,仅需要下载软件的增量升级文件,减少带宽资源的消耗,降低软件升级和维护成本。
本发明第一方面提供一种软件升级方法,可包括:
当客户端中的第一版本软件需要升级时,获取关于所述第一版本软件的增量升级文件;
将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件;
在所述客户端中安装所述第二版本软件。
本发明第二方面提供一种软件升级装置,可包括:
升级获取模块,用于当客户端中的第一版本软件需要升级时,获取关于所述第一版本软件的增量升级文件;
整合模块,用于将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件;
安装模块,用于在所述客户端中安装所述第二版本软件。
本发明第三方面提供一种客户端,可包括上述第二方面提供的软件升级装置。
本发明第四方面提供一种软件升级系统,包括服务器,还包括至少一个上述第三方面提供的客户端。
实施本发明实施例,具有如下有益效果:
本发明实施例中,当客户端中的第一版本软件需要升级时,无需下载新版本软件的完整安装包,仅需要获取关于所述第一版本软件的增量升级文件进行软件升级;由于增量升级文件的数据量相对于完整安装包的数据量通常较小(例如:一个APK安装包的增量升级文件通常仅有4M),从而有效的降低了带宽资源的消耗,降低软件升级和维护成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的软件的结构示意图;
图2为本发明实施例提供的软件的扩展字段的结构示意图;
图3为本发明实施例提供的增量升级文件的结构示意图;
图4为本发明实施例提供的一种软件升级方法的流程图;
图5为本发明实施例提供的另一种软件升级方法的流程图;
图6为本发明实施例提供的又一种软件升级方法的流程图;
图7为本发明实施例提供的一种软件升级装置的结构示意图;
图8为本发明实施例提供的另一种软件升级装置的结构示意图;
图9为本发明实施例提供的升级判断模块的结构示意图;
图10a为本发明实施例提供的升级获取模块的一个实施例的结构示意图;
图10b为本发明实施例提供的升级获取模块的另一个实施例的结构示意图;
图11a为本发明实施例提供的整合模块的一个实施例的结构示意图;
图11b为本发明实施例提供的整合模块的另一个实施例的结构示意图;
图12为本发明实施例提供的一种软件升级系统的结构示意图;
图13为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,客户端可以为:PC(PersonalComputer,个人计算机)、平板电脑、手机、智能手机、电子阅读器、笔记本电脑等终端设备中的任一种。软件可以包括但不限于:IM(InstantMessenger,即时通信)软件、SNS(SocialNetworkingServices,社会性网络服务)软件、浏览器软件等等。
本发明实施例中,第一版本软件又可称为“旧版本软件”或“OldFile”,可以指已安装于客户端中的软件;第二版本软件又可称为“新版本软件”或“NewFile”,指第一版本软件进行升级后的软件;第一版本软件与第二版本软件可以属于版本不同、但类型相同的软件,例如:若第一版本软件为第一版本的IM软件A,则第二版本软件为第二版本的IM软件A。
第一版本软件与第二版本软件也可以属于版本不同,类型也不同的软件,例如:若第一版本软件为第一版本的IM软件B,则第二版本软件可以为第二版本的SNS软件B。
关于所述第一版本软件的增量升级文件,指第一版本软件与第二版本软件的补丁差异文件;第一版本软件与所述增量升级文件可进行相应的补丁合成,整合为第二版本软件。
下面将结合附图1-附图3,对本发明实施例提供的软件的结构和增量升级文件的结构进行详细说明。需要说明的是,图1-图3所示的软件结构和增量升级文件的结构可以应用于本发明后续各实施例中。
请参见图1,为本发明实施例提供的软件的结构示意图;该软件可包括数据字段和扩展字段,即本发明实施例中,第一版本软件可包括第一数据字段和扩展字段;第二版本软件可包括第二数据字段和扩展字段;第一版本软件的扩展字段与第二版本软件的扩展字段相同。优选地,本发明实施例的增量升级文件指第一版本软件的第一数据字段与第二版本软件的第二数据字段的补丁差异文件。由于增量升级文件不考虑软件的扩展字段,无需针对不同扩展字段的同一版本软件分别生成相应的增量升级文件,针对同一版本软件,无论该软件的扩展字段的内容是否相同,均可以仅维护一个增量升级文件,从而可降低软件升级系统的维护成本。
其中,数据字段用于存储软件的数据信息,该数据信息可以为能够独立运行的程序,可用于实现软件的相应功能。其中,扩展字段用于存储软件的配置信息,例如:渠道编号、版本号、网络流量提醒等等。需要说明的是,本发明实施例的软件的数据字段,可以参与签名校验计算,获得软件的校验信息;而软件的扩展字段,可以无需参与签名校验计算。
请参见图2,为本发明实施例提供的软件的扩展字段的结构示意图;如图2所示,软件的扩展字段的结构说明如下:
扩展字段头部(Header):共8个字节,前4个字节用于存储软件标识的哈希码,后4个字节用于存储扩展字段的总长度信息;例如:以Android系统的客户端为例,在该客户端中的标识为“Micromsg”的IM软件的扩展字段中,Header的前4个字节包含了“Micromsg”这个字符串的哈希码,后4个字节存储了该IM软件的扩展字段的总长度;
校验信息:由软件的数据字段进行签名校验计算获得,可唯一标识软件;该校验信息可以采用校验算法进行计算获得,该校验算法包括但不限于:哈希算法、MD5(MessageDigestAlgorithm5,摘要算法第五版)算法等等。除特别说明外,本发明后续实施例中,软件的校验信息为该软件的MD5值;
渠道编号(ChannelID):指软件发布的目标推广渠道的编号,该编号可以由软件的发布商确定,例如:软件的官网的渠道编号可以为0000,或者第三方电子市场的渠道编号可以为0001,等等;
设备类型(ProfileDeviceType):用于存储默认值,例如:可存储一个空字符串;
升级模式(UpdateMode):指软件所采用的升级方式,该升级方式可包括但不限于:跳转至第三方电子市场进行升级,或者在软件的官网进行升级;
版本号(BuildVersion):指软件当前版本编号,例如:客户端中的第一版本软件的版本号为V1.0,等等;
第三方电子市场URL(UniformResourceLocator,统一资源定位符),当UpdateMode为跳转至第三方电子市场进行升级时,所跳转到的第三方电子市场的URL地址。
需要说明的是,图2所示的软件的扩展字段的结构仅为举例,当软件的配置信息发生变化时,扩展字段的结构也可能发生变化,例如:某软件定制了网络流量提醒的配置信息,则该软件的扩展字段除了包含如图2所示的结构之外,还可包含网络流量提醒的结构段,用于存储网络流量提醒的配置信息。
请参见图3,为本发明实施例提供的增量升级文件的结构示意图;其中,增量升级文件指第一版本软件与第二版本软件的补丁差异文件,具体为第一版本软件的第一数据字段与第二版本软件的第二数据字段的补丁差异文件。增量升级文件可以由第一版本软件的第一数据字段与第二版本软件的第二数据字段进行二进制差异计算获得,例如:可基于BSdiff(BinaryDiff,二进制差异)算法,对第一版本软件的第一数据字段和第二版本软件的第二数据字段进行计算,获得增量升级文件。相应地,第一版本软件的第一数据字段与增量升级文件可进行相应的合成,整合为第二版本软件的第二数据字段;例如:可基于BSPatch(BinaryPatch,二进制补丁合成,常与BSdiff配套使用)算法,对第一版本软件的第一数据字段和增量升级文件进行计算,生成第二版本软件的第二数据字段。如图3所示,增量升级文件的结构说明如下:
头部(Header):共8个字节,用于存储软件标识的哈希码,例如:以Android系统的客户端为例,在该客户端中的关于标识为“Micromsg”的IM软件的增量升级文件中,Header存储了“Micromsg”这个字符串的哈希码;
控制信息块长度(CtrlBlockLength):共8个字节,用于存储增量升级文件的控制信息块的总长度;
差异数据块长度(DiffBlockLength):共8个字节,用于存储增量升级文件的差异数据块的总长度;
新版本软件长度(NewFileLength):共8个字节,用于存储第二版本软件(或称新版本软件)的总长度;
控制信息块(CtrlBlock):用于存储第一版本软件的第一数据字段与增量升级文件的整合过程的控制信息;
差异数据块(DiffBlock):用于存储第二版本软件与第一版本软件的差异化数据信息,该差异化数据块的形成过程可以为:采用BSdiff算法,从第二版本软件的第二数据字段和第一版本软件的第一数据字段中寻找相似数据,然后将从第二版本软件的第二数据字段中查找到的相似数据和从第一版本软件的第一数据字段中查找到的相似数据进行二进制差异计算,得到差异化数据信息并存储至差异数据块(DiffBlock);
新增数据块(ExtraBlock):用于存储第二版本软件相对于第一版本软件的新增数据信息,该新增数据块的形成过程可以为:采用BSdiff算法,查找第二版本软件的第二数据字段相对于第一版本软件的第一数据字段的新增数据信息,将查找到的新增数据信息存入新增数据块(ExtraBlock)。
由上述可知,增量升级文件包括控制信息和数据信息,所述控制信息即为所述控制信息块(CtrlBlock)中所存储的信息,包括所述差异数据块(DiffBlock)中所存储的差异化数据信息和所述新增数据块(ExtraBlock)中所存储的新增数据信息。
再请参见图3,增量升级文件的结构中,控制信息块(CtrlBlock)中包含了至少一个子控制信息块,所述第一版本软件的第一数据字段与增量升级文件的整合过程的控制信息分布于所述至少一个子控制信息块中;所述至少一个子控制信息块按顺序存储于控制信息块(CtrlBlock)中。在软件升级过程中,按照所述至少一个子控制信息块在控制信息块(CtrlBlock)中的存储顺序,依次获取所述至少一个子控制信息块中的控制信息,以对第一版本软件的第一数据字段和增量升级文件包括的数据信息进行有序、准确地整合,形成第二版本软件的第二数据字段;例如:按照第一个子控制信息块中的控制信息,对第一版本软件的第一数据字段和增量升级文件中的数据信息进行整合,形成第二版本软件的第二数据字段的第一部分数据内容;再按照第二个子控制信息块中的控制信息,对第一版本软件的第一数据字段和增量升级文件中的数据信息进行整合,形成第二版本软件的第二数据字段的第二部分数据内容,将第二数据字段的第二部分数据内容顺序填充至第二数据字段的第一部分数据内容之后;以此类推,直至生成完整的第二数据字段。其中,子控制信息块的结构说明如下:
从旧版本文件和差异数据块读取的长度(ReadlengthfromoldfileandDiffBlock):共4个字节,用于在第一版本软件的第一数据字段与增量升级文件进行整合过程中,指示从第一版本文件(旧版本文件)的第一数据字段中读取的数据长度,以及从增量升级文件的差异数据块中读取的数据长度;
从新增数据块读取的长度(ReadlengthfromExtraBlock):共4个字节,用于在第一版本软件的第一数据字段与增量升级文件进行整合过程中,指示从增量升级文件的新增数据块中读取的数据长度;
旧版本文件跳读的长度(Oldfileskiplength):共4个字节,用于指示下一次数据读取时,需要从第一版本文件的第一数据字段中跳过第一版本软件的长度;例如:当根据子控制信息块对第一版本软件的第一数据字段和增量升级文件进行数据整合时,从第一版本软件的第一数据字段中跳过上一个子控制信息块中的旧版本文件跳读的长度之后,再进行数据的读取。
下面将结合附图4-附图6,对本发明实施例提供的软件升级方法进行详细介绍。需要说明的是,下述的方法流程可以由本发明实施例提供的软件升级装置所执行。
请参见图4,为本发明实施例提供的一种软件升级方法的流程图;该方法可包括以下步骤S101-步骤S103。
S101,当客户端中的第一版本软件需要升级时,获取关于所述第一版本软件的增量升级文件。
其中,所述第一版本软件包括第一数据字段和扩展字段;所述增量升级文件包括控制信息和数据信息。本步骤中,当客户端中的第一版本软件需要升级时,可以从服务器获取所述增量升级文件的地址信息,并根据该地址信息,下载所述增量升级文件。
S102,将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件。
其中,所述增量升级文件指第一版本软件与第二版本软件的补丁差异文件,因此相应地,在获得所述第一版本软件的增量升级文件之后,本步骤可以将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件。可以理解的是,本步骤的将所述第一版本软件和增量升级文件进行整合的过程,与第一版本软件与第二版本软件进行差异计算获得增量升级文件的过程属于相逆的过程。
S103,在所述客户端中安装所述第二版本软件。
在所述客户端中安装所述第二版本软件之后,该第二版本软件则可替换客户端中的所述第一版本软件,从而完成软件升级过程。
本发明实施例中,当客户端中的第一版本软件需要升级时,无需下载新版本软件的完整安装包,仅需要获取关于所述第一版本软件的增量升级文件进行软件升级;由于增量升级文件的数据量相对于完整安装包的数据量通常较小,从而有效的降低了带宽资源的消耗,降低软件升级和维护成本。
请参见图5,为本发明实施例提供的另一种软件升级方法的流程图;该方法可包括以下步骤S201-步骤S204。
S201,判断客户端中的第一版本软件是否需要升级。
本步骤中,可以在用户登录至第一版本软件时,发起对该第一版本软件的升级判断过程;或者,在用户已登录至第一版本软件之后,使用该第一版本软件的过程中,发起对该第一版本软件的升级判断过程;例如:针对客户端中的V1.0版本的IM软件A,当用户登录该V1.0版本的IM软件A时,可向服务器发送升级检测消息,以判断该V1.0版本的IM软件A是否需要升级;或者,用户登录该V1.0版本的IM软件A之后,可以定时(例如:每隔一天、或每隔两天等等)向服务器发送升级检测消息,以判断该V1.0版本的IM软件A是否需要升级。
S202,当所述客户端中的第一版本软件需要升级时,获取关于所述第一版本软件的增量升级文件。
S203,将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件。
S204,在所述客户端中安装所述第二版本软件。
本实施例的步骤S202-步骤S204可参见图4所示实施例的步骤S101-步骤S103,在此不赘述。
本发明实施例中,当客户端中的第一版本软件需要升级时,无需下载新版本软件的完整安装包,仅需要获取关于所述第一版本软件的增量升级文件进行软件升级;由于增量升级文件的数据量相对于完整安装包的数据量通常较小,从而有效的降低了带宽资源的消耗,降低软件升级和维护成本。
请参见图6,为本发明实施例提供的又一种软件升级方法的流程图;该方法可包括以下步骤S301-步骤S314。
S301,向服务器发送升级检测消息。
其中,所述升级检测消息中携带所述客户端中的第一版本软件的版本相关信息;该第一版本软件的版本相关信息可以包括但不限于:第一版本软件的校验信息(例如:第一版本软件的MD5值)、该第一版本软件的版本号(例如:V1.0)、客户端的系统参数(如:操作系统类型、操作系统的版本等),等等。本步骤中,可以在用户登录至第一版本软件时,向服务器发送升级检测消息;或者,在用户已登录至第一版本软件之后,使用该第一版本软件的过程中,向服务器发送升级检测消息;例如:针对客户端中的V1.0版本的IM软件A,当用户登录该V1.0版本的IM软件A时,可向服务器发送升级检测消息;或者,用户登录该V1.0版本的IM软件A之后,可以定时(例如:每隔一天、或每隔两天等等)向服务器发送升级检测消息。
S302,接收所述服务器返回的升级配置信息。
服务器在接收到升级检测消息之后,可以根据升级检测消息中携带的第一版本软件的版本相关信息,生成关于所述第一版本软件的升级配置信息;本步骤接收所述服务器返回的所述升级配置信息。举例来说,所述升级配置信息可采用下述的XML(ExtensibleMarkupLanguage,可扩展标记语言)格式:
上述例子中,一个item表示所述升级配置信息中一个升级配置项;每个item中的old的值表示第一配置校验信息;new的值表示第二配置校验信息;patch的值表示增量配置校验信息;base+url的值表示地址信息。
根据上述升级配置信息的格式可知,所述升级配置信息可包括至少一个升级配置项(item),每个升级配置项(item)可包括:第一配置校验信息、所述第一配置校验信息对应的第二配置校验信息、所述第一配置校验信息对应的增量配置校验信息,以及所述第一配置校验信息对应的地址信息;例如:上述第一个item中,第一配置校验信息为"MD51-1",所述第一配置校验信息对应的第二配置校验信息为"MD51-2",所述第一配置校验信息对应的增量配置校验信息为"MD51-3",所述第一配置校验信息对应的地址信息可以为"http://dldir1.xx.com/patch1"。再如:上述第二个item中,第一配置校验信息为"MD52-1",所述第一配置校验信息对应的第二配置校验信息为"MD52-2",所述第一配置校验信息对应的增量配置校验信息为"MD52-3",所述第一配置校验信息对应的地址信息可以为"http://dldir1.xx.com/patch2"。
S303,判断所述升级配置信息中是否存在与所述客户端中的第一版本软件的校验信息相匹配的第一配置校验信息;如果判断结果为是,转入步骤S304;否则,结束。
本步骤的判断过程可以为:首先,获取所述客户端中的第一版本软件的校验信息,例如:可以从所述客户端中的第一版本软件的扩展字段中读取所述第一版本软件的校验信息;或者,可以根据所述客户端中的第一版本软件的第一数据字段,计算所述客户端中的第一版本软件的校验信息。其次,将所述客户端中的第一版本软件的校验信息分别与所述升级配置信息中的每个升级配置项(item)中的第一配置校验信息进行比较,如果所述客户端中的第一版本软件的校验信息与所述升级配置信息中的任一个升级配置项(item)中的第一配置校验信息相同,则将与所述客户端中的第一版本软件的校验信息相同的第一配置校验信息确定为相匹配的第一配置校验信息,例如:如果判断所述客户端中的第一版本软件的校验信息与所述升级配置信息中的第一个item中的MD51-1相同,则确定MD51-1为相匹配的第一配置校验信息。如果所述升级配置信息中存在所述相匹配的第一配置校验信息,表明所述客户端中的第一版本软件存在升级配置,需要进行升级,则转入步骤S304;如果所述升级配置信息中存在所述相匹配的第一配置校验信息,表明所述客户端中的第一版本软件不存在升级配置,无需进行升级,可结束软件升级流程。
S304,确认所述客户端中的第一版本软件需要升级。
本实施例的步骤S301-步骤S304可以为图5所示实施例的步骤S201的具体细化步骤。
S305,从所述升级配置信息中查找所述相匹配的第一配置校验信息对应的地址信息。
如前述,所述升级配置信息中包括至少一个第一配置校验信息,以及所述至少一个第一配置校验信息各对应的地址信息。本步骤中则可从所述升级配置信息中查找所述相匹配的第一配置校验信息对应的地址信息;按照上述例子,所述相匹配的第一配置校验信息为MD51-1,则可从所述升级配置信息中查找到MD51-1对应的地址信息,如图6所示步骤S302中所给出的例子,MD51-1对应的地址信息为"http://dldir1.xx.com/patch1"。
S306,根据查找到的地址信息,下载所述增量升级文件。
本步骤中,可利用查找到的地址信息,从该地址信息所指示的服务器或网络中下载所述增量升级文件;按照图6所示步骤S302中所给出的例子,可从"http://dldir1.xx.com/patch1"所指示的服务器或网络中下载所述增量升级文件。
S307,计算已下载的所述增量升级文件的校验信息。
其中,所述增量升级文件的校验信息,指对所述增量升级文件进行校验计算获得,可唯一标识一个增量升级文件;该校验信息可以采用校验算法进行计算获得,该校验算法包括但不限于:哈希算法、MD5算法等等。优选地,本步骤中所述增量升级文件的校验信息为所述增量升级文件的MD5值。
S308,比较已下载的所述增量升级文件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的增量配置校验信息是否相同;若相同,转入步骤S309;否则,转入步骤S306。
如前述,所述升级配置信息中包括至少一个第一配置校验信息,以及所述至少一个第一配置校验信息各对应的增量配置校验信息。本步骤中,可比较步骤S307计算获得的已下载的所述增量升级文件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的增量配置校验信息是否相同;按照上述例子,所述相匹配的第一配置校验信息为MD51-1,按照图6所示步骤S302中所给出的例子,MD51-1对应的增量配置校验信息为MD51-3,本步骤则判断步骤S307计算获得的已下载的所述增量升级文件的MD5值是否与MD51-3的值相同;如果二者相同,表明已下载的增量升级文件正确,在下载过程中未出现数据丢失,可继续执行步骤S309;如果二者不同,表明已下载的增量升级文件可能在下载过程中出现数据丢失,则需要返回步骤S306重新下载正确的增量升级文件;进一步,本发明实施例中还可以设置重新下载的次数限制,例如:可设置重新下载的次数为5次,当经过步骤S306重新下载5次增量升级文件后,如果本步骤S308仍然判断该增量升级文件在下载过程中出现了数据丢失,则可输出升级失败提示信息。
本实施例的步骤S305-步骤S308可以为图4所示实施例的步骤S101的具体细化步骤,或者可以为图5所示实施例的步骤S202的具体细化步骤。需要说明的是,其中的步骤S307-步骤S308为可选步骤,如果可以确定步骤S306下载的增量升级文件正确,也可以不用执行步骤S307-步骤S308,直接转而执行步骤S309。
S309,解析所述第一版本软件,获得第一数据字段和扩展字段。
如图1所示,所述第一版本软件包含第一数据字段和扩展字段。本步骤则解析所述第一版本软件,获得第一数据字段和扩展字段。
S310,按照所述增量升级文件中的控制信息,将所述第一数据字段和所述增量升级文件中的数据信息进行合成计算,生成第二数据字段。
如图3所示,所述增量升级文件包括控制信息和数据信息。本步骤的合成计算过程可以存在以下两种可行的实施方式:
在第一种可行的实施方式中,本步骤具体可包括以下过程:a、将所述增量升级文件的控制信息块(CtrlBlock)中的控制信息全部读取至所述客户端的内存空间中;b、将所述第一数据字段和所述增量升级文件中的数据信息也全部读取至所述客户端的内存空间中;c、在所述客户端的内存空间中,按照所述增量升级文件的控制信息,将所述第一数据字段和所述增量升级文件中的数据信息进行合成计算,生成第二数据字段;d、将所述第二数据字段从所述客户端的内存空间中读出,并写入所述客户端的磁盘空间中,删除所述客户端的内存空间中的内容以释放所述客户端的内存空间。本实施方式可快速合成第二数据字段,提升合成计算的效率。
在第二种可行的实施方式中,本步骤具体可包括以下过程:e、将所述增量升级文件的控制信息块(CtrlBlock)中的第一个子控制信息块中的控制信息读取至所述客户端的内存空间中;f、按照所述第一个子控制信息块中的控制信息,从所述第一数据字段和所述增量升级文件中的数据信息中读取相应的数据至所述客户端的内存空间中;g、在所述客户端的内存空间中,按照所述第一子控制信息块中的控制信息,对所述内存空间中的从所述第一数据字段和所述增量升级文件中的数据信息读取的相应数据进行合成计算,生成第二数据字段的第一部分数据内容;h、将所述第二数据字段的第一部分数据内容从所述客户端的内存空间中读出,并写入所述客户端的磁盘空间中,删除所述客户端的内存空间中的内容以释放所述客户端的内存空间;i、再按照上述步骤e-h,生成第二数据字段的其他部分数据内容并写入所述客户端的磁盘空间中,删除所述客户端的内存空间中的内容以释放所述客户端的内存空间;j、在所述客户端的内存空间中,将所述第二数据字段的各部分数据内容顺序组合,形成第二数据字段。本实施方式可有效节省合成计算所需的内存空间占用率,有效降低内存资源的消耗。
需要说明的是,上述两种实施方式可以根据实际情况进行选择,例如:当客户端的硬件配置较高,内存资源较丰富的情况下,可选用第一种实施方式,提升合成计算的效率;再如:当客户端的硬件配置较低,内存资源较少的情况下,可选用第二种实施方式,有效降低内存资源的消耗。
S311,将所述第二数据字段和所述扩展字段整合为第二版本软件。
本步骤中,可以将所述扩展字段添加至所述第二数据字段的末端,整合形成第二版本软件。
S312,计算所述第二版本软件的校验信息。
其中,所述第二版本软件的校验信息,指对所述第二版本软件的第二数据字段进行校验计算获得,可唯一标识一个第二版本软件;该校验信息可以采用校验算法进行计算获得,该校验算法包括但不限于:哈希算法、MD5算法等等。优选地,本步骤中所述第二版本软件的校验信息为所述第二版本软件的第二数据字段的MD5值。
S313,比较所述第二版本软件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的第二配置校验信息是否相同;若相同,转入步骤S314;否则,结束。
如前述,所述升级配置信息中包括至少一个第一配置校验信息,以及所述至少一个第一配置校验信息各对应的第二配置校验信息。本步骤中,可比较步骤S312计算获得的所述第二版本软件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的第二配置校验信息是否相同;按照上述例子,所述相匹配的第一配置校验信息为MD51-1,按照图6所示步骤S302中所给出的例子,MD51-1对应的第二配置校验信息为MD51-2,本步骤则判断步骤S312计算获得的所述第二版本软件的MD5值是否与MD51-2的值相同;如果二者相同,表明所述第二版本软件正确,在整合过程中未出现错误,可继续执行步骤S314;如果二者不同,表明所述第二版本软件存在数据错误,可能在整合过程中出现了错误,结束软件升级过程,同时还可输出升级失败提示信息。
本实施例的步骤S309-步骤S313可以为图4所示实施例的步骤S102的具体细化步骤,或者可以为图5所示实施例的步骤S203的具体细化步骤。需要说明的是,其中的步骤S312-步骤S313为可选步骤,如果可以确定步骤S311整合获得的第二版本软件正确,也可以不用执行步骤S312-步骤S313,直接转而执行步骤S314。
S314,在所述客户端中安装所述第二版本软件。
在所述客户端中安装所述第二版本软件之后,该第二版本软件则可替换客户端中的所述第一版本软件,从而完成软件升级过程。
本发明实施例中,当客户端中的第一版本软件需要升级时,无需下载新版本软件的完整安装包,仅需要获取关于所述第一版本软件的增量升级文件进行软件升级;由于增量升级文件的数据量相对于完整安装包的数据量通常较小,从而有效的降低了带宽资源的消耗,降低软件升级和维护成本。
下面将结合附图7-附图11,对本发明实施例提供的一种软件升级装置的结构进行详细介绍。需要说明的是,附图7-附图11所示的软件升级装置,用于执行本发明图4-图6所示实施例的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明图4-图6所示的实施例。
请参见图7,为本发明实施例提供的一种软件升级装置的结构示意图;该装置可包括:升级获取模块101、整合模块102和安装模块103。
升级获取模块101,用于当客户端中的第一版本软件需要升级时,获取关于所述第一版本软件的增量升级文件。
其中,所述第一版本软件包括第一数据字段和扩展字段;所述增量升级文件包括控制信息和数据信息。当客户端中的第一版本软件需要升级时,所述升级获取模块101可以从服务器获取所述增量升级文件的地址信息,并根据该地址信息,下载所述增量升级文件。
整合模块102,用于将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件。
其中,所述增量升级文件指第一版本软件与第二版本软件的补丁差异文件,因此相应地,在获得所述第一版本软件的增量升级文件之后,所述整合模块102可以将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件。可以理解的是,所述整合模块102将所述第一版本软件和增量升级文件进行整合的过程,与第一版本软件与第二版本软件进行差异计算获得增量升级文件的过程属于相逆的过程。
安装模块103,用于在所述客户端中安装所述第二版本软件。
在所述客户端中安装所述第二版本软件之后,该第二版本软件则可替换客户端中的所述第一版本软件,从而完成软件升级过程。
本发明实施例中,当客户端中的第一版本软件需要升级时,无需下载新版本软件的完整安装包,仅需要获取关于所述第一版本软件的增量升级文件进行软件升级;由于增量升级文件的数据量相对于完整安装包的数据量通常较小,从而有效的降低了带宽资源的消耗,降低软件升级和维护成本。
请参见图8,为本发明实施例提供的另一种软件升级装置的结构示意图;该装置可包括:升级获取模块101、整合模块102、安装模块103和升级判断模块104。其中,升级获取模块101、整合模块102和安装模块103的结构可参见图7所示实施例的相关描述,在此不赘述。
升级判断模块104,用于判断所述客户端中的第一版本软件是否需要升级。
所述升级判断模块104可以在用户登录至第一版本软件时,发起对该第一版本软件的升级判断过程;或者,在用户已登录至第一版本软件之后,使用该第一版本软件的过程中,发起对该第一版本软件的升级判断过程;例如:针对客户端中的V1.0版本的IM软件A,当用户登录该V1.0版本的IM软件A时,所述升级判断模块104可向服务器发送升级检测消息,以判断该V1.0版本的IM软件A是否需要升级;或者,用户登录该V1.0版本的IM软件A之后,所述升级判断模块104可以定时(例如:每隔一天、或每隔两天等等)向服务器发送升级检测消息,以判断该V1.0版本的IM软件A是否需要升级。
本发明实施例中,当客户端中的第一版本软件需要升级时,无需下载新版本软件的完整安装包,仅需要获取关于所述第一版本软件的增量升级文件进行软件升级;由于增量升级文件的数据量相对于完整安装包的数据量通常较小,从而有效的降低了带宽资源的消耗,降低软件升级和维护成本。
下面将结合附图9-附图11,对图7和图8所示实施例的软件升级装置的各模块进行详细介绍。
请参见图9,为本发明实施例提供的升级判断模块的结构示意图;该升级判断模块104可包括:检测单元1401、配置接收单元1402、升级判断单元1403和升级确认单元1404。
检测单元1401,用于向服务器发送升级检测消息。
其中,所述升级检测消息中携带所述客户端中的第一版本软件的版本相关信息;该第一版本软件的版本相关信息可以包括但不限于:第一版本软件的校验信息(例如:第一版本软件的MD5值)、该第一版本软件的版本号(例如:V1.0)、客户端的系统参数(如:操作系统类型、操作系统的版本等),等等。所述检测单元1401可以在用户登录至第一版本软件时,向服务器发送升级检测消息;或者,在用户已登录至第一版本软件之后,使用该第一版本软件的过程中,向服务器发送升级检测消息;例如:针对客户端中的V1.0版本的IM软件A,当用户登录该V1.0版本的IM软件A时,所述检测单元1401可向服务器发送升级检测消息;或者,用户登录该V1.0版本的IM软件A之后,所述检测单元1401可以定时(例如:每隔一天、或每隔两天等等)向服务器发送升级检测消息。
配置接收单元1402,用于接收所述服务器返回的升级配置信息。
服务器在接收到升级检测消息之后,可以根据升级检测消息中携带的第一版本软件的版本相关信息,生成关于所述第一版本软件的升级配置信息;所述配置接收单元1402接收所述服务器返回的所述升级配置信息。举例来说,所述升级配置信息可采用下述的XML格式:
其中,一个item表示所述升级配置信息中一个升级配置项;每个item中的old的值表示第一配置校验信息;new的值表示第二配置校验信息;patch的值表示增量配置校验信息;base+url的值表示地址信息。
根据上述升级配置信息的格式可知,所述升级配置信息可包括至少一个升级配置项(item),每个升级配置项(item)可包括:第一配置校验信息、所述第一配置校验信息对应的第二配置校验信息、所述第一配置校验信息对应的增量配置校验信息,以及所述第一配置校验信息对应的地址信息;例如:上述第一个item中,第一配置校验信息为"MD51-1",所述第一配置校验信息对应的第二配置校验信息为"MD51-2",所述第一配置校验信息对应的增量配置校验信息为"MD51-3",所述第一配置校验信息对应的地址信息为"http://dldir1.xx.com/patch1"。再如:上述第二个item中,第一配置校验信息为"MD52-1",所述第一配置校验信息对应的第二配置校验信息为"MD52-2",所述第一配置校验信息对应的增量配置校验信息为"MD52-3",所述第一配置校验信息对应的地址信息为"http://dldir1.xx.com/patch2"。
升级判断单元1403,用于判断所述升级配置信息中是否存在与所述客户端中的第一版本软件的校验信息相匹配的第一配置校验信息。
所述升级判断单元1403的判断过程可以为:首先,获取所述客户端中的第一版本软件的校验信息,例如:可以从所述客户端中的第一版本软件的扩展字段中读取所述第一版本软件的校验信息;或者,可以根据所述客户端中的第一版本软件的第一数据字段,计算所述客户端中的第一版本软件的校验信息。其次,将所述客户端中的第一版本软件的校验信息分别与所述升级配置信息中的每个升级配置项(item)中的第一配置校验信息进行比较,如果所述客户端中的第一版本软件的校验信息与所述升级配置信息中的任一个升级配置项(item)中的第一配置校验信息相同,则将与所述客户端中的第一版本软件的校验信息相同的第一配置校验信息确定为相匹配的第一配置校验信息,例如:如果判断所述客户端中的第一版本软件的校验信息与所述升级配置信息中的第一个item中的MD51-1相同,则确定MD51-1为相匹配的第一配置校验信息。如果所述升级配置信息中存在所述相匹配的第一配置校验信息,表明所述客户端中的第一版本软件存在升级配置,需要进行升级;如果所述升级配置信息中存在所述相匹配的第一配置校验信息,表明所述客户端中的第一版本软件不存在升级配置,无需进行升级,可结束软件升级过程。
升级确认单元1404,用于当所述升级配置信息中存在所述相匹配的第一配置校验信息时,确认所述客户端中的第一版本软件需要升级。
请参见图10a,为本发明实施例提供的升级获取模块的一个实施例的结构示意图;该升级获取模块101可包括:地址查找单元1101和下载单元1102。
地址查找单元1101,用于当客户端中的第一版本软件需要升级时,从所述升级配置信息中查找所述相匹配的第一配置校验信息对应的地址信息。
其中,所述升级配置信息中包括至少一个第一配置校验信息,以及所述至少一个第一配置校验信息各对应的地址信息。所述地址查找单元1101可从所述升级配置信息中查找所述相匹配的第一配置校验信息对应的地址信息;按照图9所示实施例中所给出的例子,所述相匹配的第一配置校验信息为MD51-1,所述地址查找单元1101则可从所述升级配置信息中查找到MD51-1对应的地址信息为"http://dldir1.xx.com/patch1"。
下载单元1102,用于根据查找到的地址信息,下载所述增量升级文件。
所述下载单元1102可利用查找到的地址信息,从该地址信息所指示的服务器或网络中下载所述增量升级文件;按照图9所示实施例中所给出的例子,所述下载单元1102可从"http://dldir1.xx.com/patch1"所指示的服务器或网络中下载所述增量升级文件。
请参见图10b,为本发明实施例提供的升级获取模块的另一个实施例的结构示意图;地址查找单元1101、下载单元1102、第一校验计算单元1103和第一比较单元1104。其中,地址查找单元1101和下载单元1102的结构可参见图10a所示实施例的相关描述,在此不赘述。
第一校验计算单元1103,用于计算已下载的所述增量升级文件的校验信息。
其中,所述增量升级文件的校验信息,指对所述增量升级文件进行校验计算获得,可唯一标识一个增量升级文件;该校验信息可以采用校验算法进行计算获得,该校验算法包括但不限于:哈希算法、MD5算法等等。优选地,所述增量升级文件的校验信息为所述增量升级文件的MD5值。
第一比较单元1104,用于比较已下载的所述增量升级文件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的增量配置校验信息是否相同,若相同,则通知所述整合模块将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件;若不同,则通知所述下载单元根据查找到的地址信息,重新下载所述增量升级文件。
其中,所述升级配置信息中包括至少一个第一配置校验信息,以及所述至少一个第一配置校验信息各对应的增量配置校验信息。所述第一比较单元1104可比较已下载的所述增量升级文件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的增量配置校验信息是否相同;按照图9所示实施例中所给出的例子,所述相匹配的第一配置校验信息为MD51-1,MD51-1对应的增量配置校验信息为MD51-3,所述第一比较单元1104则判断已下载的所述增量升级文件的MD5值是否与MD51-3的值相同;如果二者相同,表明已下载的增量升级文件正确,在下载过程中未出现数据丢失,可通知所述整合模块将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件;如果二者不同,表明已下载的增量升级文件可能在下载过程中出现数据丢失,则需要通知所述下载单元根据查找到的地址信息,重新下载所述增量升级文件;进一步,本发明实施例中还可以设置重新下载的次数限制,例如:可设置重新下载的次数为5次,当所述下载单元重新下载5次增量升级文件后,如果仍然判断该增量升级文件在下载过程中出现了数据丢失,则可输出升级失败提示信息。
请参见图11a,为本发明实施例提供的整合模块的一个实施例的结构示意图;该整合模块102可包括:解析单元1201、合成计算单元1202和整合单元1203。
解析单元1201,用于解析所述第一版本软件,获得第一数据字段和扩展字段。
如图1所示,所述第一版本软件包含第一数据字段和扩展字段。所述解析单元1201解析所述第一版本软件,获得第一数据字段和扩展字段。
合成计算单元1202,用于按照所述增量升级文件中的控制信息,将所述第一数据字段和所述增量升级文件中的数据信息进行合成计算,生成第二数据字段。
如图3所示,所述增量升级文件包括控制信息和数据信息。所述合成计算单元1202的合成计算过程可以存在以下两种可行的实施方式:
在第一种可行的实施方式中,所述合成计算单元1202的合成计算过程可包括:a、将所述增量升级文件的控制信息块(CtrlBlock)中的控制信息全部读取至所述客户端的内存空间中;b、将所述第一数据字段和所述增量升级文件中的数据信息也全部读取至所述客户端的内存空间中;c、在所述客户端的内存空间中,按照所述增量升级文件的控制信息,将所述第一数据字段和所述增量升级文件中的数据信息进行合成计算,生成第二数据字段;d、将所述第二数据字段从所述客户端的内存空间中读出,并写入所述客户端的磁盘空间中,删除所述客户端的内存空间中的内容以释放所述客户端的内存空间。本实施方式可快速合成第二数据字段,提升合成计算的效率。
在第二种可行的实施方式中,述合成计算单元1202的合成计算过程可包括:e、将所述增量升级文件的控制信息块(CtrlBlock)中的第一个子控制信息块中的控制信息读取至所述客户端的内存空间中;f、按照所述第一个子控制信息块中的控制信息,从所述第一数据字段和所述增量升级文件中的数据信息中读取相应的数据至所述客户端的内存空间中;g、在所述客户端的内存空间中,按照所述第一子控制信息块中的控制信息,对所述内存空间中的从所述第一数据字段和所述增量升级文件中的数据信息读取的相应数据进行合成计算,生成第二数据字段的第一部分数据内容;h、将所述第二数据字段的第一部分数据内容从所述客户端的内存空间中读出,并写入所述客户端的磁盘空间中,删除所述客户端的内存空间中的内容以释放所述客户端的内存空间;i、再按照上述e-h,生成第二数据字段的其他部分数据内容并写入所述客户端的磁盘空间中,删除所述客户端的内存空间中的内容以释放所述客户端的内存空间;j、在所述客户端的内存空间中,将所述第二数据字段的各部分数据内容顺序组合,形成第二数据字段。本实施方式可有效节省合成计算所需的内存空间占用率,有效降低内存资源的消耗。
需要说明的是,上述两种实施方式可以根据实际情况进行选择,例如:当客户端的硬件配置较高,内存资源较丰富的情况下,可选用第一种实施方式,提升合成计算的效率;再如:当客户端的硬件配置较低,内存资源较少的情况下,可选用第二种实施方式,有效降低内存资源的消耗。
整合单元1203,用于将所述第二数据字段和所述扩展字段整合为第二版本软件。
所述整合单元1203可以将所述扩展字段添加至所述第二数据字段的末端,整合形成第二版本软件。
请参见图11b,为本发明实施例提供的整合模块的另一个实施例的结构示意图;解析单元1201、合成计算单元1202、整合单元1203、第二校验计算单元1204和第二比较单元1205。其中,解析单元1201、合成计算单元1202和整合单元1203的结构可参见图11a所示实施例的相关描述,在此不赘述。
第二校验计算单元1204,用于计算所述第二版本软件的校验信息。
其中,所述第二版本软件的校验信息,指对所述第二版本软件的第二数据字段进行校验计算获得,可唯一标识一个第二版本软件;该校验信息可以采用校验算法进行计算获得,该校验算法包括但不限于:哈希算法、MD5算法等等。优选地,所述第二版本软件的校验信息为所述第二版本软件的第二数据字段的MD5值。
第二比较单元1205,用于比较比较所述第二版本软件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的第二配置校验信息是否相同,若相同,通知所述安装模块在所述客户端中安装所述第二版本软件。
其中,所述升级配置信息中包括至少一个第一配置校验信息,以及所述至少一个第一配置校验信息各对应的第二配置校验信息。所述第二比较单元1205可比较所述第二版本软件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的第二配置校验信息是否相同;按照图9所示实施例中所给出的例子,所述相匹配的第一配置校验信息为MD51-1,MD51-1对应的第二配置校验信息为MD51-2,所述第二比较单元1205判断所述第二版本软件的MD5值是否与MD51-2的值相同;如果二者相同,表明所述第二版本软件正确,在整合过程中未出现错误,可通知所述安装模块在所述客户端中安装所述第二版本软件;如果二者不同,表明所述第二版本软件存在数据错误,可能在整合过程中出现了错误,可结束软件升级过程,同时还可输出升级失败提示信息。
本发明实施例中,当客户端中的第一版本软件需要升级时,无需下载新版本软件的完整安装包,仅需要获取关于所述第一版本软件的增量升级文件进行软件升级;由于增量升级文件的数据量相对于完整安装包的数据量通常较小,从而有效的降低了带宽资源的消耗,降低软件升级和维护成本。
本发明实施例还提供了一种客户端,该客户端可包含软件升级装置,该软件升级装置的结构可参见图7-图11所示实施例的相关描述,在此不赘述。需要说明的是,本实施例的客户端可以应用于上述图4-图6所示的方法中。
本发明实施例中,当客户端中的第一版本软件需要升级时,无需下载新版本软件的完整安装包,仅需要获取关于所述第一版本软件的增量升级文件进行软件升级;由于增量升级文件的数据量相对于完整安装包的数据量通常较小,从而有效的降低了带宽资源的消耗,降低软件升级和维护成本。
请参见图12,为本发明实施例提供的一种软件升级系统的结构示意图;该系统可包含服务器和至少一个客户端,该客户端包括软件升级装置,该软件升级装置的结构可参见图7-图11所示实施例的相关描述,在此不赘述。需要说明的是,本实施例的软件升级系统以及系统中的服务器、客户端均可应用于图4-图6所示实施例的方法中。
请一并参见图13,为本发明实施例提供的一种服务器的结构示意图;该服务器可包括:升级检测模块201、升级配置模块202和返回模块203。
升级检测模块201,用于接收所述客户端发送的升级检测消息。
其中,所述升级检测消息中携带所述客户端中的第一版本软件的版本相关信息。所述升级检测消息中携带所述客户端中的第一版本软件的版本相关信息;该第一版本软件的版本相关信息可以包括但不限于:第一版本软件的校验信息(例如:第一版本软件的MD5值)、该第一版本软件的版本号(例如:V1.0)、客户端的系统参数(如:操作系统类型、操作系统的版本等),等等。所述升级检测模块201可以在用户登录至所述客户端的第一版本软件时,接收所述客户端发送的升级检测消息;或者,所述升级检测模块201也可以在用户已登录至第一版本软件之后,使用该第一版本软件的过程中,定时接收所述客户端发送的升级检测消息。
升级配置模块202,用于根据所述升级检测消息,生成关于所述第一版本软件的升级配置信息。
所述升级配置模块202可以根据升级检测消息中携带的第一版本软件的版本相关信息,生成关于所述第一版本软件的升级配置信息;所述升级配置信息可采用下述的XML格式表示如下:
其中,一个item表示所述升级配置信息中一个升级配置项;每个item中的old的值表示第一配置校验信息;new的值表示第二配置校验信息;patch的值表示增量配置校验信息;base+url的值表示地址信息。
根据上述升级配置信息的格式可知,所述升级配置信息可包括至少一个升级配置项(item),每个升级配置项(item)可包括:第一配置校验信息、所述第一配置校验信息对应的第二配置校验信息、所述第一配置校验信息对应的增量配置校验信息,以及所述第一配置校验信息对应的地址信息;例如:上述第一个item中,第一配置校验信息为"MD51-1",所述第一配置校验信息对应的第二配置校验信息为"MD51-2",所述第一配置校验信息对应的增量配置校验信息为"MD51-3",所述第一配置校验信息对应的地址信息为"http://dldir1.xx.com/patch1"。再如:上述第二个item中,第一配置校验信息为"MD52-1",所述第一配置校验信息对应的第二配置校验信息为"MD52-2",所述第一配置校验信息对应的增量配置校验信息为"MD52-3",所述第一配置校验信息对应的地址信息为"http://dldir1.xx.com/patch2"。
返回模块203,用于向所述客户端返回所述升级配置信息。
所述返回模块203向所述客户端返回所述升级配置信息,所述客户端则可以根据所升级配置信息,完成所述客户端的第一版本软件的升级过程。
本发明实施例中,当客户端中的第一版本软件需要升级时,无需下载新版本软件的完整安装包,仅需要获取关于所述第一版本软件的增量升级文件进行软件升级;由于增量升级文件的数据量相对于完整安装包的数据量通常较小,从而有效的降低了带宽资源的消耗,降低软件升级和维护成本。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (15)
1.一种软件升级方法,其特征在于,包括:
当客户端中的第一版本软件需要升级时,获取关于所述第一版本软件的增量升级文件,所述第一版本软件包括第一数据字段和扩展字段,所述增量升级文件包括控制信息和数据信息,第二版本软件包括第二数据字段和扩展字段;
解析所述第一版本软件,获得所述第一数据字段和扩展字段;
按照所述增量升级文件中的控制信息,将所述第一数据字段和所述增量升级文件中的数据信息进行合成计算,生成所述第二数据字段;
将所述第二数据字段和所述扩展字段整合为所述第二版本软件;
在所述客户端中安装所述第二版本软件。
2.如权利要求1所述的方法,其特征在于,所述当客户端中的第一版本软件需要升级时,获取关于所述第一版本软件的增量升级文件之前,还包括:
判断所述客户端中的第一版本软件是否需要升级。
3.如权利要求2所述的方法,其特征在于,所述判断所述客户端中的第一版本软件是否需要升级,包括:
向服务器发送升级检测消息,所述升级检测消息中携带所述客户端中的第一版本软件的版本相关信息;
接收所述服务器返回的升级配置信息,所述升级配置信息中包括至少一个第一配置校验信息;
判断所述升级配置信息中是否存在与所述客户端中的第一版本软件的校验信息相匹配的第一配置校验信息;
如果所述升级配置信息中存在所述相匹配的第一配置校验信息,确认所述客户端中的第一版本软件需要升级。
4.如权利要求3所述的方法,其特征在于,所述升级配置信息中还包括所述至少一个第一配置校验信息各对应的地址信息;
所述当客户端中的第一版本软件需要升级时,获取关于所述第一版本软件的增量升级文件,包括:
当客户端中的第一版本软件需要升级时,从所述升级配置信息中查找所述相匹配的第一配置校验信息对应的地址信息;
根据查找到的地址信息,下载所述增量升级文件。
5.如权利要求4所述的方法,其特征在于,所述升级配置信息中还包括所述至少一个第一配置校验信息各对应的增量配置校验信息;
所述根据查找到的地址信息,下载所述增量升级文件之后,还包括:
计算已下载的所述增量升级文件的校验信息;
比较已下载的所述增量升级文件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的增量配置校验信息是否相同;
若相同,执行将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件的步骤;
若不同,根据查找到的地址信息,重新下载所述增量升级文件。
6.如权利要3-5任一项所述的方法,其特征在于,所述升级配置信息中还包括所述至少一个第一配置校验信息各对应的第二配置校验信息;
所述将所述第二数据字段和所述扩展字段整合为第二版本软件之后,还包括:
计算所述第二版本软件的校验信息;
比较所述第二版本软件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的第二配置校验信息是否相同;
若相同,执行在所述客户端中安装所述第二版本软件的步骤。
7.一种软件升级装置,其特征在于,包括:
升级获取模块,用于当客户端中的第一版本软件需要升级时,获取关于所述第一版本软件的增量升级文件,所述第一版本软件包括第一数据字段和扩展字段,所述增量升级文件包括控制信息和数据信息,第二版本软件包括第二数据字段和扩展字段;
整合模块,用于将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件;
安装模块,用于在所述客户端中安装所述第二版本软件;
其中,所述整合模块包括:
解析单元,用于解析所述第一版本软件,获得第一数据字段和扩展字段;
合成计算单元,用于按照所述增量升级文件中的控制信息,将所述第一数据字段和所述增量升级文件中的数据信息进行合成计算,生成第二数据字段;
整合单元,用于将所述第二数据字段和所述扩展字段整合为第二版本软件。
8.如权利要求7所述的装置,其特征在于,还包括:
升级判断模块,用于判断所述客户端中的第一版本软件是否需要升级。
9.如权利要求8所述的装置,其特征在于,所述升级判断模块包括:
检测单元,用于向服务器发送升级检测消息,所述升级检测消息中携带所述客户端中的第一版本软件的版本相关信息;
配置接收单元,用于接收所述服务器返回的升级配置信息,所述升级配置信息中包括至少一个第一配置校验信息;
升级判断单元,用于判断所述升级配置信息中是否存在与所述客户端中的第一版本软件的校验信息相匹配的第一配置校验信息;
升级确认单元,用于当所述升级配置信息中存在所述相匹配的第一配置校验信息时,确认所述客户端中的第一版本软件需要升级。
10.如权利要求9所述的装置,其特征在于,所述升级配置信息中还包括所述至少一个第一配置校验信息各对应的地址信息;
所述升级获取模块包括:
地址查找单元,用于当客户端中的第一版本软件需要升级时,从所述升级配置信息中查找所述相匹配的第一配置校验信息对应的地址信息;
下载单元,用于根据查找到的地址信息,下载所述增量升级文件。
11.如权利要求10所述的装置,其特征在于,所述升级配置信息中还包括所述至少一个第一配置校验信息各对应的增量配置校验信息;
所述升级获取模块还包括:
第一校验计算单元,用于计算已下载的所述增量升级文件的校验信息;
第一比较单元,用于比较已下载的所述增量升级文件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的增量配置校验信息是否相同,若相同,则通知所述整合模块将所述第一版本软件和所述增量升级文件进行整合,生成第二版本软件;若不同,则通知所述下载单元根据查找到的地址信息,重新下载所述增量升级文件。
12.如权利要求9-11任一项所述的装置,其特征在于,所述升级配置信息中还包括所述至少一个第一配置校验信息各对应的第二配置校验信息;
所述整合模块还包括:
第二校验计算单元,用于计算所述第二版本软件的校验信息;
第二比较单元,用于比较所述第二版本软件的校验信息与所述升级配置信息中的所述相匹配的第一配置校验信息对应的第二配置校验信息是否相同,若相同,通知所述安装模块在所述客户端中安装所述第二版本软件。
13.一种客户端,其特征在于,包括如权利要求7-12任一项所述的软件升级装置。
14.一种软件升级系统,包括服务器,其特征在于,还包括至少一个如权利要求13所述的客户端,所述客户端与所述服务器通信连接。
15.如权利要求14所述的系统,其特征在于,所述服务器包括:
升级检测模块,用于接收所述客户端发送的升级检测消息,所述升级检测消息中携带所述客户端中的第一版本软件的版本相关信息;
升级配置模块,用于根据所述升级检测消息,生成关于所述第一版本软件的升级配置信息;
返回模块,用于向所述客户端返回所述升级配置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310155618.0A CN104123149B (zh) | 2013-04-28 | 2013-04-28 | 软件升级方法、装置、客户端及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310155618.0A CN104123149B (zh) | 2013-04-28 | 2013-04-28 | 软件升级方法、装置、客户端及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104123149A CN104123149A (zh) | 2014-10-29 |
CN104123149B true CN104123149B (zh) | 2016-04-20 |
Family
ID=51768574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310155618.0A Active CN104123149B (zh) | 2013-04-28 | 2013-04-28 | 软件升级方法、装置、客户端及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104123149B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786541A (zh) * | 2014-12-23 | 2016-07-20 | Tcl通力电子(惠州)有限公司 | 基于广播信号的升级方法及系统 |
CN105915363A (zh) * | 2015-11-09 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 一种过渡升级的方法及装置 |
CN106293746B (zh) * | 2016-08-12 | 2020-01-31 | 福建天晴数码有限公司 | 浏览器脚本的更新方法及系统 |
CN106990948B (zh) * | 2016-10-14 | 2020-12-11 | 深圳大宇无限科技有限公司 | 应用升级处理方法和装置 |
CN106528235A (zh) * | 2016-11-11 | 2017-03-22 | 深圳铂睿智恒科技有限公司 | 智能终端应用的升级方法及系统 |
CN108776643B (zh) * | 2018-06-04 | 2021-10-22 | 腾讯科技(武汉)有限公司 | 一种基于版本控制流程的目标代码合并控制方法及系统 |
CN109656613A (zh) * | 2018-12-12 | 2019-04-19 | 深圳市丰巢科技有限公司 | 一种基于增量的应用开发方法和装置 |
CN111580849B (zh) * | 2020-05-09 | 2023-07-04 | 东软睿驰汽车技术(沈阳)有限公司 | 一种文件差量更新优化的方法和相关装置 |
CN112579140A (zh) * | 2020-12-22 | 2021-03-30 | 四川虹微技术有限公司 | 一种软件升级方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101883139A (zh) * | 2010-06-11 | 2010-11-10 | 华为终端有限公司 | 外设设备软件升级的方法、计算机及系统 |
CN102724308A (zh) * | 2012-06-13 | 2012-10-10 | 腾讯科技(深圳)有限公司 | 软件更新方法及软件更新系统 |
-
2013
- 2013-04-28 CN CN201310155618.0A patent/CN104123149B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101883139A (zh) * | 2010-06-11 | 2010-11-10 | 华为终端有限公司 | 外设设备软件升级的方法、计算机及系统 |
CN102724308A (zh) * | 2012-06-13 | 2012-10-10 | 腾讯科技(深圳)有限公司 | 软件更新方法及软件更新系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104123149A (zh) | 2014-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104123149B (zh) | 软件升级方法、装置、客户端及系统 | |
US10979292B2 (en) | Adaptive deployment of applications for mobile devices | |
CN105262627B (zh) | 一种固件升级方法、装置及系统 | |
CN109697071B (zh) | 安装包合成方法、装置、终端及存储介质 | |
CN106598673B (zh) | 一种应用程序升级方法及系统 | |
US20200204349A1 (en) | Blockchain compression using summary and padding blocks | |
WO2016177061A1 (zh) | 一种空中下载技术升级方法和装置 | |
CN104199706A (zh) | 一种eMMC的固件升级方法及其设备 | |
EP2907099B1 (en) | Testing framework for applications | |
US9912747B2 (en) | Browser and system for download and download method | |
CN103428188A (zh) | 一种文件更新方法、装置及相关设备 | |
CN104699511B (zh) | 插件升级方法及装置 | |
CN106201577B (zh) | 一种更新Lua文件的方法及装置 | |
CN102612023A (zh) | 一种移动终端更新应用的方法、服务器以及移动终端 | |
CN102855152A (zh) | 升级应用程序中资源文件的方法及系统 | |
EP3313041B1 (en) | Application download method and device | |
CN110532016B (zh) | 版本管理方法、版本更新方法和版本管理系统 | |
CN102375744B (zh) | 一种网络电视升级方法 | |
CN115080515A (zh) | 基于区块链的系统文件共享方法及系统 | |
CN104219323A (zh) | 应用下载方法和移动终端 | |
CN104023073A (zh) | 一种资源的推送方法、系统及装置 | |
CN109905430A (zh) | 一种软件升级方法与系统 | |
CN104346460A (zh) | 进行文件下载的方法、装置及浏览器客户端 | |
CN110809031A (zh) | 一种电脑传输文件至手机的方法 | |
CN104217021B (zh) | 阅读服务器、终端设备及其显示阅读内容的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180205 Address after: No. 11-13 Baltic street, Helsinki, Finland Patentee after: Supercell company Address before: Shenzhen Futian District City, Guangdong province 518057 Zhenxing Road, SEG Science Park 2 East Room 403 Patentee before: Tencent Technology (Shenzhen) Co., Ltd. |