升级方法及装置与流程

文档序号:12362989阅读:194来源:国知局
升级方法及装置与流程

本公开涉及网络技术领域,尤其涉及一种升级方法及装置。



背景技术:

为了修复Bug(漏洞)、改善功能以及添加新的功能,经常需要对系统或应用进行升级,以更好地满足用户的使用需求。在空中下载技术(Over-the-Air Technology,OTA)中,运营商将应用升级包或系统升级包置于OTA服务器中,终端或服务器基于当前版本与新版本之间的区别,计算当前版本与新版本之间的差量,根据该差量生成差量OTA包,终端通过下载并安装该差量OTA包,实现从当前版本到新版本的升级。

对于包含预装应用的系统如Android系统而言,通过OTA技术进行系统升级的具体方法可以为:Android系统的系统分区划分为若干个块,每个块大小固定,在需要将该Android系统从当前版本升级为新版本时,将该当前版本的系统分区的每一个块与新版本的对应块进行比较,如果一样,标记为相同,如果不一样,计算差量并存储该差量,将该系统分区的每个块比较完以后,获取当前版本与新版本之间的差量集合,根据该差量集合获取差量OTA包,终端根据该差量OTA包即可将该Android系统从当前版本升级为新版本。



技术实现要素:

为克服相关技术中存在的问题,本公开提供一种升级方法及装置。

根据本公开实施例的第一方面,提供一种升级方法,包括:

获取终端当前系统的版本信息;

根据所述当前系统的版本信息与目标系统的版本信息,将所述当前系统的第一分区中的数据与所述目标系统的第一分区中的数据进行比较,得到所述当前系统与所述目标系统的第一分区差量,所述第一分区用于存储系统数据;

如果检测到所述目标系统的第二分区中存在待更新预装应用,根据所述第一分区差量和所述待更新预装应用,生成升级包,所述第二分区用于存储至少一个预装应用;

向所述终端发送所述升级包。

在本公开的第一方面的第一种可能实现方式中,所述方法还包括:

所述如果检测到所述目标系统的第二分区中存在待更新预装应用,根据所述第一分区差量和所述待更新预装应用,生成升级包之前,对于所述目标系统中的任一预装应用,检测所述当前系统的第二分区中是否存在所述预装应用;

如果所述当前系统的第二分区中不存在所述预装应用,确定所述预装应用为所述待更新预装应用,执行根据所述第一分区差量和所述待更新预装应用,生成所述升级包的步骤;

如果所述当前系统的第二分区中存在所述预装应用,检测所述当前系统的第二分区中的所述预装应用与所述目标系统中的所述预装应用是否一致,如果不一致,则确定所述预装应用为所述待更新预装应用,执行根据所述第一分区差量和所述待更新预装应用,生成所述升级包的步骤。

在本公开的第一方面的第二种可能实现方式中,所述根据所述当前系统的版本信息与目标系统的版本信息,将所述当前系统的第一分区中的数据与所述目标系统的第一分区中的数据进行比较,得到所述当前系统与所述目标系统的第一分区差量之后,所述方法还包括:

如果检测到所述目标系统的第二分区中不存在所述待更新预装应用,根据所述第一分区差量生成所述升级包。

在本公开的第一方面的第三种可能实现方式中,所述第二分区以文件为粒度存储所述至少一个预装应用。

在本公开的第一方面的第四种可能实现方式中,所述第一分区以预设大小的块为粒度存储所述系统数据。

根据本公开实施例的第二方面,提供一种升级装置,包括:

获取模块,用于获取终端当前系统的版本信息;

比较模块,用于根据所述当前系统的版本信息与目标系统的版本信息,将所述当前系统的第一分区中的数据与所述目标系统的第一分区中的数据进行比较,得到所述当前系统与所述目标系统的第一分区差量,所述第一分区用于存储系统数据;

生成模块,用于如果检测到所述目标系统的第二分区中存在待更新预装应用,根据所述第一分区差量和所述待更新预装应用,生成升级包,所述第二分区用于存储至少一个预装应用;

发送模块,用于向所述终端发送所述升级包,以使得所述终端根据所述升级包从所述当前系统升级至所述目标系统。

在本公开的第二方面的第一种可能实现方式中,所述装置还包括:

检测模块,用于对于所述目标系统中的任一预装应用,检测所述当前系统的第二分区中是否存在所述预装应用;

确定模块,用于如果所述当前系统的第二分区中不存在所述预装应用,确定所述预装应用为所述待更新预装应用;

