CN113094077B - 一种***差分升级方法、装置、智能终端及存储介质 - Google Patents

一种***差分升级方法、装置、智能终端及存储介质 Download PDF

Info

Publication number
CN113094077B
CN113094077B CN201911338531.0A CN201911338531A CN113094077B CN 113094077 B CN113094077 B CN 113094077B CN 201911338531 A CN201911338531 A CN 201911338531A CN 113094077 B CN113094077 B CN 113094077B
Authority
CN
China
Prior art keywords
data
package
version
file
differential
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.)
Active
Application number
CN201911338531.0A
Other languages
English (en)
Other versions
CN113094077A (zh
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.)
Shenzhen TCL Digital Technology Co Ltd
Original Assignee
Shenzhen TCL Digital Technology Co Ltd
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 Shenzhen TCL Digital Technology Co Ltd filed Critical Shenzhen TCL Digital Technology Co Ltd
Priority to CN201911338531.0A priority Critical patent/CN113094077B/zh
Publication of CN113094077A publication Critical patent/CN113094077A/zh
Application granted granted Critical
Publication of CN113094077B publication Critical patent/CN113094077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

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

Abstract

本发明公开了一种***差分升级方法、装置、智能终端及存储介质,所述方法包括:根据待升级***的原始版本与目标版本获取差分升级包;将所述差分升级包按照内存大小由小到大进行排序,得到差分升级包序列,所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量;根据所述差分升级包序列依次对所述待升级***进行升级。本发明可以确保不会出现使得***分区中的可用内存空间不足的情况,保证***升级的安全性。

Description

