差分升级方法及装置、存储介质、终端与流程

文档序号:23499668发布日期:2021-01-01 18:03阅读:111来源:国知局
差分升级方法及装置、存储介质、终端与流程

本发明涉及终端升级技术领域,尤其涉及一种差分升级方法及装置、存储介质、终端。



背景技术:

对于当前众多智能终端,空间下载技术(over-the-airtechnology,简称ota)升级是很重要的功能,通过ota升级,终端通过网络下载新的系统程序完成升级,能让终端产品迭代更新系统程序的版本,在产品推出后能不断提升产品功能和性能,极大地提高产品的体验。ota升级可包括整包升级和差分升级两种升级方式。其中,整包升级是以完整的新版本为升级包进行升级,升级包较大,下载时间漫长,给用户体验很不好。差分升级则是以原版本文件和新版本间的增量包制作差分包进行升级,其差分包一般远小于整包升级方式的升级包,实际使用中用户终端的升级一般采用差分升级。

现有技术中的差分升级方案,在升级过程中如果发生掉电现象,之后可能会出现无法启动的问题。

由此,亟需一种差分升级方法能在完成原版本文件升级的同时,实现掉电保护。



技术实现要素:

本发明解决的技术问题是如何在完成原版本文件的升级的同时实现掉电保护。

为解决上述技术问题,本发明实施例提供一种差分升级方法,所述方法包括:获取用于对原版本文件进行升级的差分包,所述差分包包括多个差分子包,每一差分子包用于对所述原版本文件中对应的原版本文件块进行升级,所述原版本文件块的大小与所述差分包的大小之和不超过终端的本地空闲存储空间的大小;使用所述差分包对所述原版本文件进行多次升级,每次使用单个差分子包升级对应的原版本文件块。

可选的,所述差分包还包含所述原版本文件块的大小信息,使用所述差分包对所述原版本文件进行多次升级包括:每次升级时,根据所述原版本文件块的大小信息从所述原版本文件中获取本次待升级的原版本文件块,并使用对应的差分子包对其进行升级。

可选的,每次升级时,将本次待升级的原版本文件块备份至所述终端的本地空闲存储空间。

可选的,每次升级时,记录本次待升级的原版本文件块的升级状态。

可选的,所述方法还包括:如果本次待升级的原版本文件块进入升级过程,且未被备份至所述本地空闲存储空间,则本次待升级的原版本文件块的升级状态记录为开始状态;在升级过程恢复时,如果检测到所述本次待升级的原版本文件块的升级状态为开始状态,则将本次待升级的原本文件块备份至所述本地空闲存储空间,其中,所述升级过程的恢复是在所述升级过程被中断后进行的。

可选的,所述方法还包括:如果本次待升级的原版本文件块在升级过程中已被备份至所述本地空闲存储空间,且升级后的新版本文件未生成,则本次待升级的原版本文件块的升级状态记录为备份状态;在升级过程恢复时,如果检测到所述本次待升级的原版本文件块的升级状态为备份状态,则跳过备份步骤,对所述本次待升级的原版本文件块进行升级,其中,所述升级过程的恢复是在所述升级过程被中断后进行的。

可选的,所述方法还包括:如果本次待升级的原版本文件块在升级过程中升级后的新版本文件已生成,且所述本地空闲存储空间备份的原版本文件块未被删除,则本次待升级的原版本文件块的升级状态记录为更新状态;在升级过程恢复时,如果检测到所述本次待升级的原版本文件块的升级状态为更新状态,则删除所述本地空闲存储空间中的原版本文件块,其中,所述升级过程的恢复是在所述升级过程被中断后进行的。

可选的,所述方法还包括:如果本次待升级的原版本文件块在升级过程中升级后的新版本文件已生成,且所述本地空闲存储空间备份的原版本文件块已被删除,则本次待升级的原版本文件块的升级状态记录为完成状态;在升级过程恢复时,如果检测到所述本次待升级的原版本文件块的升级状态为完成状态且原版本文件的升级尚未完成,则启动下一次待升级的原版本文件块的升级过程,其中,所述升级过程的恢复是在所述升级过程被中断后进行的。