所述生成模块用于执行根据所述第一分区差量和所述待更新预装应用,生成所述升级包的步骤;

所述检测模块还用于如果所述当前系统的第二分区中存在所述预装应用,检测所述当前系统的第二分区中的所述预装应用与所述目标系统中的所述预装应用是否一致;

所述确定模块还用于如果所述当前系统的第二分区中的所述预装应用与所述目标系统中的所述预装应用不一致,则确定所述预装应用为所述待更新预装应用;

所述生成模块用于执行根据所述第一分区差量和所述待更新预装应用,生成所述升级包的步骤。

在本公开的第二方面的第二种可能实现方式中,所述生成模块还用于:

如果检测到所述目标系统的第二分区中不存在所述待更新预装应用,根据所述第一分区差量生成所述升级包。

在本公开的第二方面的第三种可能实现方式中,所述第二分区以文件为粒度存储所述至少一个预装应用。

在本公开的第二方面的第四种可能实现方式中,所述第一分区以预设大小的块为粒度存储所述系统数据。

第三方面,还提供了一种升级装置,包括:

处理器;

用于存储处理器可执行的指令的存储器;

其中,该处理器被配置为:

获取终端当前系统的版本信息;

根据所述当前系统的版本信息与目标系统的版本信息,将所述当前系统的第一分区中的数据与所述目标系统的第一分区中的数据进行比较,得到所述当前系统与所述目标系统的第一分区差量,所述第一分区用于存储系统数据;

如果检测到所述目标系统的第二分区中存在待更新预装应用,根据所述第一分区差量和所述待更新预装应用,生成升级包,所述第二分区用于存储至少一个预装应用;

向所述终端发送所述升级包。

本公开实施例提供的技术方案带来的有益效果是:

由于预装应用与系统一样都存储在系统分区中,所以在用户将任一预装应用删除后,会导致原来用于存储该预装应用的块中的数据发生变化,进而导致无法根据块中数据的区别计算差量,也就无法完成系统升级,导致系统升级成功率低。本公开通过将系统数据和预装应用分别存储于第一分区和第二分区,采用不同的升级方法分别对系统及预装应用进行升级,既能确保在对系统升级时减小对带宽和对终端内存的占用率,还能够避免由于预装应用发生改变导致无法完成系统升级的问题,进而能够提高系统升级成功率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种升级方法的流程图;

图2A是根据一示例性实施例示出的一种升级方法的流程图;

图2B是根据一示例性实施例示出的一种分区存储示意图;

图3是根据一示例性实施例示出的一种升级装置框图;

图4是根据一示例性实施例示出的一种升级装置400的框图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种升级方法的流程图,如图1所示,升级方法用于服务器中,包括以下步骤。

在步骤101中,获取终端当前系统的版本信息。

在步骤102中,根据当前系统的版本信息与目标系统的版本信息,将当前系统的第一分区中的数据与目标系统的第一分区中的数据进行比较,得到当前系统与所述目标系统的第一分区差量,第一分区用于存储系统数据。

在步骤103中,如果检测到目标系统的第二分区中存在待更新预装应用,根据第一分区差量和待更新预装应用,生成升级包,第二分区用于存储至少一个预装应用。

在步骤104中,向终端发送所述升级包。

本公开实施例提供的方法,通过将系统数据和预装应用分别存储于终端的第一分区和第二分区,采用不同的升级方法分别对系统及预装应用进行升级,既能确保在对系统升级时减小对带宽和对终端内存的占用率,还能够避免由于预装应用发生改变导致无法完成系统升级的问题,进而能够提高系统升级成功率。

在本公开的第一种可能实现方式中,所述如果检测到所述目标系统的第二分区中存在待更新预装应用,根据所述第一分区差量和所述待更新预装应用,生成升级包之前,所述方法还包括:

对于所述目标系统中的任一预装应用,检测所述当前系统的第二分区中是否存在所述预装应用;

如果所述当前系统的第二分区中不存在所述预装应用,确定所述预装应用为所述待更新预装应用,执行根据所述第一分区差量和所述待更新预装应用,生成所述升级包的步骤;

如果所述当前系统的第二分区中存在所述预装应用,检测所述当前系统的第二分区中的所述预装应用与所述目标系统中的所述预装应用是否一致,如果不一致,则确定所述预装应用为所述待更新预装应用,执行根据所述第一分区差量和所述待更新预装应用,生成所述升级包的步骤。