一种***差分升级方法、装置、智能终端及存储介质
技术领域
本发明涉及***升级技术领域,尤其涉及的是一种***差分升级方法、装置、智能终端及存储介质。
背景技术
差分升级的技术在Android***升级时可以说是很有必要和很实用,可大幅减少更新包的大小,减少用户更新的流量和等待时间。现有的***差分升级主要是通过对有差异的文件通过打补丁的方式对该文件进行升级,且查分升级方法中默认按文件名排序对差异文件依次升级。
而由于现有的Android***内置的应用较多,***分区接近临界值,现有技术在对***进行升级是需要将***分区中的所有文件数据进行替换,不但流程复杂,且常常因***分区中的可用空间不足而导致***升级失败的问题。
因此,现有技术还有待改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种***差分升级方法、装置、智能终端及存储介质,旨在解决现有技术的***差分升级方法中容易出现因***分区中的可用空间不足而导致***升级失败的问题的问题。
本发明解决问题所采用的技术方案如下:
第一方面,本发明实施例提供一种一种***差分升级方法,其中,所述方法包括:
根据待升级***的原始版本与目标版本获取差分升级包;
将所述差分升级包按照内存大小由小到大进行排序,得到差分升级包序列,所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量;
根据所述差分升级包序列依次对所述待升级***进行升级。
在一种实施方式中,所述根据待升级***的原始版本与目标版本获取差分升级包,包括:
获取所述原始版本的文件数据以及所述目标版本的文件数据;
根据所述原始版本的文件数据与所述目标版本的文件数据确定所述原始版本与所述目标版本中存在差异的文件数据,所述存在差异的文件数据包括:所述目标版本与所述原始版本之间内容不同的文件内容包;
根据所述目标版本与所述原始版本之间内容不同的文件内容包生成差分升级包。
在一种实施方式中,所述根据所述原始版本的文件数据与所述目标版本的文件数据确定所述原始版本与所述目标版本中存在差异的文件数据,包括:
获取所述原始版本的文件数据所对应的第一存储数据,所述第一存储数据用于反映所述原始版本的文件数据中各个文件内容包中所存储的内容;
获取所述目标版本的文件数据所对应的第二存储数据,所述第二存储数据用于反映所述目标版本的文件数据中各个文件内容包中所存储的内容;
根据所述第一存储数据与所述第二存储数据确定所述原始版本与所述目标版本之间存在差异的存储数据,所述存在差异的存储数据所对应的文件数据即为所述存在差异的文件数据。
在一种实施方式中,所述根据所述第一存储数据与所述第二存储数据确定所述原始版本与所述目标版本之间存在差异的存储数据,包括:
获取所述第一存储数据对应的第一数据存储列表,所述第一数据存储列表设置有所述原始版本的文件数据中各个文件内容包所存储的内容以及每一个文件内容包所对应的内存占用数据;
获取所述第二存储数据对应的第二数据存储列表,所述第二数据存储列表设置有所述目标版本的文件数据中各个文件内容包所存储的内容以及每一个文件内容包所对应的内存占用数据;
将所述第一数据存储列表中的各个文件内容包所存储的内容及其对应的内存占用数据与所述第二数据存储列表中的各个文件内容包所存储的内容及其对应的内存占用数据进行比对,确定所述第一数据存储列表与所述第二数据存储列表中所述存在差异的存储数据。
在一种实施方式中,所述根据所述目标版本与所述原始版本之间内容不同的文件内容包生成差分升级包,包括:
获取所述目标版本与所述原始版本之间内容不同的文件内容包;
从所述目标版本与所述原始版本之间内容不同的文件内容包中提取差异字符串,所述差异字符串为内容不同的文件内容包中不相同的字符串;
将所述差异字符串压缩生成所述差分升级包。
在一种实施方式中,所述将所述差分升级包按照内存大小由小到大进行排序,包括:
根据所述第一数据存储列表以及所述第二数据存储列表,获取每一个所述差分升级包对应的文件内容包分别在原始版本以及目标版本的内存占用数据;
根据每个所述差分升级包对应的文件内容包在原始版本以及目标版本的内存占用数据,确定每一个所述差分升级包所对应的文件内容包在所述原始版本以及所述目标版本之间的内存变化量,所述内存变化量即为所述差分升级包的内存大小;
将所述差分升级包按照所述内存大小由小到大进行排序。
在一种实施方式中,所述根据所述差分升级包序列依次对所述待升级***进行升级,包括:
获取所述差分升级包序列;
按照所述差分升级包序列依次对所述差分升级包执行升级操作,以将所述待升级***从所述原始版本升级至所述目标版本。
第二方面,本发明实施例还提供一种***差分升级装置,其中,所述装置包括:
差分升级包获取单元,用于根据待升级***的原始版本与目标版本获取差分升级包;
差分升级包排序单元,用于将所述差分升级包按照内存大小由小到大进行排序,得到差分升级包序列,所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量;
差分升级包升级单元,用于根据所述差分升级包的排序对所述待升级***进行升级。
第三方面,本发明实施还提供一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如上述任意一项所述的***差分升级方法。
第四方面,本发明实施例还提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述中任意一项所述的***差分升级方法。
本发明的有益效果:本发明实施例通过对待升级***的原始版本与目标版本进行分析得到差分升级包,并通过将差分升级包按照内存大小由小到大进行排序,得到差分升级包序列,根据所述差分升级包序列依次对所述待升级***进行升级。由于所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量,因此进行***升级时就可以控制内存大小较小的差分升级包先进行升级,内存大小较大的差分升级包后进行升级,从而避免***分区可用空间不足的情况下出现内存大小大的差分升级包先进行升级而导致***分区中可用内存空间不足的情况,保证***升级的安全性,避免***源文件的丢失。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的***差分升级方法的流程示意图。
图2是本发明实施例提供的***差分升级方法中获取差分升级包的流程示意图。
图3是本发明实施例提供的***差分升级方法中对差分升级包进行排序的流程示意图。
图4是本发明实施例提供的***差分升级方法中对差分升级包进行升级序的流程示意图。
图5是本发明实施例提供的***差分升级装置的原理框图。
图6是本发明实施例提供的智能终端的内部结构原理框图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
现有的***差分升级主要是通过对有差异的文件通过打补丁的方式对该文件进行升级,且查分升级默认按文件名排序对差异文件依次升级。经研究人员发现,由于现有的Android***内置的应用较多,***分区接近临界值,当在***分区可用空间不足的情况下来对***文件进行差分升级时,若文件名排名靠前的文件都是内容增大的文件,而先升级这些内容增大的文件就容易发生将***分区写爆,导致部分源文件丢失,文件升级失败的问题。
为了解决现有技术的问题,本发明提供一种***差分升级方法,在发明实施例中,当需要对***进行升级时,获取到待升级***的原始版本以及目标版本,通过对所述原始版本与所述目标版本进行分析,得到差分升级包。所述差分升级包为根据所述待升级***的所述原始版本与所述目标版本之间存在差异的文件数据所生成的差分升级包,该差分升级包用于将所述待升级***从所述原始版本升级至所述目标版本,即通过对所述差分升级包的升级即可完成所述待升级***的升级,也就是说在将待升级***从原始版本升级至目标版本时,只需对所述原始版本与所述目标版本之间存在差异的文件数据进行升级。由于所述原始版本与所述目标版本之间相差的文件数据有多个,因此生成的差分升级包也有多个。为了避免出现现有技术中在***升级的过程中出现***分区可用内存空间不足的情况,本实施例将所述差分升级包按照内存大小由小到大进行排序,并控制***升级时按照所述差分升级包的排序来对所述差分升级包依次升级。由于所述内存大小所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量,因此在进行***升级时,就可以使得内存大小较小的差分升级包先进行升级,内存大小大的差分升级包后进行升级,从而避免***分区可用空间不足的情况下出现内存大小较大的差分升级包先进行升级而导致写爆***分区的情况,保证***升级的安全性,避免***源文件的丢失。
举例说明,当需要对智能终端(如手机)的Android***进行升级时,获取Android***的原始版本(本实施例中的原始版本指的是所述智能终端中在进行此次升级前所安装的***版本)为Android5.0,并进一步获取到Android***的目标版本(即需要将Android***升级到的版本)为Android6.0。获取到原始版本(即Android5.0)以及目标版本(即Android6.0)后,对两个版本文件进行分析,然后得到差分升级包。该差分升级包即为根据Android5.0与Android6.0之间存在差异的文件数据所生成的差分升级包。由于Android5.0与Android6.0之间存在差异的文件数据有多个,因此生成的差分升级包也有多个。然后将获取到的差分升级包按照内存大小由小到大进行排序。如,差分升级包总共有4个,差分升级包A的内存大小a,差分升级包B的内存大小b,差分升级包C的内存大小c,差分升级包D的内存大小d。若内存大小b<内存大小c<内存大小a<内存大小d;则在进行***升级时,差分升级包的升级顺序为:内存大小B→内存大小C→内存大小A→内存大小D。因此本实施例可实现内存大小较小的差分升级包先进行升级,内存大小较大的差分升级包后进行升级,从而避免***分区可用空间不足的情况下出现内存大小较大的差分升级包先进行升级而导致写爆***分区的情况,保证***升级的安全性,避免***源文件的丢失。
示例性方法
如图1中所示,本发明实施例提供一种***差分升级方法,所述***差分升级方法可以应用于智能终端。在本发明实施例中,所述方法包括如下步骤:
步骤S100、根据待升级***的原始版本与目标版本获取差分升级包。
在本实施例中,当需要对智能终端中的***进行升级时,智能终端就会下载待升级***的新版本(即所述目标版本)。本实施例中的原始版本指的是所述智能终端中在进行此次升级前所安装的***版本。所述目标版本下载方式可以通过智能终端的后台自动下载的方式,也可以通过提醒用户,然后根据用户的操作来进行下载。例如,当智能终端接收到***更新的消息后,就可以自动获取最新的***版本(即本实施例中的所述目标版本),然后在后台进行下载,下载完成后提示用户即可。或者,当智能终端接收到***更新的消息后,就会通知用户已存在最新版本的***(即所述目标版本),并提示用户是否需要下载所述目标版本;若用户选择下载,则所述智能终端就执行所述目标版本的下载操作。
当所述目标版本下载完成后,就可以开始执行所述待升级***的升级操作。具体实施时,可以通过对所述待升级版本的原始版本与目标版本进行分析,从而根据两个版本之间的文件数据的差异,生成差分升级包。在本实施例中,所述差分升级包是根据所述待升级***的所述原始版本与所述目标版本之间相差的文件数据所生成的,因此通过对所述差分升级包的升级,即可将所述待升级***从所述原始版本升级至所述目标版本。换句话说,在升级过程中不要对两个版本之间相同的文件数据进行升级,只需对两个版本之间存在差异的文件数据进行升级,减少了更新包的大小,减少用户更新的流量和等待时间,使得整个***更新的时间更快。
具体地,如图2中所示,所述步骤S100包括:
步骤S101、获取所述原始版本的文件数据以及所述目标版本的文件数据;
步骤S102、根据所述原始版本的文件数据与所述目标版本的文件数据确定所述原始版本与所述目标版本中存在差异的文件数据,所述存在差异的文件数据包括:所述目标版本与所述原始版本之间内容不同的文件内容包;
步骤S103、根据所述目标版本与所述原始版本之间内容不同的文件内容包生成差分升级包。
在本实施例中,为了实现待升级***的差分升级,需要根据所述原始版本与所述目标版本生成差分升级包。因此,智能终端在进行***升级时,就会获取所述原始版本以及所述目标版本的文件数据。所述文件数据分别包括两个版本中的***文件的详细信息,其中包括有多个文件内容包以及每一个文件内容包对应的内存占用数据(即每一个文件内容包占用多少内存)。在获取到两个版本的文件数据之后,将两个版本的文件数据进行比较,从中确定出两个版本之间存在差异的文件数据,也就是所述目标版本与所述原始版本之间存在内容不同的文件内容包,然后通过对所述目标版本与所述原始版本之间内容不同的文件内容包进行处理,即可生成差分升级包。
在进一步地实施方式中,本实施例中所述目标版本与所述原始版本之间内容不同的文件内容包包括三种情况:第一是所述目标版本相对于所述原始版本增加的文件内容包;第二是所述目标版本相对于所述原始版本减少的文件内容包;第三是所述目标版本以及所述原始版本都存在,但是具体内容存在差异的文件内容包。
由于***的升级可能会涉及到一些应用的功能升级,而某些应用的功能升级在原始版本的***中可能并不存在。例如,若此次的升级涉及到微信应用的图像编辑功能的升级或优化,而在原始版本中的微信应用并没有图像编辑功能(即在原始版本中,微信应用并没有图像编辑功能所对应的文件内容包就为0),因此此次升级到的目标版本中涉及到微信应用的图像编辑功能的文件内容包就为新增的文件内容包,即为存在差异的文件数据。也就是说,本实施例不但可以确定出两个版本之间相同的文件内容包之间的差异(如上述举例中Android5.0版本与Android6.0版本的文件内容包A之间的差异),还可以确定出所述目标版本相对于所述原始版本新增或者减少的文件内容包(如上述举例中微信应用的图像编辑功能对应的文件内容包),即就可以确定出两个版本之间存在差异的文件数据了。
在一种实施方式中,确定所述原始版本与所述目标版本之间的文件数据是否存在差异,可以通过比较所述原始版本的文件数据所对应的第一存储数据以及所述目标版本的文件数据所对应的第二存储数据。在本实施例中,所述第一存储数据用于反映所述原始版本的文件数据中各个文件内容包中所存储的内容。所述第二存储数据用于反映所述目标版本的文件数据中各个文件内容包中所存储的内容。因此当所述第一存储数据与所述第二存储数据之间存在差异时,则就说明两个版本的文件数据发生了变化,即两个版本的文件数据中存在不相同的文件内容包,继而就可以根据所述第一存储数据与所述第二存储数据来确定存在差异的存储数据,也及时确定出两个版本之间不相同的文件内容包有哪些,而存在差异的存储数据所对应的文件数据即为所述存在差异的文件数据。
例如,当获取到原始版本的文件数据的中第一存储数据中包括有文件内容包A、文件内容包B、文件内容包C。而获取到的目标版本的文件数据中的第二存储数据中包括有文件内容包A、文件内容包B、文件内容包C以及文件内容包D。因此将第一存储数据与第二存储数据相比较就可以来确定出所述原始版本与所述目标版本之间存在差异的文件数据为文件内容包D(即所述目标版本相对于所述原始版本增加了文件内容包D),因此文件内容包4即为两个版本中存在差异的文件数据。
在另一种实施方式中,所述原始版本与所述目标版本的文件数据所对应的存储数据是可以列表的形式体现的,因此在确定两个版本的文件数据之间的差异时,可以通过比较两个版本的数据存储列表,继而找出两个版本之间存在差异的文件数据。具体地,本实施例中首先获取所述第一存储数据对应的第一数据存储列表,所述第一数据存储列表包括所述原始版本中各个文件内容包所存储的内容以及每一个文件内容包所对应的内存占用数据(即所述原始版本中每一个文件内容包所对应的内存大小)。然后获取所述第二存储数据对应的第二数据存储列表,所述第二数据存储列表包括所述目标版本中各个文件内容包所存储的内容以及每一个内容包所对应的内存占用数据(即所述目标版本中每一个文件内容包所对应的内存大小)。最后将所述第一数据存储列表中的各个文件内容包所存储的内容及其对应的内存占用数据与所述第二数据存储列表中的各个文件内容包所存储的内容及其对应的内存占用数据进行比对,确定所述第一数据存储列表与所述第二数据存储列表中哪些是目标版本相对于原始版本新增的文件内容包、哪些是目标版本相对于原始版本减少的文件内容包以及哪些是目标版本相对于原始版本都存在文件内容包,但是存储的文件内容有差异的文件内容包,这样就可以确定出所述第一数据存储列表与所述第二数据存储列表中所述存在差异的存储数据。本实施例中通过比对两个版本的数据存储列表,可以更为直观地确定两个版本中存在差异的文件数据,继而更加快速地生成差分升级包。
举例说明,当进行智能终端(如手机)的***升级时,获取Android***的原始版本(Android5.0)的第一数据存储列表,第一数据存储列表中设置有Android5.0版本下的各个文件数据所对应的内存占用数据,如文件内容包A---3.4MB;文件内容包B--7.3MB;文件内容包C--1.5MB。然后获取到Android***的目标版本(即Android6.0)的第二数据存储列表,第二数据存储列表中设置有Android6.0版本下的各个文件数据所对应的内存占用数据,如文件内容包A--3.4MB;文件内容包C--3.6MB,文件内容包D--6.3MB。接着将第一数据存储列表和第二数据存储列表进行对比,则就可以确定出Android5.0版本与Android6.0版本之间存在差异的文件数据为文件内容B(文件内容B是目标版本相对于原始版本减少的文件内容包)和文件内容包C(文件内容C是目标版本相对于所述原始版本都存在文件内容包,但是存储的文件内容有差异(内存占用数据不相同)的文件内容包)以及文件内容包D(文件内容包D是目标版本相对于原始版本新增的文件内容包)。
在进一步地的实施方式中,当确定出两个版本之间存在差异的文件数据后,本实施例可以获取所述目标版本与所述原始版本之间内容不同的文件内容包;然后从所述目标版本与所述原始版本之间内容不同的文件内容包中提取差异字符串,所述差异字符串为内容不同的文件内容包中不相同的字符串;将所述差异字符串压缩生成所述差分升级包。具体应用时,本实施例可以调用BSDiff算法程序,所述BSDiff算法程序是一个差量更新算法,运行该BSDiff算法程序可以将两个版本之间内容不同的文件内容包一一生成差分升级包,而由于两个版本之间不相同的文件内容包会有多个,在生成差分升级包时是根据不相同的文件内容包来一一生成的,因此所生成的差分升级包就有多个,这些差分升级包就可以用于将所述待升级***从原始版本升级至目标版本。
进一步地,步骤S200、将所述差分升级包按照内存大小由小到大进行排序,得到差分升级包序列,所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量。
由于现有技术中的查分升级方法中默认按文件名排序对存在差异文件数据依次升级,但是当在***分区可用空间不足的情况下来对***文件进行差分升级时,若文件名排名靠前的文件数据都是内容增大的文件数据,而先升级这些内容增大的文件数据就容易导致***分区的可用内存力不足,导致部分源文件丢失,文件升级失败的问题。因此,为了避免上述问题,本实施例将差分升级包按照内存大小由小到大进行排列,而所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量,这样当对差分升级包进行升级时,就可以先升级内存大小较小的,而先对内存大小较小的先升级不会立刻就将***分区给占满,这样就可以使得升级得以进行下去,确保不会出现使得***分区中的可用内存空间不足的情况,保证***升级的安全性。
本实施例中,所述内存大小用于反映所述目标版本的文件数据相对于所述原始版本的文件数据的变化程度。而需要将差分升级包按照内存大小由小至大进行排序,就需要对差分升级包所对应的文件数据在分别在原始版本以及目标版本中的内存占用量进行分析,继而就可以确定差分升级包的内存大小,并进行排序。
如图3中所示,所述步骤S200包括以下步骤:
步骤S201、根据所述第一数据存储列表以及所述第二数据存储列表,获取每一个所述差分升级包对应的文件内容包分别在原始版本以及目标版本的内存占用数据;
步骤S202、根据每个所述差分升级包对应的文件内容包在原始版本以及目标版本的内存占用数据,确定每一个所述差分升级包所对应的文件内容包在所述原始版本以及所述目标版本之间的内存变化量,所述内存变化量即为所述差分升级包的内存大小;
步骤S203、将所述差分升级包按照所述内存大小由小到大进行排序。
具体实施时,由于在前述步骤中已经获取了所述原始版本与所述目标版本的文件数据所对应的数据存储列表(即第一数据存储列表以及第二数据存储列表),而差分升级包是由两个版本之间内容不同的文件内容包所生成的,因此差分升级包所对应的文件内容包就是所述原始版本以及目标版本之间存在差异的文件数据。本实施例中根据所述第一数据存储列表以及所述第二数据存储列表,获取每一个所述差分升级包对应的文件内容包分别在原始版本以及目标版本的内存占用数据,然后根据每个所述差分升级包对应的文件内容包在原始版本以及目标版本的内存占用数据进行计算,确定每一个所述差分升级包所对应的文件内容包在所述原始版本以及所述目标版本之间的内存变化量。由于每一个差分升级包都是基于两个版本之间内容不同的文件内容包来生成的,并且差分升级包是从所述目标版本与所述原始版本之间内容不同的文件内容包中提取差异字符串,然后将所述差异字符串压缩生成,因此计算出的内存变化量就为差分升级包所对应的内存大小,继而就可以将差分升级包按照内存大小由小到大进行排序。
举例说明,若确定出Android5.0版本与Android6.0版本之间存在差异的文件数据为文件内容包A和文件内容包C,且根据文件内容包A生成差分升级包A,文件内容包C生成差分升级包C。而在Android***的原始版本(Android5.0)中,文件内容包A的内存占用数据为3.4MB;文件内容包C的内存占用数据为1.5MB。而在Android***的目标版本(Android6.0)中,文件内容包A的内存占用数据为4.1MB;文件内容包C的内存占用数据为3.6MB。因此差分升级包A对应的文件内容包A的内存变化量为0.7,因此差分升级包A的内存大小为0.7MB,而差分升级包B对应的文件内容包C的内存变化量为2.1MB,因此差分升级包C的内存大小为2.1MB,因此排序就将差分升级包A排在差分升级包C之前。
在一种实施方式中,所述内存大小既包括文件内容包增加的情况也包括文件内容包减少的情况。当文件内容包是增加的情况,即升级后的文件数据的内存占用数据要大于升级前的文件数据的内存占用数据,因此将文件内容包增加的较少(即差分升级包对应的内存占用量较少)的先升级可以不会立刻将***分区的内存空间占满,确保不会出现使得***分区中的可用内存空间不足的情况,保证***升级的安全性。而当文件内容包是减小的情况,即升级后的文件数据的内存占用数据要小于升级前的文件数据的内存占用数据,因此此时无论文件内容减少的小的先升级,还是文件内容减少的小的后升级,都是不会引起***的可用内存空间不足。因此本实施例就可以将差分升级包按照内存大小由小到大进行排序,以便保证内存大小较小的先升级。
进一步地,步骤S300、根据所述差分升级包的排序对所述待升级***进行升级。
在本实施例中,由于所述差分升级包是按照内存大小由小到大进行排序的,在对差生升级包进行升级时,按照差分升级包的排序来执行升级操作,就可以保证内存大小较小差分升价包先升级,内存大小较大差分升价包后升级,确保不会出现使得***分区中的可用内存空间不足的情况,保证***升级的安全性。
如图4中所示,所述步骤S300包括以下步骤:
步骤S301、获取所述差分升级包序列;
步骤S302、按照所述差分升级包序列依次对所述差分升级包执行升级操作,以将所述待升级***从所述原始版本升级至所述目标版本。
在实施例中,当所述差分升级包已经按照内存大小由小到大进行了排序,当接收到***升级指令后,就可以获取所述差分升级包序列,按照所述差分升级包序列依次对所述差分升级包执行升级操作,以将所述待升级***从所述原始版本升级至所述目标版本。由于升级过程的是依次进行升级的,这样就可以保证升级过程的连续性,且保证不会造成内存大小较大的先升级而导致***分区中的可用内存空间不足的现象。在一种实施方式中,本实施例可以设置有多个***分区,每一个***分区中的差分升级包都按照内存大小由小到大进行排序,因此每一个***分区中,都是按照所述内存大小由小到大的顺序依次对所述差分升级包执行升级操作。
例如,若差分升级包按照内存大小由小到大的排列顺序为差分升级包A、差分升级包E、差分升级包C、差分升级包D、差分升级包B。在执行***升级时,执行升级的顺序同样就可为差分升级包A→差分升级包E→差分升级包C→差分升级包D→差分升级包B,保证不会造成内存大小较大的先升级而导致***分区被写爆的现象,以将所述待升级***从所述原始版本升级至所述目标版本。
由此可见,本发明实施例通过对待升级***的原始版本与目标版本进行分析得到差分升级包,并通过将差分升级包按照内存大小由小到大进行排序,得到差分升级包序列,根据所述差分升级包序列依次对所述待升级***进行升级。由于所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量,因此进行***升级时就可以控制内存大小较小的差分升级包先进行升级,内存大小较大的差分升级包后进行升级,从而避免***分区可用空间不足的情况下出现内存大小较大的差分升级包先进行升级而导致***分区中可用内存空间不足的情况,保证***升级的安全性,避免***源文件的丢失。
示例性设备
如图5中所示,本发明实施例提供一种***差分升级装置,该装置包括:差分升级包获取单元510、差分升级包排序单元520以及差分升级包升级单元530。具体地,所述差分升级包获取单元510,用于根据待升级***的原始版本与目标版本获取差分升级包。所述差分升级包排序单元520,用于将所述差分升级包按照内存大小由小到大进行排序,得到差分升级包序列,所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量。所述差分升级包升级单元530,用于根据所述差分升级包序列依次对所述待升级***进行升级。
基于上述实施例,本发明还提供了一种智能终端,其原理框图可以如图6所示。该智能终端包括通过***总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该智能终端的处理器用于提供计算和控制能力。该智能终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该智能终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种***差分升级方法。该智能终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该智能终端的温度传感器是预先在智能终端内部设置,用于检测内部设备的运行温度。
本领域技术人员可以理解,图6中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的智能终端的限定,具体的智能终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种智能终端,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
根据待升级***的原始版本与目标版本获取差分升级包;
将所述差分升级包按照内存大小由小到大进行排序,得到差分升级包序列,所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量;
根据所述差分升级包序列依次对所述待升级***进行升级。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本发明公开了一种***差分升级方法、装置、智能终端及存储介质,所述方法包括:根据待升级***的原始版本与目标版本获取差分升级包;将所述差分升级包按照内存大小由小到大进行排序,得到差分升级包序列,所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量;根据所述差分升级包序列依次对所述待升级***进行升级。本发明中通过将差分升级包按照内存大小由小到大进行排序,并根据所述差分升级包的排序对所述待升级***进行升级,因此使得在进行升级时,内存大小较小的差分升级包先进行升级,内存大小较大的差分升级包后进行升级,确保不会出现使得***分区中的可用内存空间不足的情况,保证***升级的安全性。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (8)

