CN108959122A - 一种升级包下载的保存方法、装置和终端 - Google Patents

一种升级包下载的保存方法、装置和终端 Download PDF

Info

Publication number
CN108959122A
CN108959122A CN201710348451.8A CN201710348451A CN108959122A CN 108959122 A CN108959122 A CN 108959122A CN 201710348451 A CN201710348451 A CN 201710348451A CN 108959122 A CN108959122 A CN 108959122A
Authority
CN
China
Prior art keywords
subregion
upgrade package
memory
size
downloading
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.)
Pending
Application number
CN201710348451.8A
Other languages
English (en)
Inventor
李晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201710348451.8A priority Critical patent/CN108959122A/zh
Publication of CN108959122A publication Critical patent/CN108959122A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种升级包下载的保存方法、装置和终端,所述方法包括:从服务器获取升级包信息,并检测终端的存储信息;根据所述升级包信息及所述终端的存储信息,确定所述升级包下载的保存策略;根据确定的保存策略,控制所述升级包下载及保存。

Description

一种升级包下载的保存方法、装置和终端
技术领域
本发明涉及下载保存技术,具体涉及一种升级包下载的保存方法、装置和终端。
背景技术
目前,移动终端如手机功能强大,所以,移动终端的操作系统(OS,OperatingSystem)升级换代频繁,主流的移动终端OS如Android、IOS,至少一年更新一次,甚至有的移动终端OS每周都更新,这就使得移动终端的空中下载软件升级(FOTA,Firmware Over-The-Air)技术得到普遍的使用。
通常,FOTA升级需要在移动终端预留一个足够的下载存储空间,以确保移动终端的FOTA升级总能成功。虽然移动终端OS的升级一般都是采用差分包升级方式,即:只下载并升级OS中有更新的部分;但是,由于OS升级包的大小不断膨胀,升级包需要预留的存储空间也在不断增加,这样,就会出现因为预留的存储空间不够而导致升级失败的情况。
目前的移动终端一般将自身的存储器(ROM,Read-Only Memory)分为缓冲(Cache)分区和数据(Data)分区,如图1所示,其中的Cache分区是用于存储系统运行的临时文件,也用于FOTA升级中的升级包存储;随着OS升级包的大小不断膨胀,Cache分区的大小也大幅增加,如有的移动终端中已设置有1.4GB的Cache分区;但是,因为Cache分区除了存储系统的临时文件和FOTA升级的升级包,其它的应用无法使用,这样就带来一个问题,如果Cache分区设置的比较小,可能无法满足FOTA升级的需要,如果设置的比较大,可能存在较大的浪费,并且用户的可用存储空间也会大大的缩小。
发明内容
为解决现有存在的技术问题,本发明实施例期望提供一种升级包下载的保存方法、装置和终端,既能满足FOTA升级的需要,也能更好地利用终端的存储器空间,提升存储空间的使用效率。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种升级包下载的保存方法,所述方法包括:
从服务器获取升级包信息,并检测终端的存储信息;
根据所述升级包信息及所述终端的存储信息,确定所述升级包下载的保存策略;
根据确定的保存策略,控制所述升级包下载及保存。
优选地,所述根据所述升级包信息及所述终端的存储信息,确定所述升级包下载的保存策略,包括:
所述终端的可用存储空间小于或等于所述升级包的大小,终止升级进程;
所述终端的可用存储空间大于所述升级包的大小,根据所述终端的存储器中各分区的可用存储空间,确定所述升级包下载的保存策略。
优选地,所述根据所述终端的存储器中各分区的可用存储空间,确定所述升级包下载的保存策略,包括:
所述存储器的第一分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第一分区;
所述第一分区的可用存储空间小于或等于所述升级包的大小,且所述存储器的第二分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第二分区;
所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小,将所述升级包进行分割,并分别保存到所述第一分区和第二分区。
优选地,所述将所述升级包进行分割,并分别保存到所述第一分区和第二分区,包括:
根据所述第一分区中可用存储空间的大小,分割所述升级包,并将分割后的升级包分别保存到所述第一分区和第二分区。
优选地,所述根据确定的保存策略,控制所述升级包下载及保存,包括:
将所述升级包下载的地址设定为存储器的第一分区,保存下载的升级包;
在下载过程中,实时获取累计下载量的大小;
在所述第一分区的可用存储空间小于或等于所述累计下载量时,暂停下载进程,将所述升级包下载的地址修改为存储器的第二分区,继续保存下载的升级包。
本发明实施例还提供了一种升级包下载的保存装置,所述装置包括获取模块、确定模块和保存模块;其中,
所述获取模块,用于从服务器获取升级包信息,并检测终端的存储信息;
所述确定模块,用于根据所述升级包信息及所述终端的存储信息,确定所述升级包下载的保存策略;
所述保存模块,用于根据确定的保存策略,控制所述升级包下载及保存。
优选地,所述确定模块具体用于:
所述终端的可用存储空间小于或等于所述升级包的大小,终止升级进程;
所述终端的可用存储空间大于所述升级包的大小,根据所述终端的存储器中各分区的可用存储空间,确定所述升级包下载的保存策略。
优选地,所述确定模块还用于:
所述存储器的第一分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第一分区;
所述第一分区的可用存储空间小于或等于所述升级包的大小,且所述存储器的第二分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第二分区;
所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小,将所述升级包进行分割,并分别保存到所述第一分区和第二分区。
优选地,所述确定模块还用于:
在所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小时,根据所述第一分区中可用存储空间的大小,分割所述升级包,并将分割后的升级包分别保存到所述第一分区和第二分区。
优选地,所述保存模块具体用于:
将所述升级包下载的地址设定为存储器的第一分区,保存下载的升级包;
在下载过程中,实时获取累计下载量的大小;
在所述第一分区的可用存储空间小于或等于所述累计下载量时,暂停下载进程,将所述升级包下载的地址修改为存储器的第二分区,继续保存下载的升级包。
本发明实施例还提供了一种终端,所述终端包括处理器和存储器;其中,
所述处理器,用于根据从服务器获取的升级包信息和从所述存储器获取的存储信息,确定所述升级包下载的保存策略,并根据确定的保存策略,控制所述升级包下载及保存;
所述存储器,用于根据所述处理器的控制,控制所述升级包下载及保存。
优选地,所述处理器具体用于:
所述存储器的可用存储空间小于或等于所述升级包的大小,终止升级进程;
所述存储器的可用存储空间大于所述升级包的大小,根据所述存储器中各分区的可用存储空间,确定所述升级包下载的保存策略。
优选地,所述处理器还用于:
所述存储器的第一分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第一分区;
所述第一分区的可用存储空间小于或等于所述升级包的大小,且所述存储器的第二分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第二分区;
所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小,将所述升级包进行分割,并分别保存到所述第一分区和第二分区。
优选地,所述处理器还用于:
在所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小时,根据所述第一分区中可用存储空间的大小,分割所述升级包,并将分割后的升级包分别保存到所述第一分区和第二分区。
优选地,所述处理器还用于:
将所述升级包下载的地址设定为所述存储器的第一分区,保存下载的升级包;
在下载过程中,实时获取累计下载量的大小;
在所述第一分区的可用存储空间小于或等于所述累计下载量时,暂停下载进程,将所述升级包下载的地址修改为所述存储器的第二分区,继续保存下载的升级包。
本发明实施例所提供的升级包下载的保存方法、装置和终端,从服务器获取升级包信息,并检测终端的存储信息;根据所述升级包信息及所述终端的存储信息,确定所述升级包下载的保存策略;根据确定的保存策略,控制所述升级包下载并保存;可见,本发明实施例根据升级包信息及终端的存储信息,确定升级包下载的保存策略,能灵活的确定下载包的保存区域,不必设置较大的Cache分区,既能满足FOTA升级的需要,也能更好地利用终端的存储器空间,进而大大提升存储空间的使用效率。
附图说明
图1为现有技术中终端存储器的分区示意图;
图2为本发明实施例一升级包下载的保存方法的实现流程示意图;
图3为本发明实施例二升级包下载的保存方法的详细流程示意图;
图4为本发明实施例三升级包下载的保存装置的结构组成示意图;
图5为本发明实施例四实现升级包下载及保存的终端结构组成示意图;
图6为本发明实施例五手机下载操作系统差分包的保存过程示意图。
具体实施方式
为了能够更详尽的了解本发明的特点与技术内容,下面将结合附图对本发明的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
实施例一
图2为本发明实施例一升级包下载的保存方法的实现流程示意图,本发明实施例中,需要下载升级包的主体是终端,提供升级包的是服务器,所述方法可以由终端实现,具体可以由终端中的CPU、或可编程逻辑芯片、或集成电路芯片等实现;如图2所示,所述方法包括:
步骤101:从服务器获取升级包信息,并检测终端的存储信息;
这里,升级包可以是完整包,也可以是差分包;
差分包在线升级是一种云端服务,终端内的操作系统根据检测服务端和终端如手机系统的版本号来判断是否有最新升级,如果有升级则采用差分升级的处理,所谓差分升级就是只升级差异部分,从而减少了升级带来的流量。差分升级的好处一是无缝升级,对终端的使用没有任何影响;二是方便快捷,不需要用户专门到服务中心;三是升级速度快,只升级差异部分不会带来多余的流量,同时升级速度还很快。
具体地,可以是终端的CPU指令终端访问服务器,从服务器获取升级包信息;
更具体地,是通过升级包中的元数据(Meta data)获取升级包信息;所述元数据是描述其它数据的数据(data about other data),或者说是用于提供某种资源的有关信息的结构数据(structured data)。元数据是描述信息资源或数据等对象的数据,其使用目的在于:识别资源;评价资源;追踪资源在使用过程中的变化;实现简单高效地管理大量网络化数据;实现信息资源的有效发现、查找、一体化组织和对使用资源的有效管理。
简单的说,所述元数据会包含所述升级包的大小、存储位置、数据性质等内容,而本发明实施例中,终端从服务器获取升级包信息,主要是获取升级包的大小。
这里,存储信息主要是指终端中存储器的可用存储空间,包括各个分区的可用存储空间;由于终端中存储器的可用存储空间一直是变动的,因此终端在下载升级包之前,还需要检测最新的终端中存储器的可用存储空间情况;
其中,存储器的分区主要包括Cache分区和Data分区,其它的分区一般容量比较小,而且一般用户没有操作和使用的权限,不作为本发明实施例的研究对象;因此,这里存储器的可用存储空间的大小是指Cache分区和Data分区各自可用存储空间之和。
步骤102:根据所述升级包信息及所述终端的存储信息,确定所述升级包下载的保存策略;
具体地,首先,所述终端中存储器的可用存储空间的大小需要大于升级包的大小,才能继续下载及升级的处理,因此,在所述终端的可用存储空间小于或等于所述升级包的大小时,终止升级进程;
其次,在所述终端中存储器的可用存储空间大于所述升级包的大小时,再进一步根据所述终端中存储器中各分区的可用存储空间,确定所述升级包下载的保存策略;
这里,比较存储器的可用存储空间和所述升级包的大小,还要考虑到下载完成后的升级包在安装过程中可能会产生一些临时文件,也会占用一定的存储空间,还有下载后的升级包中的文件在终端存储器上占用的空间,也并非和自身大小完全一致,所以实际上还会把升级包的大小加上一个修正值与所述存储器的可用存储空间比较;
所述修正值的大小一般与升级包的文件结构、安装的解压方式、存储器的结构有关,在此不作详述。
进一步地,所述根据所述存储器各分区的可用存储空间,确定所述升级包下载的保存策略,包括:
所述存储器的第一分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第一分区;
所述第一分区的可用存储空间小于或等于所述升级包的大小,且所述存储器的第二分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第二分区;
所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小,将所述升级包进行分割,并分别保存到所述第一分区和第二分区;
这里,所述第一分区可以是Cache分区,第二分区可以是Data分区。
这里,终端根据所述第一分区中可用存储空间的大小,分割所述升级包,并将分割后的升级包分别保存到所述第一分区和第二分区;具体地,根据所述第一分区中可用存储空间的大小,分割所述升级包,例如所述升级包的大小为1.5GB,第一分区为1GB,则将所述升级包分割为1GB和0.5GB两个,将1GB下载到第一分区,将0.5GB下载到第二分区;
当然,上述分割方法只是理论上的,实际应用中,所述第一分区中可用存储空间的大小会减去一个修正值,再作为所述分割所述升级包的依据,采用所述修正值的原理同上述的修正值,在此不作赘述。
另外,下载中的数据一般以数据块(chunk)的形式存在,为了保证升级成功,数据块一般不能被分割,即分割的最小单位为数据块,所以本步骤的修正值还要额外考虑数据块的大小,此处不作详述。
步骤103:根据确定的保存策略,控制所述升级包下载及保存。
具体地,终端将所述升级包下载的地址设定为所述第一分区,保存下载的升级包;
在下载过程中,实时获取累计下载量的大小;
在所述第一分区的可用存储空间小于或等于所述累计下载量时,暂停下载进程,将所述升级包下载的地址修改为所述第二分区,继续保存下载的升级包;
具体地,从服务器下载的数据可以使用分块传输编码(Chunked transferencoding),数据分解成一系列数据块,并以一个或多个数据块发送,这样服务器可以在不知道发送内容的总大小的情况下,先发送数据块,如果需要压缩,也不需整个压缩,而是各个数据块分别压缩;这样可以提高传输效率。
实际应用中,所述第一分区的可用存储空间需要减去一个修正值,再与所述累计下载量比较,采用所述修正值的原理同步骤102中的修正值,在此不作详述;
另外,因为获取的累计下载量可能会有一定的滞后,所以所述修正值的大小还需考虑下载速度,在此不作详述。
实施例二
图3为本发明实施例二升级包下载的保存方法的详细流程示意图,如图3所示,所述方法包括:
步骤301:触发下载;
这里,触发下载的因素可以是网络端,即服务器端的提醒,也可以是终端定时自动发起或用户直接发起;
步骤302:确认升级是否可行;
这里,确认可以包括:确认终端存储空间是否足够,终端与服务器之间的下载速度是否足够,服务器是否有足够的用于下载的系统资源等等;
步骤303:获取升级包中的元数据;
这里,通过升级包中的元数据,获得升级包的相关信息,如升级包的大小。
步骤304:判断升级包的大小是否小于Cache分区的可用存储空间;
具体的,如果升级包的大小小于Cache分区的可用存储空间,将升级包下载到Cache分区,结束本次处理流程;
如果升级包的大小大于或等于Cache分区的可用存储空间,进入步骤305。
步骤305:判断升级包的大小是否小于Data分区的可用存储空间;
具体的,如果升级包的大小小于Data分区的可用存储空间,将升级包下载到Data分区,结束本次处理流程;
如果升级包的大小大于或等于Data分区的可用存储空间,进入步骤306。
步骤306:判断升级包的大小是否小于Cache分区和Data分区的可用存储空间之和;
具体的,如果升级包的大小大于或等于Cache分区和Data分区的可用存储空间之和,终止升级进程,结束本次处理流程;
如升级包的大小小于Cache分区和Data分区的可用存储空间之和,进入步骤307。
步骤307:开启下载进程;
先将下载地址指向Cache分区,将升级包下载到Cache分区。
步骤308:判断是否继续下载;
具体地,实时获取累计下载量的大小,如果所述累计下载量小于Cache分区的可用存储空间减去修正值,继续下载;如果所述累计下载量大于或等于Cache分区的可用存储空间减去修正值,进入步骤309。
步骤309:暂停下载进程;
向服务器发送213–Chunked item accepted and buffered,暂停下载;这里,所述213–Chunked item accepted and buffered是一个暂停下载的指令,213是指令代码。
步骤310:将下载地址指向Data分区;
将升级包的目标存储地址从Cache分区指向Data分区。
步骤311:向服务器告知可以继续下载;
向服务器发送Alert-1222,表示可以继续下载,Alert-1222是恢复下载进程的指令,1222为指令代码。
步骤312:继续下载进程,将剩余的升级包下载到Data分区。
步骤313:判断是否完成下载,未收到最后的数据块(Chunk/Final element),继续下载;收到最后的数据块,完成下载。
实施例三
图4为本发明实施例三升级包下载的保存装置的结构组成示意图,如图4所示,所述装置包括获取模块41、确定模块42和保存模块43;其中,
所述获取模块41,用于从服务器获取升级包信息,并检测终端的存储信息;
所述确定模块42,用于根据所述升级包信息及所述终端的存储信息,确定所述升级包下载的保存策略;
所述保存模块43,用于根据确定的保存策略,控制所述升级包下载及保存。
为了说明的更清楚,下面将分别对各个模块作详细说明:
所述获取模块41,用于从服务器获取升级包信息,并检测终端的存储信息;
具体地,所述获取模块41指令终端访问服务器,从服务器获取升级包信息;
更具体地,是通过升级包中的元数据获取升级包信息;
本发明实施例中,所述获取模块41从服务器获取升级包信息,主要是获取升级包的大小。
进一步地,由于终端中存储器的可用存储空间一直是变动的,所述获取模块41在下载升级包之前,还需要检测最新的终端中存储器的可用存储空间情况。
所述确定模块42,用于根据所述升级包信息及所述终端的存储信息,确定所述升级包下载的保存策略;
具体地,首先,所述终端中存储器的可用存储空间的大小需要大于升级包的大小,才能继续下载及升级的处理,因此,所述确定模块42在所述终端的可用存储空间小于或等于所述升级包的大小时,终止升级进程;
其次,在所述终端中存储器的可用存储空间大于所述升级包的大小时,再进一步根据所述终端中存储器中各分区的可用存储空间,确定所述升级包下载的保存策略;
进一步地,所述确定模块42根据所述存储器各分区的可用存储空间,确定所述升级包下载的保存策略,包括:
所述存储器的第一分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第一分区;
所述第一分区的可用存储空间小于或等于所述升级包的大小,且所述存储器的第二分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第二分区;
所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小,将所述升级包进行分割,并分别保存到所述第一分区和第二分区。
这里,所述确定模块42根据所述第一分区中可用存储空间的大小,分割所述升级包,并将分割后的升级包分别保存到所述第一分区和第二分区;具体地,根据所述第一分区中可用存储空间的大小,分割所述升级包,例如所述升级包的大小为1.5GB,第一分区为1GB,则将所述升级包分割为1GB和0.5GB两个,将1GB下载到第一分区,将0.5GB下载到第二分区。
所述保存模块43,用于根据确定的保存策略,控制所述升级包下载及保存。
具体地,所述保存模块43将所述升级包下载的地址设定为所述第一分区,保存下载的升级包;
在下载过程中,实时获取累计下载量的大小;
在所述第一分区的可用存储空间小于或等于所述累计下载量时,暂停下载进程,将所述升级包下载的地址修改为所述第二分区,继续保存下载的升级包。
本发明实施例中,所述获取模块41、确定模块42和保存模块43均可由位于终端的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)等实现。
实施例四
图5本发明实施例四实现升级包下载及保存的终端结构组成示意图,如图5所示,所述终端包括处理器51和存储器52;其中,
所述处理器51,用于根据从服务器获取的升级包信息和从所述存储器52获取的存储信息,确定所述升级包下载的保存策略,并根据确定的保存策略,控制所述升级包下载及保存;
所述存储器52,用于根据所述处理器51的控制,控制所述升级包下载及保存。
所述处理器51包括两部分主要功能,第一部分功能是用于根据从服务器获取的升级包信息和从所述存储器52获取的存储信息,确定所述升级包下载的保存策略;
所述处理器51在确定所述升级包下载的保存策略之前,需要先从服务器获取升级包信息和从存储器52获取存储信息;
具体地,获取升级包信息可以是所述处理器51控制终端的通讯模块完成;获取存储信息可以是所述处理器51检测所述存储器52,获得最新的存储信息;
更具体地,可以是所述处理器51控制终端的通讯模块通过升级包中的元数据获取升级包信息。
所述处理器51确定所述升级包下载的保存策略包括:所述存储器52的可用存储空间小于或等于所述升级包的大小时,所述处理器51终止升级进程;
所述存储器52的可用存储空间大于所述升级包的大小时,所述处理器51根据所述存储器52中各分区的可用存储空间,确定所述升级包下载的保存策略。
具体地,所述处理器51根据所述存储器52中各分区的可用存储空间,确定所述升级包下载的保存策略包括:
所述存储器52的第一分区的可用存储空间大于所述升级包的大小,所述处理器51将所述升级包保存到所述第一分区;
所述第一分区的可用存储空间小于或等于所述升级包的大小,且所述存储器52的第二分区的可用存储空间大于所述升级包的大小,所述处理器51将所述升级包保存到所述第二分区;
所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小,所述处理器51将所述升级包进行分割,并分别保存到所述第一分区和第二分区。
进一步地,所述处理器51将所述升级包进行分割包括:根据所述第一分区中可用存储空间的大小,分割所述升级包,并将分割后的升级包分别保存到所述第一分区和第二分区。
所述处理器51的第二部分功能是用于根据确定的保存策略,控制所述升级包下载及保存;
具体地,所述处理器51根据确定的保存策略,将所述升级包下载的地址设定为所述存储器52的第一分区,保存下载的升级包;
在下载过程中,所述处理器51实时获取累计下载量的大小;
在所述第一分区的可用存储空间小于或等于所述累计下载量时,暂停下载进程,所述处理器51将所述升级包下载的地址修改为所述存储器52的第二分区,继续保存下载的升级包。
实施例五
图6为本发明实施例五手机下载操作系统差分包的保存过程示意图,如图6所示,所述手机下载操作系统差分包的保存过程包括:
步骤601:手机访问服务器,服务器鉴权,手机从子节点(subsets)获取差分包信息;
步骤602:手机从服务器获取差分包的大小(size attribute),具体是通过元数据(Meta data);
步骤603:手机比较获取的差分包与Cache分区和Data分区的可用存储空间的大小,结果是所述Cache分区和Data分区的可用存储空间均小于或等于所述升级包的大小,且所述Cache分区和Data分区的可用存储空间之和大于所述升级包的大小。
步骤604:手机选择将所述升级包进行分割,并分别保存到所述Cache分区和Data分区;
步骤605:手机将下载地址设定为Cache分区,并向服务器申请下载;
步骤606:手机从服务器下载差分包中的数据块(chunk);
步骤607:手机确认下一个chunk能否保存到Cache可用空间;
步骤608:当Cache分区的剩余空间不足以保存下一个数据块,手机向服务器发送213–Chunked item accepted and buffered给服务器,暂停下载;
步骤609:手机将下载地址更改为Data分区;
步骤610:手机向服务器发送Alert-1222,恢复下载进程;Alert-1222是恢复下载进程的指令,1222是指令代码;
步骤611:手机继续从服务器下载差分包中的数据块;
步骤612:手机从服务器收到最后的数据块,下载完成。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (15)

