终端的软件升级方法和终端与流程

文档序号:11949644阅读:462来源:国知局
终端的软件升级方法和终端与流程

本发明实施例涉及软件升级技术,尤其涉及一种终端的软件升级方法和终端。



背景技术:

随着通信技术的不断发展,越来越多的终端例如手机、平板电脑、网络电视等均出现在人们的生活中,为人们的生活提供方便和娱乐。其中,由于终端中均部署有相应的操作系统或者应用程序等软件,因此终端的厂商一般会公布一工厂刷机包用来生产终端,以供终端上市。

但是,对于上市的终端,通常是分批次生产的,也就是说使用不同量产版本的工厂刷机包进行生产的,加之随着用户在使用阶段会进行空中下载技术(Over-the-Air Technology,简称OTA)升级,因此,对于同一款终端,不同用户手中的版本可能是不同的。假如市面上的终端版本为V1、V2、…Vn,n越大代表终端的版本越高。此时,如果低版本(如V1)的用户要升级到最新的目标版本Vn,最佳方案是由终端厂商提供V1-Vn的OTA差分包,但是这种方式终端厂商制作的差分包数量会非常庞大,严重浪费研发成本。

为了解决上述问题,现有技术在进行终端的版本升级时,只制作相邻版本的OTA差分包,如V1-V2差分包、V2-V3差分包、…、Vn-1-Vn差分包,这种方案对于版本为V1的终端需要依次升级,即在检查到V1-V2差分包后进行下载,并在下载后重启进入recovery升级,升级后开机如果再检测到V2-V3差分包,则再次下载该V2-V3差分包,并在下载后重启进recovery升级,依次类推,从而完成终端版本的升级。

但是,现有技术的这种升级方法,需要进行多次下载和多次重启,升级过程繁琐并且升级时间长,用户体验较差。



技术实现要素:

本发明实施例提供一种终端的软件升级方法和终端,旨在解决现有技术在进行软件升级时,升级过程繁琐并且升级时间长,用户体验较差的技术问题。

第一方面,本发明实施例提供一种终端的软件升级方法,包括:

接收终端发送的版本检测请求,获取所述终端的当前软件版本;

确定当前时刻的目标软件版本以及基准软件版本;

根据所述当前软件版本和所述目标软件版本,确定所述当前软件版本与所述目标软件版本的相邻属性;所述相邻属性用于表征所述当前软件版本与所述目标软件版本是否为两个相邻的软件版本;

根据所述相邻属性和所述基准软件版本,确定向所述终端发送的升级信息,并将所述升级信息发送给所述终端。

在本发明实施例的一种可能的实施方式中,所述相邻属性包括:所述当前软件版本与所述目标软件版本为同一个软件版本、所述当前软件版本与所述目标软件版本为两个相邻的软件版本、所述当前软件版本与所述目标软件版本之间间隔第一软件版本、所述当前软件版本与所述目标软件版本之间间隔多个软件版本中的任一种;其中,所述第一软件版本为与所述当前软件版本相邻的下一个软件版本。

在本发明实施例的另一种可能的实施方式中,所述根据所述相邻属性和所述基准软件版本,确定向所述终端发送的升级信息,具体包括:

若所述当前软件版本与所述目标软件版本为两个相邻的软件版本,则确定所述升级信息为所述当前软件版本至所述目标软件版本的第一差分包;

向所述终端发送所述第一差分包,以使所述终端根据所述第一差分包进行版本升级。

在本发明实施例的又一种可能的实施方式中,所述根据所述相邻属性和所述基准软件版本,确定向所述终端发送的升级信息,具体包括:

若所述当前软件版本与所述目标软件版本之间间隔所述第一软件版本,则确定所述第一软件版本为新的基准软件版本;

根据所述新的基准软件版本,确定所述升级信息为所述当前软件版本至所述新的基准软件版本的第二差分包,以及,所述新的基准软件版本至所述目标软件版本的第三差分包;

向所述终端发送所述第二差分包和所述第三差分包,以使所述终端根据所述第二差分包和所述第三差分包进行版本升级。

在本发明实施例的再一种可能的实施方式中,所述根据所述相邻属性和所述基准软件版本,确定向所述终端发送的升级信息,具体包括:

若所述当前软件版本与所述目标软件版本之间间隔多个软件版本,则确定所述升级信息为所述当前软件版本至所述基准软件版本的第四差分包,以及,所述基准软件版本至所述目标软件版本的第五差分包;

向所述终端发送所述第四差分包和所述第五差分包,以使所述终端根据所述第四差分包和所述第五差分包进行版本升级。

在本发明实施例的另一种可能的实施方式中,所述根据所述相邻属性和所述基准软件版本,确定向所述终端发送的升级信息,具体包括:

若所述当前软件版本与所述目标软件版本为同一个软件版本,则确定所述升级信息为指示所述终端当前无需升级的信息;

向所述终端发送所述升级信息,以使所述终端根据所述升级信息获知所述当前软件版本为所述目标软件版本。

进一步地,根据所述当前软件版本和所述目标软件版本,确定所述当前软件版本与所述目标软件版本的相邻属性,具体包括:

根据所述当前软件版本的版本号和所述目标软件版本的版本号之间的差值,确定所述当前软件版本与所述目标软件版本的相邻属性。

在本发明实施例的另一种可能的实施方式中,所述接收终端发送的版本检测请求,获取所述终端的当前软件版本之前,所述方法还包括:

针对每个量产软件版本,获取所述量产软件版本至所述基准软件版本的差分包、所述基准软件版本至所述量产软件版本的差分包、以及、与所述量产软件版本相邻的上一个量产软件版本至所述量产软件版本的差分包;其中,所述量产软件版本与所述基准软件版本不同。

第二方面,本发明实施例提供一种终端,包括:

第一获取模块,用于接收终端发送的版本检测请求,获取所述终端的当前软件版本;

第一确定模块,用于确定当前时刻的目标软件版本以及基准软件版本;

第二确定模块,用于根据所述当前软件版本和所述目标软件版本,确定所述当前软件版本与所述目标软件版本的相邻属性,并根据所述相邻属性和所述基准软件版本,确定向所述终端发送的升级信息;所述相邻属性用于表征所述当前软件版本与所述目标软件版本是否为两个相邻的软件版本;

发送模块,用于将所述升级信息发送给所述终端。

在本发明实施例的一种可能的实施方式中,所述相邻属性包括:所述当前软件版本与所述目标软件版本为同一个软件版本、所述当前软件版本与所述目标软件版本为两个相邻的软件版本、所述当前软件版本与所述目标软件版本之间间隔第一软件版本、所述当前软件版本与所述目标软件版本之间间隔多个软件版本中的任一种;其中,所述第一软件版本为与所述当前软件版本相邻的下一个软件版本。

在本发明实施例的另一种可能的实施方式中,所述第二确定模块,具体用于在所述当前软件版本与所述目标软件版本为两个相邻的软件版本时,确定所述升级信息为所述当前软件版本至所述目标软件版本的第一差分包;

所述发送模块,具体用于向所述终端发送所述第一差分包,以使所述终端根据所述第一差分包进行版本升级。

在本发明实施例的又一种可能的实施方式中,所述第二确定模块,具体用于在所述当前软件版本与所述目标软件版本之间间隔所述第一软件版本时,确定所述第一软件版本为新的基准软件版本,并根据所述新的基准软件版本,确定所述升级信息为所述当前软件版本至所述新的基准软件版本的第二差分包,以及,所述新的基准软件版本至所述目标软件版本的第三差分包;

所述发送模块,具体用于向所述终端发送所述第二差分包和所述第三差分包,以使所述终端根据所述第二差分包和所述第三差分包进行版本升级。

在本发明实施例的再一种可能的实施方式中,所述第二确定模块,具体用于在所述当前软件版本与所述目标软件版本之间间隔多个软件版本时,确定所述升级信息为所述当前软件版本至所述基准软件版本的第四差分包,以及,所述基准软件版本至所述目标软件版本的第五差分包;

所述发送模块,具体用于向所述终端发送所述第四差分包和所述第五差分包,以使所述终端根据所述第四差分包和所述第五差分包进行版本升级。

在本发明实施例的另一种可能的实施方式中,所述第二确定模块,具体用于在所述当前软件版本与所述目标软件版本为同一个软件版本时,确定所述升级信息为指示所述终端当前无需升级的信息;