1.一种***差分升级方法,其特征在于,所述方法包括:
根据待升级***的原始版本与目标版本获取差分升级包;
将所述差分升级包按照内存大小由小到大进行排序,得到差分升级包序列,所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量;
根据所述差分升级包序列依次对所述待升级***进行升级;
所述根据待升级***的原始版本与目标版本获取差分升级包,包括:
获取所述原始版本的文件数据以及所述目标版本的文件数据;
根据所述原始版本的文件数据与所述目标版本的文件数据确定所述原始版本与所述目标版本中存在差异的文件数据,所述存在差异的文件数据包括:所述目标版本与所述原始版本之间内容不同的文件内容包;
根据所述目标版本与所述原始版本之间内容不同的文件内容包生成差分升级包;
所述待升级***设置多个***分区,每一个***分区中的差分升级包都按照内存大小由小到大进行排序;
所述将所述差分升级包按照内存大小由小到大进行排序,包括:
根据第一数据存储列表以及第二数据存储列表,获取每一个所述差分升级包对应的文件内容包分别在原始版本以及目标版本的内存占用数据;
根据每个所述差分升级包对应的文件内容包在原始版本以及目标版本的内存占用数据,确定每一个所述差分升级包所对应的文件内容包在所述原始版本以及所述目标版本之间的内存变化量,所述内存变化量即为所述差分升级包的内存大小;
将所述差分升级包按照所述内存大小由小到大进行排序;
所述目标版本通过智能终端的后台自动下载或提醒用户,根据用户的操作进行下载;
所述目标版本与所述原始版本之间内容不同的文件内容包括:
所述目标版本相对于所述原始版本增加的文件内容包;
所述目标版本相对于所述原始版本减少的文件内容包;
所述目标版本以及所述原始版本都存在,具体内容存在差异的文件内容包。
2.根据权利要求1所述的***差分升级方法,其特征在于,所述根据所述原始版本的文件数据与所述目标版本的文件数据确定所述原始版本与所述目标版本中存在差异的文件数据,包括:
获取所述原始版本的文件数据所对应的第一存储数据,所述第一存储数据用于反映所述原始版本的文件数据中各个文件内容包中所存储的内容;
获取所述目标版本的文件数据所对应的第二存储数据,所述第二存储数据用于反映所述目标版本的文件数据中各个文件内容包中所存储的内容;
根据所述第一存储数据与所述第二存储数据确定所述原始版本与所述目标版本之间存在差异的存储数据,所述存在差异的存储数据所对应的文件数据即为所述存在差异的文件数据。
3.根据权利要求2所述的***差分升级方法,其特征在于,所述根据所述第一存储数据与所述第二存储数据确定所述原始版本与所述目标版本之间存在差异的存储数据,包括:
获取所述第一存储数据对应的第一数据存储列表,所述第一数据存储列表设置有所述原始版本的文件数据中各个文件内容包所存储的内容以及每一个文件内容包所对应的内存占用数据;
获取所述第二存储数据对应的第二数据存储列表,所述第二数据存储列表设置有所述目标版本的文件数据中各个文件内容包所存储的内容以及每一个文件内容包所对应的内存占用数据;
将所述第一数据存储列表中的各个文件内容包所存储的内容及其对应的内存占用数据与所述第二数据存储列表中的各个文件内容包所存储的内容及其对应的内存占用数据进行比对,确定所述第一数据存储列表与所述第二数据存储列表中所述存在差异的存储数据。
4.根据权利要求1或3所述的***差分升级方法,其特征在于,所述根据所述目标版本与所述原始版本之间内容不同的文件内容包生成差分升级包,包括:
获取所述目标版本与所述原始版本之间内容不同的文件内容包;
从所述目标版本与所述原始版本之间内容不同的文件内容包中提取差异字符串,所述差异字符串为内容不同的文件内容包中不相同的字符串;
将所述差异字符串压缩生成所述差分升级包。
5.根据权利要求1所述的***差分升级方法,其特征在于,所述根据所述差分升级包序列依次对所述待升级***进行升级,包括:
获取所述差分升级包序列;
按照所述差分升级包序列依次对所述差分升级包执行升级操作,以将所述待升级***从所述原始版本升级至所述目标版本。
6.一种***差分升级装置,其特征在于,所述装置包括:
差分升级包获取单元,用于根据待升级***的原始版本与目标版本获取差分升级包;
差分升级包排序单元,用于将所述差分升级包按照内存大小由小到大进行排序,得到差分升级包序列,所述内存大小用于反映根据所述原始版本与所述目标版本之间存在差异的文件数据所生成的所述差分升级包所对应的内存占用量;
差分升级包升级单元,用于根据所述差分升级包序列依次对所述待升级***进行升级;
所述差分升级包获取单元包括:
获取所述原始版本的文件数据以及所述目标版本的文件数据;
根据所述原始版本的文件数据与所述目标版本的文件数据确定所述原始版本与所述目标版本中存在差异的文件数据,所述存在差异的文件数据包括:所述目标版本与所述原始版本之间内容不同的文件内容包;
根据所述目标版本与所述原始版本之间内容不同的文件内容包生成差分升级包;
所述待升级***设置多个***分区,每一个***分区中的差分升级包都按照内存大小由小到大进行排序;
差分升级包排序单元包括:
根据第一数据存储列表以及第二数据存储列表,获取每一个所述差分升级包对应的文件内容包分别在原始版本以及目标版本的内存占用数据;
根据每个所述差分升级包对应的文件内容包在原始版本以及目标版本的内存占用数据,确定每一个所述差分升级包所对应的文件内容包在所述原始版本以及所述目标版本之间的内存变化量,所述内存变化量即为所述差分升级包的内存大小;
将所述差分升级包按照所述内存大小由小到大进行排序;
所述目标版本与所述原始版本之间内容不同的文件内容包括:
所述目标版本相对于所述原始版本增加的文件内容包;
所述目标版本相对于所述原始版本减少的文件内容包;
所述目标版本以及所述原始版本都存在,具体内容存在差异的文件内容包;
所述目标版本通过智能终端的后台自动下载或提醒用户,根据用户的操作进行下载。
7.一种智能终端,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于执行如权利要求1-5中任意一项所述的方法。
8.一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-5中任意一项所述的方法。
CN201911338531.0A 2019-12-23 2019-12-23 一种***差分升级方法、装置、智能终端及存储介质 Active CN113094077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911338531.0A CN113094077B (zh) 2019-12-23 2019-12-23 一种***差分升级方法、装置、智能终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911338531.0A CN113094077B (zh) 2019-12-23 2019-12-23 一种***差分升级方法、装置、智能终端及存储介质