1.一种升级包下载的保存方法,其特征在于,所述方法包括:
从服务器获取升级包信息,并检测终端的存储信息;
根据所述升级包信息及所述终端的存储信息,确定所述升级包下载的保存策略;
根据确定的保存策略,控制所述升级包下载及保存。
2.根据权利要求1所述的方法,其特征在于,所述根据所述升级包信息及所述终端的存储信息,确定所述升级包下载的保存策略,包括:
所述终端的可用存储空间小于或等于所述升级包的大小,终止升级进程;
所述终端的可用存储空间大于所述升级包的大小,根据所述终端的存储器中各分区的可用存储空间,确定所述升级包下载的保存策略。
3.根据权利要求2所述的方法,其特征在于,所述根据所述终端的存储器中各分区的可用存储空间,确定所述升级包下载的保存策略,包括:
所述存储器的第一分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第一分区;
所述第一分区的可用存储空间小于或等于所述升级包的大小,且所述存储器的第二分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第二分区;
所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小,将所述升级包进行分割,并分别保存到所述第一分区和第二分区。
4.根据权利要求3所述的方法,其特征在于,所述将所述升级包进行分割,并分别保存到所述第一分区和第二分区,包括:
根据所述第一分区中可用存储空间的大小,分割所述升级包,并将分割后的升级包分别保存到所述第一分区和第二分区。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据确定的保存策略,控制所述升级包下载及保存,包括:
将所述升级包下载的地址设定为存储器的第一分区,保存下载的升级包;
在下载过程中,实时获取累计下载量的大小;
在所述第一分区的可用存储空间小于或等于所述累计下载量时,暂停下载进程,将所述升级包下载的地址修改为存储器的第二分区,继续保存下载的升级包。
6.一种升级包下载的保存装置,其特征在于,所述装置包括获取模块、确定模块和保存模块;其中,
所述获取模块,用于从服务器获取升级包信息,并检测终端的存储信息;
所述确定模块,用于根据所述升级包信息及所述终端的存储信息,确定所述升级包下载的保存策略;
所述保存模块,用于根据确定的保存策略,控制所述升级包下载及保存。
7.根据权利要求6所述的装置,其特征在于,所述确定模块具体用于:
所述终端的可用存储空间小于或等于所述升级包的大小,终止升级进程;
所述终端的可用存储空间大于所述升级包的大小,根据所述终端的存储器中各分区的可用存储空间,确定所述升级包下载的保存策略。
8.根据权利要求7所述的装置,其特征在于,所述确定模块还用于:
所述存储器的第一分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第一分区;
所述第一分区的可用存储空间小于或等于所述升级包的大小,且所述存储器的第二分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第二分区;
所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小,将所述升级包进行分割,并分别保存到所述第一分区和第二分区。
9.根据权利要求8所述的装置,其特征在于,所述确定模块还用于:
在所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小时,根据所述第一分区中可用存储空间的大小,分割所述升级包,并将分割后的升级包分别保存到所述第一分区和第二分区。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述保存模块具体用于:
将所述升级包下载的地址设定为存储器的第一分区,保存下载的升级包;
在下载过程中,实时获取累计下载量的大小;
在所述第一分区的可用存储空间小于或等于所述累计下载量时,暂停下载进程,将所述升级包下载的地址修改为存储器的第二分区,继续保存下载的升级包。
11.一种终端,其特征在于,所述终端包括处理器和存储器;其中,
所述处理器,用于根据从服务器获取的升级包信息和从所述存储器获取的存储信息,确定所述升级包下载的保存策略,并根据确定的保存策略,控制所述升级包下载及保存;
所述存储器,用于根据所述处理器的控制,控制所述升级包下载及保存。
12.根据权利要求11所述的终端,其特征在于,所述处理器具体用于:
所述存储器的可用存储空间小于或等于所述升级包的大小,终止升级进程;
所述存储器的可用存储空间大于所述升级包的大小,根据所述存储器中各分区的可用存储空间,确定所述升级包下载的保存策略。
13.根据权利要求12所述的终端,其特征在于,所述处理器还用于:
所述存储器的第一分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第一分区;
所述第一分区的可用存储空间小于或等于所述升级包的大小,且所述存储器的第二分区的可用存储空间大于所述升级包的大小,将所述升级包保存到所述第二分区;
所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小,将所述升级包进行分割,并分别保存到所述第一分区和第二分区。
14.根据权利要求13所述的终端,其特征在于,所述处理器还用于:
在所述第一分区和第二分区的可用存储空间均小于或等于所述升级包的大小,且所述第一分区和第二分区的可用存储空间之和大于所述升级包的大小时,根据所述第一分区中可用存储空间的大小,分割所述升级包,并将分割后的升级包分别保存到所述第一分区和第二分区。
15.根据权利要求11至14任一项所述的终端,其特征在于,所述处理器还用于:
将所述升级包下载的地址设定为所述存储器的第一分区,保存下载的升级包;
在下载过程中,实时获取累计下载量的大小;
在所述第一分区的可用存储空间小于或等于所述累计下载量时,暂停下载进程,将所述升级包下载的地址修改为所述存储器的第二分区,继续保存下载的升级包。
CN201710348451.8A 2017-05-17 2017-05-17 一种升级包下载的保存方法、装置和终端 Pending CN108959122A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710348451.8A CN108959122A (zh) 2017-05-17 2017-05-17 一种升级包下载的保存方法、装置和终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710348451.8A CN108959122A (zh) 2017-05-17 2017-05-17 一种升级包下载的保存方法、装置和终端

