发明内容
本发明提供一种云电视系统的升级方法及装置,用于解决现有升级过程中可能由于数据分区剩余空间不足导致升级失败的问题。
本发明第一方面提供一种云电视系统的升级方法,包括:
解压系统升级文件包,获取多个升级文件;
根据所述多个升级文件统计本次升级后所需占用的额外数据空间,其中,所述额外数据空间为除当前系统所占用数据空间以外的数据空间;
判断当前数据空间的剩余空间是否大于或等于所述本次升级后所需占用的额外数据空间,若是,采用所述解压升级文件包进行系统升级。
可选地,若所述当前数据空间的剩余空间小于所述本次升级后所需占用的额外数据空间,则生成空间清理提示信息。
可选地,所述多个升级文件包括:差分升级补丁文件、待增加升级文件、待删除升级文件;
所述根据所述多个升级文件统计本次升级后所需占用的额外数据空间,包括:
计算所述多个升级文件中所述差分升级补丁文件写入对应的程序后额外增加的数据空间、所述待增加升级文件所需占用的数据空间、以及所述待删除升级文件所释放的数据空间;
根据所述差分升级补丁文件写入对应的程序后额外增加的数据空间、所述待增加升级文件所需占用的数据空间、以及所述待删除升级文件所释放的数据空间,统计本次升级后所需占用的额外数据空间。
进一步地,所述计算所述多个升级文件中所述差分升级补丁文件写入对应的程序后额外增加的数据空间、所述待增加升级文件所需占用的数据空间、以及所述待删除升级文件所释放的数据空间,包括:
依次将每个所述升级文件在预设缓存中进行加载,计算获取所述多个升级文件中每个所述差分升级补丁文件写入对应的程序后额外增加的数据空间、每个所述待增加升级文件所需占用的数据空间、以及每个所述待删除升级文件所释放的数据空间。
本发明第二方面提供一种云电视系统的升级装置,包括:
获取模块,用于解压系统升级文件包,获取多个升级文件;
统计模块,用于根据所述多个升级文件统计本次升级后所需占用的额外数据空间,其中,所述额外数据空间为除当前系统所占用空间外的数据空间;
判断模块,用于判断当前数据空间的剩余空间是否大于或等于所述本次升级后所需占用的额外数据空间,若是,采用所述解压升级文件包进行系统升级。
可选地,所述装置还包括:生成模块,用于在所述当前数据空间的剩余空间小于所述本次升级后所需占用的额外数据空间时,生成空间清理提示信息。
可选地,所述多个升级文件包括:差分升级补丁文件、待增加升级文件、待删除升级文件;
所述统计模块,包括:
计算单元,用于计算所述多个升级文件中所述差分升级补丁文件写入对应的程序后额外增加的数据空间、所述待增加升级文件所需占用的数据空间、以及所述待删除升级文件所释放的数据空间;
统计单元,用于根据所述差分升级补丁文件写入对应的程序后额外增加的数据空间、所述待增加升级文件所需占用的数据空间、以及所述待删除升级文件所释放的数据空间,统计本次升级后所需占用的额外数据空间。
进一步地,所述计算单元,具体用于依次将每个所述升级文件在预设缓存中进行加载,计算获取所述多个升级文件中每个所述差分升级补丁文件写入对应的程序后额外增加的数据空间、每个所述待增加升级文件所需占用的数据空间、以及每个所述待删除升级文件所释放的数据空间。
本发明提供的云电视系统的升级方法及装置中,解压系统升级文件包,获取多个升级文件,根据上述多个升级文件统计本次升级后所需占用的额外数据空间,判断当前数据空间的剩余空间是否大于或等于本次升级后所需占用的额外数据空间,若是,则采用上述解压升级文件包进行系统升级,这样可以在保证当前数据空间的剩余空间可以负担升级后额外增加的数据空间时再进行升级,避免了再升级过程中发现空间不足导致的升级失败,以实现升级可以一次完成,提高了升级效率。
具体实施方式
图1为本发明提供的云电视系统的升级方法实施例一的流程示意图。该方法的执行主体可以是各种智能设备,例如:智能手机、平板电脑、笔记本、智能电视、智能家居等,在此不作限制。本实施例中主要以云电视为例进行说明,如图1所示,该方法包括:
S101、解压系统升级文件包,获取多个升级文件。
该系统升级文件包可以是智能设备通过网络下载的,该系统升级文件包中的升级文件由不同类型的升级文件组成,其中可以包括:差分升级补丁(patch)文件、待增加升级文件、待删除升级文件等。具体地,不同类型的文件格式可能不同,例如,差分升级补丁文件的后缀一般为“.p”的patch文件,待增加升级文件为常规格式文件,待删除升级文件的脚本中会有删除动作。
其中,差分升级patch文件主要针对当前系统中已有的程序进行升级,具体地,将差分升级patch文件写入当前系统中对应的程序中即可。
待增加升级文件是指当前系统中没有的程序或应用等,本次升级过程中会增加在新的系统中。待删除升级文件是指要删除当前系统中的某个程序或应用。
S102、根据上述多个升级文件统计本次升级后所需占用的额外数据空间。
其中,额外数据空间为除当前系统所占用数据分区的空间以外还需占用的数据分区的空间。
需要说明的是,系统升级后会更新system分区,随着system分区的新增内容,data分区也会被额外占用,例如更新系统的过程中新增了应用程序、或对原有应用程序增加了补丁,其安装解压都会额外占用data分区。本发明实施例中的数据空间指的就是data分区的空间。
计算过程中,对于已有的程序,可以计算写入补丁后需要占用数据空间的大小,减去写入补丁前已经占用数据空间的大小,就可以获取到额外增加的数据空间;对于待增加升级文件,可以计算安装后所需占用的数据空间。进而,已有的程序写入补丁后额外增加的数据空间、加上待增加升级文件安装后所需占用的数据空间,可以获得本次升级需要额外增加占用的数据空间,另外,再减去待删除升级文件删除后可以释放的数据空间,就可以得到本次升级后所需占用的额外数据空间总量。
S103、判断当前数据空间的剩余空间是否大于或等于本次升级后所需占用的额外数据空间,若是,采用上述解压升级文件包进行系统升级。
即升级之前预升级校验,该预升级校验过程中会预判一下本次升级会额外占用的数据空间,并确定当前剩余空间是否满足,如果满足再进行升级。
可选地,预升级校验过程中还可以校验上述多个升级文件是否与当前系统匹配,如果不匹配则校验失败,记录该升级版本,并向服务器上报不匹配的文件信息,以便服务器分析失败的具体原因;如果匹配成功则继续升级过程。
本实施例中,解压系统升级文件包,获取多个升级文件,根据上述多个升级文件统计本次升级后所需占用的额外数据空间,判断当前数据空间的剩余空间是否大于或等于本次升级后所需占用的额外数据空间,若是,则采用上述解压升级文件包进行系统升级,这样可以在保证当前数据空间的剩余空间可以负担升级后额外增加的数据空间时再进行升级,避免了再升级过程中发现空间不足导致的升级失败,以实现升级可以一次完成,提高了升级效率。
进一步地,若上述当前数据空间的剩余空间小于本次升级后所需占用的额外数据空间,则暂时不进行升级,还可以生成空间清理提示信息。
该空间清理提示信息可以发送或显示给用户,例如上述智能设备是智能手机、平板电脑等,可以直接通过显示屏显示给用户,如果上述智能设备是智能家居等,可以向所关联的用户设备,像手机等推送空间清理提示信息,在此不作限制。以便于用户可以根据空间清理提示信息进行数据空间清理。
可选地,上述空间清理提示信息中可以包括:本次升级后所需占用的额外数据空间,以及当前数据空间的剩余空间。更进一步地,空间清理提示信息中还可以包括:当前智能设备中可以清理的数据,在此不作限制。
上述根据上述多个升级文件统计本次升级后所需占用的额外数据空间,可以为:计算上述多个升级文件中,差分升级补丁文件写入对应的程序后额外增加的数据空间、待增加升级文件所需占用的数据空间、以及待删除升级文件所释放的数据空间;根据上述差分升级补丁文件写入对应的程序后额外增加的数据空间、待增加升级文件所需占用的数据空间、以及待删除升级文件所释放的数据空间统计本次升级后所需占用的额外数据空间。
该待增加升级文件即为本次升级新增的应用或程序的安装文件。
具体实现过程中,智能设备解压系统升级文件包,获取多个升级文件后,依次遍历每个升级文件,对于其中差分升级patch文件,会校验是否与当前系统匹配,并计算会额外增加的数据空间。其中,某个已有程序额外增加的数据空间为:写入补丁后程序的所占用数据空间的大小减去写入补丁前已经占用数据空间的大小,所得到的差值。另外,校验是否与当前系统匹配,可以是校验当前系统中对应的文件中哈希值是否符合预期要求,如果不相符,则校验失败,如果相符则校验通过,其中,应用或程序升级前后的哈希值不同,需要预估一下patch文件写入后、即升级后应用或程序的哈希值,并判断这个哈希值是否符合预期要求;
对于其中待增加升级文件,计算所需占用的数据空间。具体地,其中系统可执行文件、系统级动态库、资源文件不会额外占用数据空间,这些内容一般都直接在system分区中更新;而应用文件由于会被安装及加压,可能会额外占用数据空间,具体某个应用文件所需占用的数据空间大小由于不同平台的实现机制会有不同,可以采用对应的现有计算方法,在此不作限制。举例说明,在安卓系统中,新增应用在数据空间所占的额外数据空间包括:优化过的字节码文件大小+应用中动态库的大小;
对于其中待删除升级文件,计算所会释放的额外数据空间。与待增加升级文件类似,其具体计算方法在此也不作限制。举例说明,在安卓系统中,被删除的应用所额外释放的数据空间包括:优化过的字节码文件大小+应用中动态库的大小+不定量的用户数据。
智能设备遍历完所有升级文件后,统计本次升级后所需占用的数据空间,并与当前数据空间的剩余空间进行对比,看是否可以正常完成升级。
较优地,当前数据空间的剩余空间比本次升级后所需占用的数据空间大预设值,即升级完成后,数据空间还有一定剩余。
具体实现过程中,智能设备遍历所有升级文件时,计算上述多个升级文件中,差分升级补丁文件写入对应的程序后额外增加的数据空间、待增加升级文件所需占用的数据空间、以及待删除升级文件所释放的数据空间为:依次将每个升级文件在预设缓存中进行加载,计算获取多个升级文件中每个差分升级补丁文件写入对应的程序后额外增加的数据空间、每个待增加升级文件所需占用的数据空间、以及每个待删除升级文件所释放的数据空间。
即在智能设备中找一块缓存空间预演每个升级文件的实际升级过程,加载完成后就可以得到patch文件写入程序后额外增加的数据空间、待增加升级文件所需占用的数据空间、以及每个待删除升级文件所释放的数据空间,具体计算方法不作限制,例如可以采用前述安卓系统中的计算方法。进行升级预演的缓存不需要太大,每个升级文件在其中依次进行加载,每加载完成一个,记录完所需占用或释放的数据空间,就会清空该升级文件的数据,然后再预演下一个升级文件。
图2为本发明提供的云电视系统的升级方法实施例二的流程示意图,如图2所示,在上述实施例的基础上,整个升级过程的流程包括:
S201、下载获取系统升级文件包,并对该系统升级文件包进行完整性校验。若完整性校验通过,则执行S202,否则不进行升级。
即检查一下系统升级文件包是否完整。
S202、解压系统升级文件包,获取多个升级文件。
S203、启动预升级校验。
即执行前述方法实施例,根据上述多个升级文件统计本次升级后所需占用的额外数据空间,以及校验上述多个升级文件是否与当前系统匹配等。并比较当前数据空间的剩余空间与本次升级后所需占用的数据空间,看是否满足升级条件。
如果当前数据空间的剩余空间与本次升级后所需占用的数据空间满足升级条件,则执行S204-S206。如果上述多个升级文件中有与当前系统不匹配的文件,则执行S207-S208。
S204、重启系统进入恢复(recorery)模式。
S205、升级校验。即正式升级前的再次校验。
这里有很多种方式进入系统正式升级,例如组合键直接升级U盘中的升级包等,在此不作限制。
S206、启动系统升级。完成升级后可以删除系统升级文件包,以节约空间。
S207、记录升级版本。
S208、清除升级状态。
如果校验过程中,出现校验问题,即多个升级文件中有与当前系统不匹配的文件,则会记录该升级版本,并将具体的问题上报到服务器,并且清除该升级状态,后续使用过程中,如果检测到升级信息,且该升级信息是之前校验出问题的升级版本,则忽略,直到检测到新的升级版本后再进入升级。
图3为本发明提供的云电视系统的升级装置实施例一的结构示意图,该装置可以集成于云电视中,但并不以此为限,也可以是其它智能设备,例如:智能手机、平板电脑、笔记本、智能电视、智能家居等。该装置包括:获取模块301、统计模块302和判断模块303。
其中,获取模块301,用于解压系统升级文件包,获取多个升级文件。
统计模块302,用于根据所述多个升级文件统计本次升级后所需占用的额外数据空间,其中,所述额外数据空间为除当前系统所占用空间外的数据空间。
判断模块303,用于判断当前数据空间的剩余空间是否大于或等于所述本次升级后所需占用的额外数据空间,若是,采用所述解压升级文件包进行系统升级。
本实施例中,解压系统升级文件包,获取多个升级文件,根据上述多个升级文件统计本次升级后所需占用的额外数据空间,判断当前数据空间的剩余空间是否大于或等于本次升级后所需占用的额外数据空间,若是,则采用上述解压升级文件包进行系统升级,这样可以在保证当前数据空间的剩余空间可以负担升级后额外增加的数据空间时再进行升级,避免了再升级过程中发现空间不足导致的升级失败,以实现升级可以一次完成,提高了升级效率。
图4为本发明提供的云电视系统的升级装置实施例二的结构示意图,在图3的基础上,该装置还可以包括:生成模块401,用于在所述当前数据空间的剩余空间小于所述本次升级后所需占用的额外数据空间时,生成空间清理提示信息。
进一步地,所述多个升级文件包括:差分升级补丁文件、待增加升级文件、待删除升级文件。
图5为本发明提供的云电视系统的升级装置实施例三的结构示意图,在图3的基础上,上述统计模块302,包括:计算单元501和统计单元502,其中,
计算单元501,用于计算所述多个升级文件中所述差分升级补丁文件写入对应的程序后额外增加的数据空间、所述待增加升级文件所需占用的数据空间、以及所述待删除升级文件所释放的数据空间。
统计单元502,用于根据所述差分升级补丁文件写入对应的程序后额外增加的数据空间、所述待增加升级文件所需占用的数据空间、以及所述待删除升级文件所释放的数据空间,统计本次升级后所需占用的额外数据空间。
可选地,计算单元501具体用于依次将每个所述升级文件在预设缓存中进行加载,计算获取所述多个升级文件中每个所述差分升级补丁文件写入对应的程序后额外增加的数据空间、每个所述待增加升级文件所需占用的数据空间、以及每个所述待删除升级文件所释放的数据空间。
该装置用于执行前述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-OnlyMemory,简称:ROM)、随机存取存储器(英文:RandomAccessMemory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。