为解决上述技术问题,本发明实施例还提供一种差分升级方法,所述方法包括:步骤一:确定原版本文件和新版本文件;步骤二:设置数据块大小,将所述原版本文件划分为多个原版本文件块,每个原版本文件块的大小等于所述数据块大小;步骤三:对于每一原版本文件块,根据所述新版本文件生成该原版本文件块对应的差分子包;步骤四:检测终端的本地空闲存储空间的大小;步骤五:判断所述原版本文件块的大小与差分包的大小之和是否超过所述本地空闲存储空间的大小,如果超过则返回步骤二,如果未超过,则将所述差分包发送至所述终端,所述差分包包括全部的差分子包。

可选的,将所述差分包发送至所述终端包括:将所述差分包上传至服务器,由所述服务器将所述差分包传输至所述终端。

本发明实施例还提供一种差分升级装置,所述装置包括:获取模块,用于获取用于对原版本文件进行升级的差分包,所述差分包包括多个差分子包,每一差分子包用于对所述原版本文件中对应的原版本文件块进行升级,所述原版本文件块的大小与所述差分包的大小之和不超过终端的本地空闲存储空间的大小;升级模块,用于使用所述差分包对所述原版本文件进行多次升级,每次使用单个差分子包升级对应的原版本文件块。

本发明实施例还提供一种差分升级装置,所述装置包括:所述装置包括:第一模块,用于确定原版本文件和新版本文件;第二模块,用于设置数据块大小,将所述原版本文件划分为多个原版本文件块,每个原版本文件块的大小等于所述数据块大小;第三模块,用于对于每一原版本文件块,根据所述新版本文件生成该原版本文件块对应的差分子包;第四模块,用于检测终端的本地空闲存储空间的大小;第五模块,用于判断所述原版本文件块的大小与差分包的大小之和是否超过所述本地空闲存储空间的大小,如果超过,则控制所述第二模块重新设置数据块大小,如果未超过,则将所述差分包发送至所述终端,所述差分包包括全部的差分子包。

本发明实施例还提供一种存储介质,其上存储有计算机指令,所述计算机指令被处理器运行时,执行上述方法的步骤。

本发明实施例还提供一种终端,所述终端包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述方法的步骤。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明实施例提供一种差分升级方法,所述方法包括:获取用于对原版本文件进行升级的差分包,所述差分包包括多个差分子包,每一差分子包用于对所述原版本文件中对应的原版本文件块进行升级,所述原版本文件块的大小与所述差分包的大小之和不超过终端的本地空闲存储空间的大小;使用所述差分包对所述原版本文件进行多次升级,每次使用单个差分子包升级对应的原版本文件块。在本发明实施例提供的方案中,获取到的用于原版本文件进行升级的差分包包括多个差分子包,并且每一差分子包用于对原版本文件中对应的原版本文件块进行升级,因此原版本文件升级时可以进行多次升级,每次使用单个差分子包升级对应的单个原版本文件块;由于原版本文件块的大小与差分包的大小之和不超过终端的本地空闲存储空间的大小,因此,在单个原版本文件块进行升级时,终端的本地空闲存储空间除了可以用于存储所述差分包,还可以足够用于备份所述原版本文件块,因此,如果原版本文件块的升级过程发生中断,则在升级过程恢复时可以利用本地备份的原版本文件块继续进行升级。

进一步地,本发明实施例在每次升级原版本文件块时,记录本次待升级的原版本文件块的升级状态,如果该原版本文件块的升级过程被中断,可以在升级过程恢复时,根据本次待升级的原版本文件块的升级状态确定升级过程的下一步骤,以继续该原版本文件块的升级过程,而无需重新开始该原版本文件块的升级过程,也无需重新开始该原版本文件块所属的原版本文件的升级过程。