Publications (1)

Publication Number Publication Date
CN108959122A true CN108959122A (zh) 2018-12-07

Family

ID=64461300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710348451.8A Pending CN108959122A (zh) 2017-05-17 2017-05-17 一种升级包下载的保存方法、装置和终端

Country Status (1)

Country Link
CN (1) CN108959122A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110086885A (zh) * 2019-05-10 2019-08-02 上海擎感智能科技有限公司 空间下载技术的升级包下载方法及装置、存储介质和终端
CN110134418A (zh) * 2019-05-10 2019-08-16 上海擎感智能科技有限公司 基于空间下载技术的整车升级方法及装置、存储介质和终端
CN110716729A (zh) * 2019-09-26 2020-01-21 上海科世达-华阳汽车电器有限公司 一种汽车在线升级方法、系统、设备及可读存储介质
CN111124451A (zh) * 2019-12-24 2020-05-08 山东有人信息技术有限公司 一种分布式备份升级方法
CN111263354A (zh) * 2020-01-08 2020-06-09 苏宁智能终端有限公司 一种ota差分升级方法及装置
CN111580840A (zh) * 2020-03-27 2020-08-25 惠州市德赛西威汽车电子股份有限公司 一种基于分布式内存管理实现ecu更新的方法
WO2021098212A1 (zh) * 2019-11-18 2021-05-27 华为技术有限公司 软件升级方法、装置和系统
CN113507697A (zh) * 2021-06-30 2021-10-15 东风商用车有限公司 车辆ota升级检查方法、装置、设备及存储介质

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110086885A (zh) * 2019-05-10 2019-08-02 上海擎感智能科技有限公司 空间下载技术的升级包下载方法及装置、存储介质和终端
CN110134418A (zh) * 2019-05-10 2019-08-16 上海擎感智能科技有限公司 基于空间下载技术的整车升级方法及装置、存储介质和终端
CN110716729A (zh) * 2019-09-26 2020-01-21 上海科世达-华阳汽车电器有限公司 一种汽车在线升级方法、系统、设备及可读存储介质
CN110716729B (zh) * 2019-09-26 2023-12-29 上海科世达-华阳汽车电器有限公司 一种汽车在线升级方法、系统、设备及可读存储介质
WO2021098212A1 (zh) * 2019-11-18 2021-05-27 华为技术有限公司 软件升级方法、装置和系统
US11972247B2 (en) 2019-11-18 2024-04-30 Huawei Technologies Co., Ltd. Software upgrading method, apparatus, and system
CN111124451A (zh) * 2019-12-24 2020-05-08 山东有人信息技术有限公司 一种分布式备份升级方法
CN111263354A (zh) * 2020-01-08 2020-06-09 苏宁智能终端有限公司 一种ota差分升级方法及装置
CN111580840A (zh) * 2020-03-27 2020-08-25 惠州市德赛西威汽车电子股份有限公司 一种基于分布式内存管理实现ecu更新的方法
CN113507697A (zh) * 2021-06-30 2021-10-15 东风商用车有限公司 车辆ota升级检查方法、装置、设备及存储介质
CN113507697B (zh) * 2021-06-30 2022-07-05 东风商用车有限公司 车辆ota升级检查方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN108959122A (zh) 一种升级包下载的保存方法、装置和终端
CN108712454B (zh) 一种文件处理方法、装置及设备
CN105867947B (zh) 预置应用程序升级后的数据处理方法及装置
US9075693B2 (en) Methods for updating applications
CN109614226B (zh) 一种基于Kubernetes的有状态应用存储管理方法
CN108399094B (zh) 一种应用的部署方法、其部署装置及边缘数据中心
US10965732B2 (en) Streaming zip
CN105763602A (zh) 一种数据请求处理的方法、服务器及系统
JP6789234B2 (ja) データ伝送方法、データ伝送装置、プロセッサ、及び移動端末
CN105446772B (zh) 一种系统升级的方法和装置
US9405697B2 (en) Memory management method and apparatus
CN108888951A (zh) 游戏资源处理方法和装置
CN111078241B (zh) Ota升级方法和装置
CN106970816B (zh) 一种软件升级处理方法、装置及音频播放设备
CN110196836A (zh) 一种数据存储方法及装置
CN106959893A (zh) 加速器、用于加速器的内存管理方法以及数据处理系统
CN104657378A (zh) 一种文件缓存方法及装置
CN106325896B (zh) 安装包的共享函数库文件处理方法及装置
KR101246360B1 (ko) 메모리 및 임시 메모리를 이용한 패치 방법 및 그를 이용한 패치 서버, 패치 클라이언트
CN106657182B (zh) 云端文件处理方法和装置
CN109831476A (zh) 安装包下载方法、装置、电子设备及存储介质
CN104978278B (zh) 数据处理方法和装置
US20230376600A1 (en) Method and system for upgrading firmware of vehicle infotainment system
CN110837381B (zh) 投影设备的软件升级方法及装置
EP2680135B1 (en) Methods for updating applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181207