所述发送模块,具体用于向所述终端发送所述升级信息,以使所述终端根据所述升级信息获知所述当前软件版本为所述目标软件版本。

在本发明实施例的另一种可能的实施方式中,所述第一确定模块,具体用于根据所述当前软件版本的版本号和所述目标软件版本的版本号之间的差值,确定所述当前软件版本与所述目标软件版本的相邻属性。

在本发明实施例的再一种可能的实施方式中,所述终端还包括:

第二获取模块,用于针对每个量产软件版本,获取所述量产软件版本至所述基准软件版本的差分包、所述基准软件版本至所述量产软件版本的差分包、以及、与所述量产软件版本相邻的上一个量产软件版本至所述量产软件版本的差分包;其中,所述量产软件版本与所述基准软件版本不同。

本发明实施例提供的终端的软件升级方法和终端,通过接收终端发送的版本检测请求,获取所述终端的当前软件版本,并确定当前时刻的目标软件版本以及基准软件版本,从而根据当前软件版本和目标软件版本,确定当前软件版本与所述目标软件版本的相邻属性,进而根据该相邻属性和基准软件版本,确定向终端发送的升级信息。该方法考虑了当前软件版本与所述目标软件版本的差异性,使得服务器所确定的升级信息为适配于终端的升级信息,从而避免终端在升级时多次下载和多次重启,大大节省了终端的升级时间,提高了终端的升级效率;同时,也避免了终端采用不适配的差分包进行升级,优化了终端的升级链路,更进一步地节省了终端的升级时间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的终端的软件升级方法实施例一的流程示意图;

图2为本发明实施例提供的服务器上的差分包分布示意图;

图3为本发明实施例提供的终端的软件升级方法实施例二的流程示意图;

图4为本发明实施例提供的终端的软件升级方法实施例三的流程示意图;

图5为本发明实施例提供的终端的软件升级方法实施例四的流程示意图;

图6为本发明实施例提供的终端的软件升级方法实施例五的流程示意图;

图7为本发明实施例提供的终端实施例一的结构示意图;

图8为本发明实施例提供的终端实施例二的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例涉及的终端,可以是手机、平板电脑、电视、个人数字助理(PDA)、可穿戴设备等,本发明实施例对终端的类型并不做限定,只要其上可以部署相应的操作系统和软件程序即可。

本发明实施例所涉及的软件,可以是任一的软件,例如可以是应用程序类软件、操作系统类软件、还可以是其他的修复补丁类的软件等,本发明实施例对软件的类型也不做限定。

在对终端进行软件升级时,通常可以采用相邻版本的差分包逐一进行升级的方案,但是该种方案需要进行多次下载和多次重启,会导致终端的升级过程时间长,用户体验性差的技术问题;可选的,还可以采用跨版本升级的方案,即将当前软件版本升级到基准软件版本,再将基准软件版本升级到目标软件版本,但是,这种跨版本升级的方案可能存在发送给终端的差分包并不是与终端适配的差分包,例如,假设当前最新版本为Vn,对于软件版本为Vn-1和Vn-2的终端升级过程分别如下:

1、对于Vn-1版本的终端,如果要升级到目标软件版本Vn,需要把Vn-1-V0的差分包、把V0-Vn的差分包分配给终端,使得终端先从Vn-1升级到基准软件版本V0,再从V0升级到Vn,但是这种方案所用的时间却远大于直接从Vn-1升级到Vn的时间;

2、对于Vn-2版本的终端,如果要升级到目标软件版本Vn,需要把Vn-2-V0的差分包、把V0-Vn的差分包分配给终端,使得终端先从Vn-2升级到基准软件版本V0,再从V0升级到Vn,但是这种方案所用的时间也远大于先从Vn-2升级到Vn-1,再从Vn-1升级到Vn所花费的时间。

因此,由上述可知,上述采用跨版本升级的方案,由于分配给终端的差分包存在与终端的当前软件版本并不适配的情况,从而会导致终端的升级时间过长,用户体验性也较差。