本发明实施例中还提供一种差分升级方法,所述方法包括:步骤一:确定原版本文件和新版本文件;步骤二:设置数据块大小,将所述原版本文件划分为多个原版本文件块,每个原版本文件块的大小等于所述数据块大小;步骤三:对于每一原版本文件块,根据所述新版本文件生成该原版本文件块对应的差分子包;步骤四:检测终端的本地空闲存储空间的大小;步骤五:判断所述原版本文件块的大小与差分包的大小之和是否超过所述本地空闲存储空间的大小,如果超过则返回步骤二,如果未超过,则将所述差分包发送至所述终端,所述差分包包括全部的差分子包。在本发明的实施例中,对于每一原版本文件块,根据所述新版本文件生成该原版本文件块对应的差分子包,可以得到每一原版本文件块升级所需的差分子包,此外,由于按照设置的数据块大小对原版本文件进行划分,可以通过调整数据块大小,使得原版本文件块的大小满足其与差分包的大小之和不超过终端的本地空闲存储空间的大小的条件,因此在每个原版本文件块升级过程中,本地空闲存储空间能够备份本次待升级的原版本文件块,实现对该原版本文件块升级的掉电保护,从而实现对整个原版本文件升级的掉电保护。

附图说明

图1是本发明实施例的一种差分升级方法的流程示意图;

图2是本发明实施例的一种差分升级方法的场景示意图;

图3是本发明实施例的另一种差分升级方法的流程示意图;

图4是本发明实施例的一种差分升级装置的结构示意图;

图5是本发明实施例的另一种差分升级装置的结构示意图。

具体实施方式

如背景技术所述,现有技术在差分升级过程中如果发生掉电,掉电后可能会出现终端无法启动的问题。

本发明的发明人经过研究发现,现有技术中掉电后无法启动的问题,主要是终端设备本地存储容量较小造成的,较小的存储空间不足以备份待升级的原版本文件。具体而言,在原版本文件进行升级前,通常会将该原版本文件备份至终端的空闲存储空间中,如果备份成功,那么在原版本文件进行升级的过程因为掉电等原因发生中断,则可以利用终端的空闲存储空间中的原版本文件和差分包继续进行升级。但如果终端的空闲存储空间很小,无法备份所述原版本文件,则升级过程被中断后,无法继续进行升级。

为了解决上述技术问题,本发明实施例提供一种差分升级方法,所述方法包括:获取用于对原版本文件进行升级的差分包,所述差分包包括多个差分子包,每一差分子包用于对所述原版本文件中对应的原版本文件块进行升级,所述原版本文件块的大小与所述差分包的大小之和不超过终端的本地空闲存储空间的大小;使用所述差分包对所述原版本文件进行多次升级,每次使用单个差分子包升级对应的原版本文件块。在本发明实施例提供的方案中,获取到的用于原版本文件进行升级的差分包包括多个差分子包,并且每一差分子包用于对原版本文件中对应的原版本文件块进行升级,因此原版本文件升级时可以进行多次升级,每次升级单个原版本文件块;由于原版本文件块的大小与差分包的大小之和不超过终端的本地空闲存储空间的大小,因此,在单个原版本文件块进行升级时,终端的本地空闲存储空间可以备份所述原版本文件块,如果原版本文件块的升级过程发生中断,则在升级过程恢复时可以利用本地空闲存储空间中的原版本文件块继续进行升级。

为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

参考图1,图1是本发明实施例中一种差分升级方法的流程示意图。所述差分升级方法可由终端执行,可以用于升级终端系统程序(例如操作系统、应用程序等)的版本,所述终端可以是电脑、手机、智能手表、物联网设备等终端设备,但并不限于此。所述系统程序进行差分升级所需的差分包可以由内部服务器制作,所述内部服务器可以是所述系统程序供应方的内部服务器,但并不限于此。所述内部服务器制作完成该系统程序差分升级所需的差分包后,可以将差分包传输至外部服务器进行存储,所述外部服务器可以是系统程序供应方的外部服务器,但并不限于此。所述外部服务器可以和终端耦接,该终端可以从外部服务器获取差分包进行差分升级。所述差分升级可以是ota中的差分升级。图1所示的差分升级方法可以包括如下步骤:

步骤s101:获取用于对原版本文件进行升级的差分包,所述差分包包括多个差分子包,每一差分子包用于对所述原版本文件中对应的原版本文件块进行升级,所述原版本文件块的大小与所述差分包的大小之和不超过终端的本地空闲存储空间的大小;

步骤s102:使用所述差分包对所述原版本文件进行多次升级,每次使用单个差分子包升级对应的原版本文件块。

在步骤s101的具体实施中,当终端需要升级终端系统程序时,可以从所述外部服务器端获取升级所需的差分包。所述差分包的制作过程可以由所述内部服务器完成。

进一步地,在制作差分包的过程中,内部服务器可以根据终端的本地空闲存储空间的大小对原版本文件进行分块,以使得原版本文件块的大小与差分包的大小不超过用户终端的本地空闲存储空间。

具体而言,内部服务器存储有终端想要升级的系统程序的原版本文件和新版本文件,内部服务器可以通过下述步骤生成原版本文件所需的差分包:步骤一:内部服务器确定需要升级的原版本文件和对应的新版本文件;步骤二:内部服务器设置数据块大小,将原版本文件划分为多个原版本文件块,每个原版本文件块的大小等于数据块大小;步骤三:对于每一原版本文件块,内部服务器根据新版本文件块生成该原版本文件块升级所需的差分子包;步骤四:确定终端的本地空闲存储空间的大小;步骤五:判断所述原版本文件块的大小与差分包的大小之和是否超过终端的本地空闲存储空间的大小,如果超过则返回步骤二,如果未超过,则将所述差分包发送至所述终端,所述差分包包括全部的差分子包。

其中,内部服务器也可以在步骤二之前执行步骤四,也即,可以先确定终端的本地空闲存储空间的大小,然后再设置数据块大小。

进一步地,内部服务器可以从外部服务器接收所述终端的本地空闲存储空间的大小,也可以根据预设值确定终端的本地空闲存储空间的大小。其中,从外部服务器接收的所述终端的本地空闲存储空间的大小可以是该终端实时的本地空闲存储空间的大小,如果需要升级系统程序的终端有多个,从外部服务器接收的所述终端的本地空闲存储空间的大小也可以是外部服务器对各个终端上报的本地空闲存储空间的大小进行计算后确定的值,例如可以是各个终端上报的本地空闲存储空间大小的平均值。

由上所述,内部服务器通过循环判断所述原版本文件块的大小与差分包的大小之和是否超过终端的本地空闲存储空间的大小,能够在生成原版本文件块升级所需的差分包的同时使得原版本文件块的大小与差分包的大小之和不超过终端的本地空闲存储空间的大小。内部服务器制作完成的差分包包括所有的差分子包,还可以包括原版本文件块的大小信息。

进一步地,内部服务器完成差分包的制作后,可以主动发送至外部服务器供终端下载。内部服务器完成差分包的制作后,也可以不主动发送至外部服务器,当终端需要升级终端系统程序时,可以向外部服务器发出差分包下载请求,外部服务器可以在接收到差分包下载请求后,从内部服务器获取差分包,再传输至终端。

进一步地,终端对原版本文件进行升级之前,可以先从外部服务器下载差分包至本地的空闲存储空间,然后使用该差分包对终端本地的原版本文件进行升级。

进一步地,本发明实施例中的差分包可以包括多个差分子包,每一差分子包用于对所述原版本文件中对应的原版本文件块进行升级。终端可以依次利用差分子包对对应的原版本文件块进行升级,直至完成所有的原版本文件块的升级。也即,本发明实施例中的原版本文件包含多个原版本文件块,原版本文件的升级过程可以相当于所有原版本文件块的升级过程。所述原版本文件块可以是在原版本文件进行升级前划分形成的文件块,也可以是原版本文件进行升级的过程中,每次从原版本文件的存储区域中读取进行升级的原版本文件的一部分而形成的文件块,但并不限于此。

在一个非限制性实施例中,所述原版本文件可以包含多个原版本分区文件,例如引导(boot)分区文件等,所述原版本文件块可以是原版本分区文件的一部分。

进一步地,差分子包与原版本文件块具有一一对应的关系,每一差分子包是对应的原版本文件块进行升级所需的升级包,每一差分子包可以用于对所述原版本文件中对应的原版本文件块进行升级。所述差分子包可以是通过对原版本文件块和对应的新版本文件块进行差分制作得到的,也可以是基于其他差分算法制作得到。