在本公开的第二种可能实现方式中,所述根据所述当前系统的版本信息与目标系统的版本信息,将所述当前系统的第一分区中的数据与所述目标系统的第一分区中的数据进行比较,得到所述当前系统与所述目标系统的第一分区差量之后,所述方法还包括:

如果检测到所述目标系统的第二分区中不存在所述待更新预装应用,根据所述第一分区差量生成所述升级包。

在本公开的第三种可能实现方式中,所述第二分区以文件为粒度存储所述至少一个预装应用。

在本公开的第四种可能实现方式中,所述第一分区以预设大小的块为粒度存储所述系统数据。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

图2A是根据一示例性实施例示出的一种升级方法的流程图。该实施例的执行主体可以为服务器,参照图2A,该实施例具体包括:

在步骤201中,获取终端当前系统的版本信息。

在本公开实施例中,可以在接收到终端的系统升级请求时,获取该终端当前系统的版本信息,该系统升级请求用于向服务器请求升级该终端当前系统,该系统升级请求至少携带该终端当前系统的版本信息,以使得服务器能够获知该终端当前系统的版本信息,其中,该系统的版本信息可以是系统的版本序列号,也可以是其他能够唯一标识系统版本的信息,本公开实施例对此也不作限定。

终端向服务器发送该系统升级请求的方法可以为:当终端接收或检测到服务器发送的系统更新消息时,显示提醒信息,以提醒用户是否更新当前系统,如果检测到用户对确定更新选项的触发操作时,向服务器发送系统升级请求,以实现更新该终端当前系统的目的。其中,该提醒消息可以携带目标系统的版本信息,相应地,该系统升级请求也可以携带该终端本次升级的目标系统的版本信息。

在步骤202中,根据该当前系统的版本信息与目标系统的版本信息,将该当前系统的第一分区中的数据与该目标系统的第一分区中的数据进行比较,得到该当前系统与该目标系统的第一分区差量,该第一分区用于存储系统数据。

在本公开实施例中,将系统数据和预装应用分别存储于终端系统分区的两个不同的分区中,该第一分区用于存储系统数据,该第二分区用于存储至少一个预装应用;以使得服务器能够采用不同的升级方法对系统和预装应用进行升级。该第一分区和该第二分区为系统分区的两个部分,该系统分区是指终端中用于终端当前系统的系统数据和至少一个预装应用的存储空间。

将该当前系统的第一分区中的数据与该目标系统的第一分区中的数据进行比较,将数据不同的部分进行标记,并记录不同数据之间的差值,该差值即为该当前系统与该目标系统的第一分区差量。

在本公开另一实施例中,该第一分区以预设大小的块为粒度存储该系统数据。该预设大小可以设置为任一数值,如4Kb(Kilobyte,千字节),本公开实施例对此不作限定。

通过以预设大小的块为粒度存储该系统数据,能够实现在升级时,对每个块中所存储的系统数据进行一一对比,进而确定每个块的差值,根据该差值生成的升级包相对于基于目标系统的全部系统数据生成的升级包而言,具有数据量小的特点,进而能够减小对带宽及终端内存的占用,且能提高升级效率。

如图2B所示,该当前系统的第一分区和该目标系统的第一分区分别包括若干个块,将该若干个块中每个块中的数据进行一一对比,如果对应两个块中的数据一致,则标记为相同,如果对应两个块中的数据不一致,计算该两个块之间的差值,该终端当前系统的第一分区和该目标系统的第一分区的差值集合即为该第一分区差值。

通过将该当前系统的第一分区中的数据与该目标系统的第一分区中的数据进行比较,以得到该当前系统与该目标系统的第一分区差量的方式对该终端系统进行升级,能够避免将该目标系统的系统数据以全部发送的方式升级系统导致的对带宽及终端内存占用率高的问题。

在步骤203中,检测该目标系统的第二分区中是否存在待更新预装应用,如果存在,执行步骤204;如果不存在,执行步骤205。

该待更新预装应用是指在该终端当前系统中需要更新的预装应用;该预装应用是指系统自带的应用。检测该目标系统的第二分区中是否存在待更新预装应用,也即是,检测该终端当前系统的第二分区中是否存在需要更新的预装应用的方法可以包括以下两种:

第一种、获取该终端当前系统的第二分区中每个预装应用的应用标识,对于该目标系统中的任一预装应用,获取该预装应用的应用标识,根据该预装应用的应用标识,检测该终端当前系统中是否存在对应预装应用,如果检测到在该终端当前系统中不存在该预装应用,则确定该目标系统的第二分钟中存在待更新的预装应用。其中,该应用标识可以为应用名称、也可以是其他能够唯一标识对应应用的信息,本公开实施例对此不作限定。

第二种、获取该终端当前系统的第二分区中每个预装应用的版本信息及该目标系统的第二分区中每个预装应用的版本信息,将该当前系统与该目标系统的对应预装应用的版本信息进行比较,对于任一预装应用,如果该目标系统中的版本信息较该终端当前系统的版本信息新,则确定该目标系统的第二分区中存在待更新预装应用。

检测该目标系统的第二分区中是否存在待更新预装应用的过程,可以采用上述两种方法中的任一种方法实现,也可以采用上述两种方法的结合实现,或者采用其他方法进行检测,本公开实施例对此不作限定。

通过检测该目标系统的第二分区中是否存在待更新预装应用,以使得系统在检测到该目标系统的第二分区中存在待更新预装应用时,能够根据检测到的该待更新预装应用,实现对终端当前系统中的预装应用的更新。

在本公开另一实施例中,该第二分区以文件为粒度存储该至少一个预装应用。如图2B所示,该以文件为粒度存储该至少一个预装应用,是指将该至少一个预装应用以文件的单位存储在该第二分区中。

通过以文件为粒度存储该至少一个预装应用,能够实现以基于文件完整升级的方式,对系统自带的预装应用进行更新,相对于以块为粒度进行存储的方式,能够提高升级成功率和效率。

在步骤204中,如果检测到该目标系统的第二分区中存在待更新预装应用,根据该第一分区差量和该待更新预装应用,生成升级包,执行步骤206。

在检测到该目标系统的第二分区中存在待更新预装应用时,生成升级包的方法可以为:对于该目标系统中的任一预装应用,检测该当前系统的第二分区中是否存在该预装应用;如果该当前系统的第二分区中不存在该预装应用,确定该预装应用为该待更新预装应用,执行根据该第一分区差量和该待更新预装应用,生成该升级包的步骤;如果该当前系统的第二分区中存在该预装应用,检测该当前系统的第二分区中的该预装应用与该目标系统中的该预装应用是否一致,如果不一致,则确定该预装应用为该待更新预装应用,执行根据该第一分区差量和该待更新预装应用,生成该升级包的步骤。

其中,该当前系统的第二分区中的该预装应用与该目标系统中的该预装应用是否一致,可以是指该当前系统和该目标系统对应预装应用的版本信息是否一致,也可以是指该当前系统和该目标系统对应预装应用的应用数据是否一致,本公开实施例对此不作限定。其中,该应用数据是指应用的安装包中的数据。

当指的是该当前系统和该目标系统对应预装应用的版本信息是否一致时,则对该当前系统和该目标系统中对应预装应用的版本信息进行比较,如果该对应预装应用的版本信息相同,则确定当前系统的第二分区中的该预装应用与该目标系统中的该预装应用一致,如果该对应预装应用的版本信息不同,则确定当前系统的第二分区中的该预装应用与该目标系统中的该预装应用不一致。

当指的是该当前系统和该目标系统对应预装应用的应用数据是否一致时,获取该当前系统和该目标系统对应预装应用,将该对应预装应用的应用数据进行比较,如果对应预装应用的应用数据相同,则确定当前系统的第二分区中的该预装应用与该目标系统中的该预装应用一致,如果该对应预装应用的应用数据不同,则确定当前系统的第二分区中的该预装应用与该目标系统中的该预装应用不一致。

在本公开另一实施例中,如果检测到该目标系统的第二分区中存在该待更新预装应用,向终端发送提示消息,该提示消息用于提醒用户是否需要对终端当前系统中的预装应用进行更新,该提示消息至少包括确定更新选项和取消更新选项,在终端检测到用户对确定更新选项的触发操作时,向服务器发送预装应用更新请求,服务器在接收到终端发送的预装应用更新请求时,执行根据该第一分区差量和该待更新预装应用,生成升级包的步骤,在终端检测到用户对取消更新选项的触发操作时,向服务器发送取消预装应用更新请求,服务器在接收到终端发送的取消预装应用更新请求时,执行根据该第一分区差量生成升级包的步骤。

通过在检测到该目标系统的第二分区中存在该待更新预装应用时,向终端发送用于提醒用户是否需要对终端当前系统中的预装应用进行更新的提示消息,能够使用户自行选择是否对终端当前系统中的预装应用进行更新,避免强行更新预装应用给用户的正常使用造成不便,进一步提高用户体验。

在步骤205中,如果检测到该目标系统的第二分区中不存在该待更新预装应用,根据该第一分区差量生成该升级包。

如果检测到该目标系统的第二分区中不存在该待更新预装应用,表示该终端当前系统中的预装应用均为最新版本,无需进行升级,在这种情况下,只需根据步骤202获取到的第一分区差量生成升级包,以实现对该终端当前系统的升级。

在步骤206中,向该终端发送该升级包,以使得该终端根据该升级包从该当前系统升级至该目标系统。

服务器根据该终端的系统升级请求生成升级包后,向终端返回该升级包,以使得该终端能够通过安装该升级包达到系统升级的目的。

本公开提供的升级方法可以用于对固定终端和移动终端的系统升级过程中,该固定终端可以为个人电脑、大型计算机等,该移动终端可以为智能手机、平板电脑、MP3(Moving Picture Experts Group Audio LayerⅢ,动态影像专家压缩标准音频层面3)、PDA(Personal Digital Assistant,个人数字助理)等,还可以用于对其他终端系统的升级,本公开实施例对该升级方法的应用场景不作限定。

本公开实施例提供的方法,通过将系统数据和预装应用分别存储于第一分区和第二分区,采用不同的升级方法分别对系统及预装应用进行升级,既能确保在对系统升级时减小对带宽和对终端内存的占用率,还能够避免由于预装应用发生改变导致无法完成系统升级的问题,进而能够提高系统升级成功率;进一步地,通过以文件为粒度存储该至少一个预装应用,能够实现以基于文件完整升级的方式,对系统自带的预装应用进行更新,相对于以块为粒度进行存储的方式,能够进一步提高升级成功率和效率。

图3是根据一示例性实施例示出的一种升级装置框图。参照图3,该装置包括获取模块301,比较模块302,生成模块303和发送模块304。

获取模块301,用于获取终端当前系统的版本信息;

比较模块302,用于根据所述获取模块301获取到的所述当前系统的版本信息与目标系统的版本信息,将所述当前系统的第一分区中的数据与所述目标系统的第一分区中的数据进行比较,得到所述当前系统与所述目标系统的第一分区差量,所述第一分区用于存储系统数据;

生成模块303,用于如果检测到所述目标系统的第二分区中存在待更新预装应用,根据所述比较模块302得到的第一分区差量和所述待更新预装应用,生成升级包,所述第二分区用于存储至少一个预装应用;

发送模块304,用于向所述终端发送所述生成模块303生成的所述升级包。

在本公开提供的第一种可能实现方式中,所述装置还包括:

检测模块,用于对于所述目标系统中的任一预装应用,检测所述当前系统的第二分区中是否存在所述预装应用;

确定模块,用于如果所述检测模块检测到所述当前系统的第二分区中不存在所述预装应用,确定所述预装应用为所述待更新预装应用;

所述生成模块303用于执行根据所述第一分区差量和所述确定模块确定的所述待更新预装应用,生成所述升级包的步骤;

所述检测模块还用于如果所述当前系统的第二分区中存在所述预装应用,检测所述当前系统的第二分区中的所述预装应用与所述目标系统中的所述预装应用是否一致;

所述确定模块还用于如果所述检测模块检测到所述当前系统的第二分区中的所述预装应用与所述目标系统中的所述预装应用不一致,则确定所述预装应用为所述待更新预装应用;

所述生成模块303用于执行根据所述第一分区差量和所述待更新预装应用,生成所述升级包的步骤。

在本公开提供的第二种可能实现方式中,所述生成模块303还用于:

如果检测到所述目标系统的第二分区中不存在所述待更新预装应用,根据所述第一分区差量生成所述升级包。

在本公开提供的第三种可能实现方式中,所述第二分区以文件为粒度存储所述至少一个预装应用。

在本公开提供的第四种可能实现方式中,所述第一分区以预设大小的块为粒度存储所述系统数据。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图4是根据一示例性实施例示出的一种升级装置400的框图。例如,装置400可以被提供为一服务器。参照图4,装置400包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理部件422的执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述升级方法。

装置400还可以包括一个电源组件426被配置为执行装置400的电源管理,一个有线或无线网络接口450被配置为将装置400连接到网络,和一个输入输出(I/O)接口458。装置500可以操作基于存储在存储器432的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

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