故而,本发明实施例提供的终端的软件升级方法和终端,旨在解决现有技术在进行软件升级时,升级过程繁琐并且升级时间长,用户体验较差的技术问题。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图1为本发明实施例提供的终端的软件升级方法实施例一的流程示意图。本实施例涉及的是服务器根据所获取的终端的当前软件版本以及目标软件版本以及基准软件版本,确定当前软件版本与所述目标软件版本的相邻属性,从而根据该相邻属性确定向终端发送的升级信息的具体过程。可选的,该方法的执行主体可以是服务器。如图1所示,该方法包括:

S101:接收终端发送的版本检测请求,获取所述终端的当前软件版本。

可选的,这里的终端可以是一个,也可以是多个,服务器在同一时刻可以获取不同终端的当前软件版本,然后针对不同终端的当前软件版本进行升级。

S102:确定当前时刻的目标软件版本以及基准软件版本。

需要说明的是,不同时刻服务器所确定的目标软件版本和基准软件版本可能不同,也可能相同。以目标软件版本为例,假设在t1时刻,服务器上的最大的软件版本的版本号为V3,如果此时某些终端需要升级,则当前的目标软件版本为V3;但是在t+1时刻,假设终端厂商发布了一新的量产版本V4,并将该新的量产版本V4对应的一系列差分包上传至服务器上,则此时服务器上的最大的软件版本的版本号为V4,如果此时终端需要升级,则当前的目标软件版本为V4。也就是说,由于终端厂商可能会动态的发布新的量产版本,并上传至服务器,因此,服务器在不同时刻的目标软件版本可能不同。

可选的,一般服务器默认的基准软件版本可以为V0,但也不排除其他情况,本实施例对基准软件版本并不做限定。

S103:根据所述当前软件版本和所述目标软件版本,确定所述当前软件版本与所述目标软件版本的相邻属性。

所述相邻属性用于表征所述当前软件版本与所述目标软件版本是否为两个相邻的软件版本。

S104:根据所述相邻属性和所述基准软件版本,确定向所述终端发送的升级信息。

具体的,服务器在确定终端的当前软件版本、目标软件版本和基准软件版本之后,会根据当前软件版本和目标软件版本,确定二者的相邻属性,例如,确定二者是否为相邻的两个软件版本,或者确定二者的软件版本是否相同,或者确定二者之间有没有间隔其他的软件版本。当服务器确定了当前软件版本和目标软件版本的相邻属性之后,可以根据该相邻属性和上述基准软件版本确定一升级信息,并将该升级信息发送给终端。

可选的,该升级信息可以是与终端适配的差分包,以节省终端的升级时间;该升级信息还可以是提示终端是否升级的信息,以避免终端长时间等待升级,浪费终端的开销,总之,本实施例对升级信息的内容并不做限定。可选的,该差分包可以是一个,也可以是多个。

可选的,当升级信息为与终端适配的差分包时,终端可以根据该差分包直接进行升级,且只需要下载一次差分包并在下载完后重启一次就可以完成升级,避免终端按照现有技术的方式从当前软件版本依次升级到目标软件版本,中间历经多次下载和多次重启,大大节省了终端的升级时间,提高了终端的升级效率。

另外,对于跨版本升级的方案,由于上述适配的差分包是根据当前软件版本与所述目标软件版本的相邻属性确定的,即该差分包考虑了当前软件版本和目标软件版本的差异,例如,当服务器确定当前软件版本与所述目标软件版本为两个相邻的版本时,则服务器就可以指示终端从当前软件版本直接升级到目标软件版本。因此,该差分包为适配于终端当前升级的差分包,终端在采用该差分包进行升级时,也节省了升级时间,从而大大提高了升级效率,满足用户的体验要求。

本发明实施例提供的终端的软件升级方法,通过接收终端发送的版本检测请求,获取所述终端的当前软件版本,并确定当前时刻的目标软件版本以及基准软件版本,从而根据当前软件版本和目标软件版本,确定当前软件版本与所述目标软件版本的相邻属性,进而根据该相邻属性和基准软件版本,确定向终端发送的升级信息。该方法考虑了当前软件版本与所述目标软件版本的差异性,使得服务器所确定的升级信息为适配于终端的升级信息,从而避免终端在升级时多次下载和多次重启,大大节省了终端的升级时间,提高了终端的升级效率;同时,也避免了终端采用不适配的差分包进行升级,优化了终端的升级链路,更进一步地节省了终端的升级时间。