进一步地,终端在升级原版本文件之前,可以先下载差分包到终端的本地空闲存储空间,每一原版本文件块进行升级时,可以从用户终端的本地空闲存储空间读取对应的差分子包,基于该原版本文件块及其对应的差分子包,进行原版本文件块的升级,例如,通过调用patch命令进行升级。

进一步地,终端的本地空闲存储空间可以用于存储所述差分包,也可以用于存储所述原版本文件块,但并不限于此。在原版本文件块进行升级时,终端可以将原版本文件块备份至终端的本地空闲存储空间,由于内部服务器制作的差分包中包含原版本文件块的大小信息,且所述原版本文件块的大小与差分包的大小之和不超过终端的本地空闲存储空间,因此,在每一原版本文件块进行升级时,该原版本文件块均能备份至本地空闲存储空间,不会出现由于终端的本地空闲存储空间不足而无法备份该原版本文件块的情况。

在步骤s102的具体实施中,使用所述差分包对所述原版本文件进行多次升级,每次使用单个差分子包升级对应的原版本文件块。

如上所述,本发明实施例中的差分包包含各个原版本文件块升级所需的差分子包,终端在原版本文件的升级过程中可以依次使用差分子包对对应的原版本文件块进行升级,直到原版本文件升级完成。

进一步地,所述差分包还可以包含所述原版本文件块的大小信息,使用所述差分包对所述原版本文件进行多次升级可以包括:终端每次升级一个原版本文件块时,根据差分包中所述原版本文件块的大小信息从所述原版本文件中获取本次待升级的原版本文件块,并使用对应的差分子包对其进行升级。在该原版本文件块进行升级的过程中,可以将本次待升级的原版本文件块备份至所述终端的本地空闲存储空间。

进一步地,由于原版本文件块的大小满足原版本文件块的大小与差分包大小之和不超过终端的本地空闲存储空间的条件,在每个原版本文件块进行升级的过程中,可以将本次待升级的原版本文件块备份至用户终端的本地空闲存储空间,如果在该原版本文件的升级过程被中断,在升级过程恢复时,如果原有的原版本文件块被损坏,可以利用备份的原版本文件块继续进行升级。

由上,在本发明实施例提供的方案中,获取到的用于原版本文件进行升级的差分包包括多个差分子包,并且每一差分子包用于对原版本文件中对应的原版本文件块进行升级,因此原版本文件升级时可以进行多次升级,每次升级单个原版本文件块;由于原版本文件块的大小与差分包的大小之和不超过终端的本地空闲存储空间的大小,因此,在单个原版本文件块进行升级时,终端的本地空闲存储空间除了可以用于存储所述差分包,还可以用于备份所述原版本文件块,如果原版本文件块的升级过程发生中断,则在升级过程恢复时可以利用本地空闲存储空间中的原版本文件块继续进行升级。

在一个非限制性实施例中,每次升级时,记录本次待升级的原版本文件块的升级状态。例如,可以创建状态文件,记录各个待升级的原版本文件块的升级状态信息,但并不限于此。

参考表1,表1示出了本次待升级的原版本文件块在升级过程中的不同阶段的升级状态。

表1

如果原版本文件块的升级过程被中断,当中断原因被解除时,如重新上电后,可以恢复本次待升级的原版本文件块的升级过程,进一步地,也可以根据记录的本次待升级的原版本文件块的升级状态,确定升级过程恢复后本次待升级的原版本文件进行升级的下一步骤,以继续进行升级。参考图2,图2示出了本发明实施例的一种差分升级方法的场景示意图。

如果本次待升级的原版本文件块的升级过程被中断,则执行步骤s201,恢复本次待升级的原版本文件块的升级过程;接着,执行步骤s202,检测本次待升级的原版本文件的升级状态,如果检测到本次待升级的原版本文件块的升级状态为开始状态,则执行步骤s203,将本次待升级的原本文件块备份至所述本地空闲存储空间。

具体而言,如果本次待升级的原版本文件块进入升级过程,且未被备份至所述本地空闲存储空间,则本次待升级的原版本文件块的升级状态记录为开始状态;在升级过程恢复时,如果检测到所述本次待升级的原版本文件块的升级状态为开始状态,则将本次待升级的原本文件块备份至所述本地空闲存储空间,其中,所述升级过程的恢复是在所述升级过程被中断后进行的。