Publications (2)

Publication Number Publication Date
CN113094077A CN113094077A (zh) 2021-07-09
CN113094077B true CN113094077B (zh) 2023-08-01

Family

ID=76662906

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911338531.0A Active CN113094077B (zh) 2019-12-23 2019-12-23 一种***差分升级方法、装置、智能终端及存储介质

Country Status (1)

Country Link
CN (1) CN113094077B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114518897A (zh) * 2022-04-20 2022-05-20 北京智芯微电子科技有限公司 通信模块远程升级方法及***
CN116700739A (zh) * 2022-09-21 2023-09-05 荣耀终端有限公司 差分升级方法、装置、电子设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223256A (zh) * 2011-07-26 2011-10-19 烽火通信科技股份有限公司 Gpon接入***中多款onu自动升级的方法及***
WO2016192197A1 (zh) * 2015-06-02 2016-12-08 中兴通讯股份有限公司 一种终端的软件升级方法、装置、***和计算机存储介质
CN110502256A (zh) * 2018-05-18 2019-11-26 佛山市顺德区美的电热电器制造有限公司 一种软件升级方法、终端及存储介质
CN110515641A (zh) * 2019-08-30 2019-11-29 西安易朴通讯技术有限公司 服务器固件的更新方法、装置及***

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685164B (zh) * 2011-03-16 2016-11-16 中国电信股份有限公司 终端存储空间受限情况下文件下载更新的方法和***
CN103473099B (zh) * 2013-09-13 2017-02-01 惠州Tcl移动通信有限公司 一种移动终端的软件升级方法和***
CN105138347A (zh) * 2015-07-17 2015-12-09 广东欧珀移动通信有限公司 一种差分升级包生成方法、软件升级方法及相应装置
CN105700926B (zh) * 2016-01-14 2019-09-20 青岛海信电器股份有限公司 差分升级包制作方法及装置、***差分升级方法及装置
CN105843656B (zh) * 2016-04-22 2020-12-01 Tcl科技集团股份有限公司 磁盘空间不足的***升级方法、终端设备及服务器
CN106547597A (zh) * 2016-11-21 2017-03-29 北京小米移动软件有限公司 应用程序更新的控制方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102223256A (zh) * 2011-07-26 2011-10-19 烽火通信科技股份有限公司 Gpon接入***中多款onu自动升级的方法及***
WO2016192197A1 (zh) * 2015-06-02 2016-12-08 中兴通讯股份有限公司 一种终端的软件升级方法、装置、***和计算机存储介质
CN110502256A (zh) * 2018-05-18 2019-11-26 佛山市顺德区美的电热电器制造有限公司 一种软件升级方法、终端及存储介质
CN110515641A (zh) * 2019-08-30 2019-11-29 西安易朴通讯技术有限公司 服务器固件的更新方法、装置及***