可选的,上述相邻属性可以包括:当前软件版本与所述目标软件版本为同一个软件版本、所述当前软件版本与所述目标软件版本为两个相邻的软件版本、所述当前软件版本与所述目标软件版本之间间隔第一软件版本、所述当前软件版本与所述目标软件版本之间间隔多个软件版本中的任一种;其中,该第一软件版本为与所述当前软件版本相邻的下一个软件版本。可选的,服务器上可以预设该相邻属性与不同的升级信息之间的映射关系,因此,当服务器确定了该相邻属性之后,就可以根据该映射关系确定对应的升级信息。

可选的,假设上述基准软件版本为V0,本实施例中,终端的厂商一般在发布一个量产软件版本(除V0之外的量产软件版本)之后,会制作该量产软件版本的上一个量产软件版本至该量产软件版本的差分包、以及该量产软件版本至基准软件版本V0的差分包、以及该基准软件版本V0至该量产软件版本的差分包,并将这些差分包上传至服务器;需要说明的是,终端的厂商会对所发布的每个量产软件版本制作上述三种类型的差分包。也就是说,服务器上除V0外其他每个量产版本均各自对应三种类型的差分包。当然,这里也存在一种特殊情况,即对于发布的量产软件版本V1来说,其上一量产软件版本即就是V0,因此,上一个量产软件版本至量产软件版本V1的差分包(V0-V1)和基准软件版本至量产软件版本V1的差分包(V0-V1)相同,即对于V1来说,存在V0-V1和V1-V0两种类型的差分包。

因此,服务器接收终端发送的版本检测请求,获取终端的当前软件版本之前,即在上述S101之前,针对每个量产版本,服务器可以获取到每个量产软件版本至基准软件版本的差分包、基准软件版本至每个量产软件版本的差分包、以及、与该量产软件版本相邻的上一个量产软件版本至该量产软件版本的差分包;其中,该量产软件版本与基准软件版本不同,即该量产软件版本为非基准软件版本。

此处举一个简单的例子,假设终端厂商当前发布了一个量产软件版本V1,则服务器所获取的差分包包括V0-V1的差分包和V1-V0的差分包,由于V1是当前服务器上最高的软件版本,则服务器上当前的目标软件版本即为V1,此时如果终端需要升级,服务器就可以根据终端上的当前软件版本和目标软件版本(V1)的相邻属性,为终端分配合适的差分包;假设在下一时刻,假设终端厂商又发布了一个量产软件版本V2,则此时服务器所获取的差分包包括V1-V2的差分包、V0-V2的差分包和V2-V0的差分包,由于V2是当前服务器上最高的软件版本,则服务器上当前的目标软件版本即为V2,此时服务器上就包括了V0-V1的差分包、V1-V0的差分包、V1-V2的差分包、V0-V2的差分包和V2-V0的差分包,此时如果终端需要升级,服务器就可以根据终端上的当前软件版本和目标软件版本(V2)的相邻属性,为终端分配合适的差分包;以此类推,假设终端当前发布的量产软件版本Vn,则此时服务器所获取的差分包包括Vn-1-Vn的差分包、V0-Vn的差分包和Vn-V0的差分包,由于Vn是当前服务器上最高的软件版本,则服务器上当前的目标软件版本即为Vn,此时如果终端需要升级,服务器就可以根据终端上的当前软件版本和目标软件版本(Vn)的相邻属性,为终端分配合适的差分包。为了使得服务器上的差分包分布更清楚,可以参见图2所示的差分包分布示意图。

图3为本发明实施例提供的终端的软件升级方法实施例二的流程示意图。本实施例涉及的是服务器根据相邻属性和基准软件版本,确定向终端发送的升级信息的具体过程。在上述实施例的基础上,进一步地,上述S104具体可以包括:

S201:若所述当前软件版本与所述目标软件版本为两个相邻的软件版本,则确定所述升级信息为所述当前软件版本至所述目标软件版本的第一差分包。

S202:向所述终端发送所述第一差分包,以使所述终端根据所述第一差分包进行版本升级。

具体的,当服务器确定当前软件版本与所述目标软件版本为两个相邻的软件版本时,服务器获知采用相邻差分包升级的方式可以大大节省终端的升级时间,因此,服务器确定发送给终端的升级信息为当前软件版本至目标软件版本的第一差分包,从而将该第一差分包发送给终端,使得终端根据所述第一差分包进行版本升级,从而无需终端从当前软件版本升级到基准软件版本,再从基准软件版本升级到目标软件版本,提高了终端升级的效率。

例如,假设服务器在当前时刻的差分包包括V0-V1差分包、V1-V0差分包(这两个差分包是服务器针对量产软件版本V1获取的差分包)、V1-V2差分包、V2-V0差分包、V0-V2差分包(这三个差分包是服务器针对量产软件版本V2获取的差分包)、V2-V3差分包、V0-V3差分包、V3-V0差分包(这三个差分包是服务器针对量产软件版本V3获取的差分包),此时服务器上的目标软件版本为最高的软件版本;假设终端当前软件版本为V2,当前的目标软件版本为V3,基准软件版本为V0,服务器判断V2与V3是两个相邻的软件版本,则服务器就可以获取V2-V3差分包将其发送给终端,使得终端直接根据V2-V3差分包进行升级,从而优化了终端的升级链路,提高了终端的升级效率。

可选的,上述服务器确定当前软件版本与目标软件版本的相邻属性,可以是服务器上预设了每个量产软件版本的版本高低顺序列表,服务器可以在获得终端的当前软件版本之后,查询该列表,以确定终端的当前软件版本与目标软件版本的相邻属性,例如,确定二者是否版本相邻。

可选的,上述服务器还可以通过根据终端的当前软件版本的版本号和目标软件版本的版本号之间的差值,确定当前软件版本与目标软件版本的相邻属性,例如,若当前软件版本为Vm,目标软件版本为Vn,则服务器通过判断n-m的差值,确定当前软件版本与目标软件版本的相邻属性,即当n-m=0时,表明当前软件版本Vm即为目标软件版本;当n-m=1时,表明当前软件版本Vm与目标软件版本Vn相邻;当n-m=2时,表明当前软件版本Vm与目标软件版本Vn之间间隔一个第一软件版本(Vm+1);当n-m>2时,表明当前软件版本Vm与目标软件版本Vn之间间隔多个软件版本。当然,上述当前软件版本的版本号和目标软件版本的版本号之间的差值不限定于整数,还可以是小数,这里依开发者的命名习惯设定。

本发明实施例提供的终端的软件升级方法,在服务器确定当前软件版本与目标软件版本为两个相邻的软件版本,则确定升级信息为当前软件版本至目标软件版本的第一差分包,从而向终端发送该第一差分包,以使终端根据该第一差分包进行版本升级,从而优化了终端的升级链路,提高了终端的升级效率,保证了用户的体验。

图4为本发明实施例提供的终端的软件升级方法实施例三的流程示意图。本实施例涉及的是服务器根据相邻属性和基准软件版本,确定向终端发送的升级信息的另一具体过程。在上述实施例的基础上,进一步地,上述S104具体可以包括:

S301:若所述当前软件版本与所述目标软件版本之间间隔所述第一软件版本,则确定所述第一软件版本为新的基准软件版本。

S302:根据所述新的基准软件版本,确定所述升级信息为所述当前软件版本至所述新的基准软件版本的第二差分包,以及,所述新的基准软件版本至所述目标软件版本的第三差分包。

S303:向所述终端发送所述第二差分包和所述第三差分包,以使所述终端根据所述第二差分包和所述第三差分包进行版本升级。

具体的,当服务器确定终端的当前软件版本与当前的目标软件版本之间间隔第一软件版本,则确定该第一软件版本为新的基准软件版本,该第一软件版本为与当前软件版本相邻的下一个软件版本,也就是当前的目标软件版本相邻的上一个软件版本。当终端确定了新的基准软件版本之后,终端就可以确定发送给终端的升级信息为当前软件版本至该新的基准软件版本的第二差分包,以及,该新的基准软件版本至目标软件版本的第三差分包。

例如,假设服务器在当前时刻的差分包包括V0-V1差分包、V1-V0差分包(这两个差分包是服务器针对量产软件版本V1获取的差分包)、V1-V2差分包、V2-V0差分包、V0-V2差分包(这三个差分包是服务器针对量产软件版本V2获取的差分包)、V2-V3差分包、V0-V3差分包、V3-V0差分包(这三个差分包是服务器针对量产软件版本V3获取的差分包),此时服务器上的目标软件版本为最高的软件版本;假设终端当前软件版本为V1,当前的目标软件版本为V3,基准软件版本为V0,服务器判断V1与V3之间间隔一个第一软件版本即V2,则服务器将V2作为新的基准软件版本,则此时服务器确定当前软件版本至该新的基准软件版本的第二差分包(V1-V2)以及该新的基准软件版本至目标软件版本的第三差分包(V2-V3),从而将V1-V2差分包和V2-V3差分包发送给终端,使得终端直接根据V1-V2差分包和V2-V3差分包进行升级,即终端先从V1升级到V2,再从V2升级到V3,从而优化了终端的升级链路,提高了终端的升级效率。

本发明实施例提供的终端的软件升级方法,在服务器确定当前软件版本与目标软件版本之间间隔第一软件版本时,服务器确定该第一软件版本为新的基准软件版本,从而根据该新的基准软件版本,确定升级信息为当前软件版本至该新的基准软件版本的第二差分包,以及,该新的基准软件版本至目标软件版本的第三差分包,从而将该第二差分包和第三差分包发送给终端,使得终端根据该第二差分包和第三差分包进行版本升级,其优化了终端的升级链路,提高了终端的升级效率,进而提高了用户的体验。

图5为本发明实施例提供的终端的软件升级方法实施例四的流程示意图。本实施例涉及的是服务器根据相邻属性和基准软件版本,确定向终端发送的升级信息的另一具体过程。在上述实施例的基础上,进一步地,上述S104具体可以包括:

S401:若所述当前软件版本与所述目标软件版本之间间隔多个软件版本,则确定所述升级信息为所述当前软件版本至所述基准软件版本的第四差分包,以及,所述基准软件版本至所述目标软件版本的第五差分包。

S402:向所述终端发送所述第四差分包和所述第五差分包,以使所述终端根据所述第四差分包和所述第五差分包进行版本升级。

具体的,本实施例中,当服务器确定终端的当前软件版本与当前的目标软件版本之间间隔多个软件版本时,服务器可以确定上述升级信息为当前软件版本至当前的基准软件版本的第四差分包,以及,该基准软件版本至目标软件版本的第五差分包,从而将该第四差分包和第五差分包发送给终端,使得终端根据第四差分包和第五差分包进行升级,即先从当前软件版本升为基准软件版本,再从基准软件版本升为目标软件版本。该实施例中,终端只需要下载一次差分包和重启一次就可以完成升级,另外,本实施例中,服务器考虑了当前软件版本与当前的目标软件版本的相邻属性,即考虑了当前软件版本与当前的目标软件版本的差异跨度之后,才决定是否进行如上述所说的跨版本升级,这样提高了现有技术中的跨版本升级的有效性,避免了现有技术中的跨版本升级的盲目性。

本发明实施例提供的终端的软件升级方法,当服务器确定当前软件版本与目标软件版本之间间隔多个软件版本时,确定上述升级信息为当前软件版本至基准软件版本的第四差分包,以及,基准软件版本至目标软件版本的第五差分包,从而将该第四差分包和第五差分包发送给终端,使得终端根据该第四差分包和第五差分包进行版本升级。该实施例考虑了当前软件版本与当前的目标软件版本的相邻属性,即考虑了当前软件版本与当前的目标软件版本的差异跨度之后,才决定是否进行如上述所说的跨版本升级,这样提高了现有技术中的跨版本升级的有效性,避免了现有技术中的跨版本升级的盲目性。

图6为本发明实施例提供的终端的软件升级方法实施例五的流程示意图。本实施例涉及的是服务器根据相邻属性和基准软件版本,确定向终端发送的升级信息的另一具体过程。在上述实施例的基础上,进一步地,上述S104具体可以包括:

S501:若当前软件版本与目标软件版本为同一个软件版本,则确定所述升级信息为指示所述终端当前无需升级的信息。

S502:向所述终端发送所述升级信息,以使所述终端根据所述升级信息获知所述当前软件版本为所述目标软件版本。

具体的,本实施例中,当服务器确定终端的当前软件版本与目标软件版本为同一个软件版本时,服务器确定发送给终端的升级信息为指示终端当前无需升级的信息,并将该升级信息发送给终端,从而使得终端根据升级信息获知当前软件版本为目标软件版本,从而避免了终端处于长时间等待升级的状态,使得终端可以及时减少等待开销,为用户进行其他的服务,从而大大提高了终端升级的有效性。

本发明实施例提供的终端的软件升级方法,当服务器确定当前软件版本与目标软件版本为同一个软件版本时,服务器向终端发送用于指示终端当前无需升级的升级信息,从而避免了终端处于长时间等待升级的状态,使得终端可以及时减少等待开销,为用户进行其他的服务,从而大大提高了终端升级的有效性。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

图7为本发明实施例提供的终端实施例一的结构示意图。如图7所示,该终端包括:第一获取模块10、第一确定模块11、第二确定模块12和发送模块13。

具体的,第一获取模块10,用于接收终端发送的版本检测请求,获取所述终端的当前软件版本;

第一确定模块11,用于确定当前时刻的目标软件版本以及基准软件版本;

第二确定模块12,用于根据所述当前软件版本和所述目标软件版本,确定所述当前软件版本与所述目标软件版本的相邻属性,并根据所述相邻属性和所述基准软件版本,确定向所述终端发送的升级信息;所述相邻属性用于表征所述当前软件版本与所述目标软件版本是否为两个相邻的软件版本;

发送模块13,用于将所述升级信息发送给所述终端。

本发明实施例提供的终端,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

可选的,上述相邻属性包括:所述当前软件版本与所述目标软件版本为同一个软件版本、所述当前软件版本与所述目标软件版本为两个相邻的软件版本、所述当前软件版本与所述目标软件版本之间间隔第一软件版本、所述当前软件版本与所述目标软件版本之间间隔多个软件版本中的任一种;其中,所述第一软件版本为与所述当前软件版本相邻的下一个软件版本。

可选的,所述第二确定模块12,具体用于在所述当前软件版本与所述目标软件版本为两个相邻的软件版本时,确定所述升级信息为所述当前软件版本至所述目标软件版本的第一差分包;

所述发送模块13,具体用于向所述终端发送所述第一差分包,以使所述终端根据所述第一差分包进行版本升级。

可选的,所述第二确定模块12,具体用于在所述当前软件版本与所述目标软件版本之间间隔所述第一软件版本时,确定所述第一软件版本为新的基准软件版本,并根据所述新的基准软件版本,确定所述升级信息为所述当前软件版本至所述新的基准软件版本的第二差分包,以及,所述新的基准软件版本至所述目标软件版本的第三差分包;

所述发送模块13,具体用于向所述终端发送所述第二差分包和所述第三差分包,以使所述终端根据所述第二差分包和所述第三差分包进行版本升级。

可选的,所述第二确定模块12,具体用于在所述当前软件版本与所述目标软件版本之间间隔多个软件版本时,确定所述升级信息为所述当前软件版本至所述基准软件版本的第四差分包,以及,所述基准软件版本至所述目标软件版本的第五差分包;

所述发送模块13,具体用于向所述终端发送所述第四差分包和所述第五差分包,以使所述终端根据所述第四差分包和所述第五差分包进行版本升级。

可选的,所述第二确定模块12,具体用于在所述当前软件版本与所述目标软件版本为同一个软件版本时,确定所述升级信息为指示所述终端当前无需升级的信息;

所述发送模块13,具体用于向所述终端发送所述升级信息,以使所述终端根据所述升级信息获知所述当前软件版本为所述目标软件版本。

可选的,所述第一确定模块11,具体用于根据所述当前软件版本的版本号和所述目标软件版本的版本号之间的差值,确定所述当前软件版本与所述目标软件版本的相邻属性。

在上述实施例的基础上,进一步地,参见图8所示的终端实施例二的结构示意图。如图8所示,上述终端还可以包括第二获取模块14,用于针对每个量产软件版本,获取所述量产软件版本至所述基准软件版本的差分包、所述基准软件版本至所述量产软件版本的差分包、以及、与所述量产软件版本相邻的上一个量产软件版本至所述量产软件版本的差分包;其中,所述量产软件版本与所述基准软件版本不同。

本发明实施例提供的终端,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1