进一步地,将本次待升级的原本文件块备份至所述本地空闲存储空间可以包括:根据所述原版本文件块的大小信息从所述原版本文件中获取本次待升级的原版本文件块,将获取到的所述本次待升级的原版本文件块写入所述本地空闲存储空间。

如果检测到本次待升级的原版本文件块的升级状态为备份状态,则执行步骤s204,跳过备份步骤,对所述本次待升级的原版本文件块进行升级。

具体而言,如果本次待升级的原版本文件块在升级过程中已被备份至所述本地空闲存储空间,且升级后的新版本文件未生成,则本次待升级的原版本文件块的升级状态记录为备份状态;在升级过程恢复时,如果检测到所述本次待升级的原版本文件块的升级状态为备份状态,则跳过备份步骤,对所述本次待升级的原版本文件块进行升级,其中,所述升级过程的恢复是在所述升级过程被中断后进行的。

进一步地,对本次待升级的原版本文件块进行升级可以包括:从终端的本地空闲存储空间读取与所述本次待升级的原版本文件块对应的差分子包,基于该原版本文件块及其对应的差分子包,进行原版本文件块的升级,例如,通过调用patch命令进行升级,其中,原版本文件块的升级过程可以在终端的运行内存中完成。需要指出的是,所述原版本文件块的升级可以是读取系统程序存储区域中的原版本文件块进行升级,也可以是读取本地空闲存储区域中的原版本文件块进行升级,升级后得到的对应的新版本文件块可以覆盖系统程序存储区域中的原版本文件块。

如果检测到本次待升级的原版本文件块的升级状态为更新状态,则执行步骤s205,删除所述本地空闲存储空间中的原本文件块。

具体而言,如果本次待升级的原版本文件块在升级过程中升级后的新版本文件已生成,且所述本地空闲存储空间备份的原版本文件块未被删除,则本次待升级的原版本文件块的升级状态记录为更新状态;在升级过程恢复时,如果检测到所述本次待升级的原版本文件块的升级状态为更新状态,则删除所述本地空闲存储空间中的原本文件块,其中,所述升级过程的恢复是在所述升级过程被中断后进行的。

如果检测到本次待升级的原版本文件块的升级状态为完成状态,则执行步骤s206,判断是否完成本次待升级的原版本文件块所属的原版本文件的升级,如果已经完成了原版本文件的升级,则结束原版本文件的升级过程,如果原版本文件的升级尚未完成,则启动下一次待升级的原本文件块的升级过程。

具体而言,如果本次待升级的原版本文件块在升级过程中升级后的新版本文件已生成,且所述本地空闲存储空间备份的原版本文件块已被删除,则本次待升级的原版本文件块的升级状态记录为完成状态;在升级过程恢复时,如果检测到所述本次待升级的原版本文件块的升级状态为完成状态,且原版本文件的升级尚未完成,则启动下一次待升级的原本文件块的升级过程,其中,所述升级过程的恢复是在所述升级过程被中断后进行的。由上,本发明实施例在每次升级原版本文件块时,记录本次待升级的原版本文件块的升级状态,如果该原版本文件块的升级过程被中断,可以在升级过程恢复时,根据本次待升级的原版本文件块的升级状态确定升级过程的下一步骤,以继续该原版本文件块的升级过程,而无需重新开始该原版本文件块的升级过程,也无需重新开始该原版本文件块所属的原版本文件的升级过程。

参考图3,图3示出了本发明实施例的另一种差分升级方法的流程示意图。所述另一种差分升级方法可以由内部服务器执行,可以用于升级终端系统程序的版本,该终端可以是电脑、手机、智能手表、物联网设备等终端设备,但并不限于此。所述内部服务器可以是制作终端系统程序差分升级所需的差分包的服务器,例如可以是系统程序供应方的内部服务器。所述内部服务器制作完成该系统程序差分升级所需的差分包后,可以将差分包传输至外部服务器进行存储。所述外部服务器可以和终端耦接,所述外部服务器可以是系统程序供应方的外部服务器,但并不限于此。终端可以从外部服务器获取差分包进行差分升级。所述差分升级可以是ota中的差分升级。

图3所示的差分升级方法可以包括如下步骤:

步骤s301:确定原版本文件和新版本文件;

步骤s302:设置数据块大小,将所述原版本文件划分为多个原版本文件块,每个原版本文件块的大小等于所述数据块大小;

步骤s303:对于每一原版本文件块,根据所述新版本文件生成该原版本文件块对应的差分子包;

步骤s304:确定终端的本地空闲存储空间的大小;

步骤s305:判断所述原版本文件块的大小与差分包的大小之和是否超过所述本地空闲存储空间的大小,如果超过则返回步骤s302,如果未超过,则将所述差分包发送至所述终端,所述差分包包括全部的差分子包。

在步骤s301的具体实施中,内部服务器存储有系统程序的原版本文件和新版本文件,可以根据需要升级的系统程序确定原版本文件和新版本文件。内部服务器可以主动确定需要升级的系统程序的原版本文件和新版本文件,也可以从外部服务器接收终端需要升级的系统程序的信息,例如,系统程序的名称、编号等,再根据需要升级的系统程序确定原版本文件和新版本文件。

在步骤s303具体实施中,可以按照步骤s302中设置的数据块大小对新版本文件进行分块,将所述新版本文件划分为多个新版本文件块,新版本文件块与原版本文件块具有一一对应的关系。

进一步地,可以对原版本文件块与对应的新版本文件块进行差分,生成该原版本文件块升级所需的差分子包,所有原版本文件块升级所需的差分子包构成原版本文件升级所需的差分包。

在步骤s304的具体实施中,内部服务器可以根据预设值确定需要进行系统程序升级的终端的本地空闲存储空间,所述预设值可以根据原版本文件的大小和终端本地最大存储空间确定。内部服务器也可以从外部服务器接收终端的本地空闲存储空间的大小信息。具体而言,外部服务器可以实时检测到终端的本地空闲存储空间的大小,从外部服务器接收的所述终端的本地空闲存储空间的大小可以是外部服务器实时检测到的终端的本地空闲存储空间的大小。终端也可以定期向外部服务器上报自身的本地空闲存储空间的大小,如果终端有多个,从外部服务器接收的所述终端的本地空闲存储空间的大小也可以是外部服务器对各个终端上报的本地空闲存储空间进行计算后确定的值,例如可以是各个终端上报的本地空闲存储空间大小的平均值。

需要指出的是,也可以在执行步骤s302之前执行步骤s304,也即,可以先确定终端的本地空闲存储空间的大小,然后再设置数据块大小。例如,可以根据终端本地空闲存储空间的大小采用二分法设置数据块的大小。

在步骤s305的具体实施中,如果步骤302中的原版本文件块的大小与差分包的大小之和超过终端的本地空闲存储空间的大小,则返回至步骤s302,重复步骤s302至步骤s305,直至原版本文件块的大小与差分包的大小之和不超过终端的本地空闲存储空间的大小。每次返回步骤s302时,重新设置数据块的大小,再根据重新设置的数据块的大小划分原版本文件,继续执行步骤s302至s305,如果原版本文件块的大小与差分包的大小之和仍然超过终端的本地空闲存储空间的大小,则返回步骤s302,再次重新设置数据块的大小,直至原版本文件块的大小与差分包的大小之和不超过终端的本地空闲存储空间的大小。

进一步地,将所述差分包发送至所述终端可以包括:将所述差分包上传至外部服务器,由所述外部服务器将所述差分包传输至所述终端。

具体而言,内部服务器完成差分包的制作后,可以主动发送至外部服务器供终端下载。在一个非限制性实施例中,内部服务器将差分包上传至外部服务器后,外部服务器可以通知终端下载差分包进行升级。

内部服务器也可以不主动将差分包发送至外部服务器,当终端需要升级系统程序时,可以向外部服务器发出差分包下载请求,外部服务器可以在接收到差分包下载请求后,从内部服务器获取差分包,再传输至终端。

由上,在本发明的实施例中,对于每一原版本文件块,根据所述新版本文件生成该原版本文件块对应的差分子包,可以得到每一原版本文件块升级所需的差分子包,此外,由于按照设置的数据块大小对原版本文件进行划分,可以通过调整数据块大小,使得原版本文件块的大小满足其与差分包的大小之和不超过终端的本地空闲存储空间的大小的条件,因此在每个原版本文件块升级过程中,本地空闲存储空间能够备份本次待升级的原版本文件块,实现对该原版本文件块升级的掉电保护,从而实现对整个原版本文件升级的掉电保护。

本领域技术人员可以理解,步骤s305中发送至终端的差分包可以用于图1所示的实施例中的原版本文件的差分升级,所述差分包可以包括图1所示的实施例中的原版本文件块升级所需的差分子包以及原版本文件块的大小信息。

图1至图3所示实施例中,差分包是由内部服务器制作,并传输至外部服务器储存和提供给终端,不过并不限于此。在一个变化例中,内部服务器和外部服务器也可以合并为同一服务器,也即,由同一服务器制作、存储以及向终端分发差分包。

图4是本发明实施例的一种差分升级装置的结构示意图,本实施例中的差分升级装置可以包括获取模块41和升级模块42,其中:

获取模块41,用于获取用于对原版本文件进行升级的差分包,所述差分包包括多个差分子包,每一差分子包用于对所述原版本文件中对应的原版本文件块进行升级,所述原版本文件块的大小与所述差分包的大小之和不超过终端的本地空闲存储空间的大小;

升级模块42,用于使用所述差分包对所述原版本文件进行多次升级,每次使用单个差分子包升级对应的原版本文件块。

关于所述一种差分升级装置的工作原理、工作方式的更多内容,可以参照上述图1和图2中的相关描述,在此不再赘述。

图5是本发明实施例的另一种差分升级装置的结构示意图,所述另一种差分升级装置可以包括第一模块51、第二模块52、第三模块53、第四模块54、第五模块55,其中:

第一模块51,用于确定原版本文件和新版本文件;

第二模块52,用于设置数据块大小,将所述原版本文件划分为多个原版本文件块,每个原版本文件块的大小等于所述数据块大小;

第三模块53,用于对于每一原版本文件块,根据所述新版本文件生成该原版本文件块对应的差分子包;

第四模块54,用于确定终端的本地空闲存储空间的大小;

第五模块55,用于判断所述原版本文件块的大小与差分包的大小之和是否超过所述本地空闲存储空间的大小,如果超过,则控制所述第二模块重新设置数据块大小,如果未超过,则将所述差分包发送至所述终端,所述差分包包括全部的差分子包。

进一步地,所述第五模块55可以包括上传模块(图未示),所述上传模块用于将差分包上传至外部服务器,由所述外部服务器将所述差分包传输至需要进行升级原版本文件的终端。

关于另一种差分升级装置的工作原理、工作方式的更多内容,可以参照上述图3中的相关描述,在此不再赘述。

本发明实施例还提供了一种存储介质,其上存储有计算机指令,所述计算机指令被处理器运行时执行上述图1所示的差分升级方法的步骤,和/或上述图3所示的差分升级方法的步骤。所述存储介质可以是计算机可读存储介质,例如可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器,还可以包括光盘、机械硬盘、固态硬盘等。

具体地,在本发明实施例中,所述处理器可以为中央处理单元(centralprocessingunit,简称cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,简称rom)、可编程只读存储器(programmablerom,简称prom)、可擦除可编程只读存储器(erasableprom,简称eprom)、电可擦除可编程只读存储器(electricallyeprom,简称eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,简称ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(randomaccessmemory,简称ram)可用,例如静态随机存取存储器(staticram,简称sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronousdram,简称sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,简称ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,简称esdram)、同步连接动态随机存取存储器(synchlinkdram,简称sldram)和直接内存总线随机存取存储器(directrambusram,简称drram)。

本发明实施例还提供了一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述图1所示的差分升级方法的步骤,和/或执行上述图3所示的差分升级方法的步骤。所述终端包括但不限于手机、计算机、平板电脑、服务器或者服务器集群等设备。

应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,表示前后关联对象是一种“或”的关系。

本申请实施例中出现的“多个”是指两个或两个以上。

本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

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