Also Published As

Publication number Publication date
CN113094077A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
US10528742B2 (en) Method and apparatus for repairing kernel vulnerability
CN108847950B (zh) 电子装置、云***软件自动部署方法及存储介质
CN108027741A (zh) 基于补丁升级的文件处理方法、装置、终端以及存储介质
CN106951284B (zh) 基于安卓***应用的用户界面升级方法、装置及智能终端
CN107291481B (zh) 一种组件更新方法、装置和***
CN113094077B (zh) 一种***差分升级方法、装置、智能终端及存储介质
CN111240720A (zh) 引导程序升级方法、装置及存储介质
CN111263354B (zh) 一种ota差分升级方法及装置
CN113835713B (zh) 源码包下载方法、装置、计算机设备和存储介质
CN106293849B (zh) 一种应用更新方法和终端
CN111881150A (zh) 一种web应用程序离线数据的处理方法及装置
CN113504918A (zh) 设备树配置优化方法、装置、计算机设备和存储介质
CN113535211B (zh) 应用程序更新方法、装置、计算机设备及存储介质
CN115357262A (zh) 一种驱动器固件批量升级的方法
CN115756561A (zh) 软件升级方法、装置、计算机设备以及存储介质
CN114780019A (zh) 电子设备的管理方法、装置、电子设备及存储介质
CN111176671B (zh) ***自动连续更新的方法、移动终端和存储介质
CN110659047A (zh) 算法模型更新方法和装置、电子设备、计算机可读存储介质
CN113535206B (zh) 多版本代码升级方法及***
CN113986385A (zh) 项目字体库加载方法、装置、电子设备及存储介质
CN111736863A (zh) 一种软件升级方法、装置及电子设备
CN112860287A (zh) ***程序升级方法、装置、计算机设备及存储介质
CN111651195A (zh) 一种***依赖包冲突检测方法及装置
CN109840156B (zh) 一种数据缓存方法及其设备、存储介质、终端
CN111918278A (zh) 空中下载升级校验方法、装置、介质和智能终端设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant