CN111258620B - 差分升级包的生成方法、装置和设备 - Google Patents
差分升级包的生成方法、装置和设备 Download PDFInfo
- Publication number
- CN111258620B CN111258620B CN201811454112.9A CN201811454112A CN111258620B CN 111258620 B CN111258620 B CN 111258620B CN 201811454112 A CN201811454112 A CN 201811454112A CN 111258620 B CN111258620 B CN 111258620B
- Authority
- CN
- China
- Prior art keywords
- blocks
- version file
- differential
- block length
- upgrade package
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种差分升级包的生成方法、装置和设备,其中,所述方法包括:按照候选分块长度将源版本文件和目标版本文件分别划分为多个分块;将所述源版本文件的分块和所述目标版本文件的分块进行对比,获得所述源版本文件的分块和所述目标版本文件的分块之间的差分信息和复制依赖关系;根据所述差分信息和复制依赖关系生成差分升级包。通过本发明实施例,在差分升级时,无需耗费较大内存资源。利用本发明实施例可以实现最大限度地节约移动设备软件差分升级的内存资源,并同时保证升级的成功率。
Description
技术领域
本发明实施例涉及但不限于一种差分升级包的生成方法、装置、设备和计算机可读存储介质。
背景技术
随着4G(the 4th Generation,第四代)无线通讯技术的迅猛发展和普及,移动通讯网络的抗负荷程度在持续的提高和进步,人们开始对数据业务中的一些新型的增值类业务不断扩大需求。因而移动终端运行的软件开始变得种类繁多,但是随着时间的推移,软件缺陷也大量存在于移动终端之中,需要提供足够的服务即通过升级软件版本来修复这些软件的缺陷。为了缩小软件升级中传输的数据量,同时为了减少软件的升级时间,一般需要对源版本文件和目标版本文件的差异表示形式进行详细的优化设计,然后通过差分恢复计算进行升级,通常称这类技术为差分软件升级技术。
移动终端或其他嵌入式终端设备下差分升级中较大的瓶颈是终端设备的内存资源限制,因为软件差分升级的目标版本文件一般都很庞大,如果在内存中计算差分并完全恢复得到整个目标版本文件需要耗费较大内存,但嵌入式终端设备的内存大小一般都很有限,难以满足较大目标版本文件的差分升级。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供了一种差分升级包的生成方法、装置、设备和计算机可读存储介质,以实现较大目标版本文件的差分升级。
本发明实施例提供了一种差分升级包的生成方法,包括:
按照候选分块长度将源版本文件和目标版本文件分别划分为多个分块;
将所述源版本文件的分块和所述目标版本文件的分块进行对比,获得所述源版本文件的分块和所述目标版本文件的分块之间的差分信息和复制依赖关系;
根据所述差分信息和复制依赖关系生成差分升级包。
本发明实施例还提供一种差分升级包的生成装置,包括:
差分计算模块,用于按照候选分块长度将源版本文件和目标版本文件分别划分为多个分块,将所述源版本文件的分块和所述目标版本文件的分块进行对比,获得所述源版本文件的分块和所述目标版本文件的分块之间的差分信息和复制依赖关系;
差分升级包生成模块,用于根据所述差分信息和复制依赖关系生成差分升级包。
本发明实施例还提供一种生成设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述差分升级包的生成方法。
本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述差分升级包的生成方法。
本发明实施例包括:按照候选分块长度将源版本文件和目标版本文件分别划分为多个分块,将所述源版本文件的分块和所述目标版本文件的分块进行对比,获得所述源版本文件的分块和所述目标版本文件的分块之间的差分信息和复制依赖关系;根据所述差分信息和复制依赖关系生成差分升级包。通过本发明实施例,在差分升级时,无需耗费较大内存资源。利用本发明实施例可以实现最大限度地节约移动设备软件差分升级的内存资源,并同时保证升级的成功率。
在阅读并理解了附图和详细描述后,可以明白其他方面。
附图说明
图1是本发明实施例的应用场景示意图;
图2是本发明实施例的差分升级包的生成方法的流程图;
图3是本发明一实施例的复制依赖关系获取方式的流程图;
图4是本发明一实施例的分块之间复制依赖关系的拓扑结构图;
图5是本发明另一实施例的差分升级包的生成方法的流程图;
图6是本发明实施例的步骤202的流程图;
图7是本发明实施例的步骤601的流程图;
图8是本发明再一实施例的差分升级包的生成方法的流程图;
图9是本发明应用实例的差分升级包的生成方法的流程图;
图10是本发明实施例的差分升级的实现方法的流程图;
图11是本发明另一实施例的差分升级的实现方法的流程图;
图12是本发明实施例的差分升级包的生成装置的示意图;
图13是本发明实施例的差分升级的实现装置的示意图;
图14是本发明实施的生成设备的示意图;
图15是本发明实施的终端设备的示意图。
具体实施方式
下文中将结合附图对本发明的实施例进行详细说明。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
针对内存受限的情况,可以采用对目标文件先固定分块,然后各自进行差分计算,在终端设备进行差分升级时只需要恢复一个分块的内存。但这前提是各个分块之间不具有关联性,即本块的差分包内容没有复制其他块的信息。但通常源版本文件和目标版本文件的各个分块之间具有很强的关联性,所以只是简单地进行分块升级很容易造成依赖的块被提前擦写而造成升级失败。
本发明实施例中,通过获取所述源版本文件的分块和所述目标版本文件的分块之间的复制依赖关系,按照复制依赖关系进行升级,避免升级失败。
如图1所示,本发明实施例的应用场景可以为:
差分升级包的生成设备11生成所述差分升级包,将所述差分升级包发送至升级服务器12,在终端设备13需要升级时,从升级服务器12下载差分升级包,通过所述差分升级包将源版本文件升级为目标版本文件。
如图2所示,本发明实施例的差分升级包的生成方法,可以应用于差分升级包的生成设备,可以包括下述步骤:
步骤201,按照候选分块长度将源版本文件和目标版本文件分别划分为多个分块。
步骤202,将所述源版本文件的分块和所述目标版本文件的分块进行对比,获得所述源版本文件的分块和所述目标版本文件的分块之间的差分信息和复制依赖关系。
步骤203,根据所述差分信息和复制依赖关系生成差分升级包。
所述候选分块长度可以是一个指定的候选分块长度,例如256K,也可以从多个候选分块长度中选择的其中一个。
在一实施例中,所述候选分块长度为所述源版本文件和所述目标版本文件对应的擦写FLASH设备的最小单位的整数倍,且小于或等于所述源版本文件和所述目标版本文件的长度。
例如,擦写FLASH设备的最小单位为128K,目标版本文件长度是2.1M,源版本文件长度是2.15M,设置最大的候选分块长度为:不超过源版本文件和目标版本文件,且是1024字节的整数倍,则取最大的候选分块长度为2M,最小的候选分块长度为128K。选取候选分块长度时,可以从最小到最大两倍地增加。比如在此情况下,分块候选长度为{128K,256K,512K,1M,2M}。
其中,如图3所示,在一实施例中,所述复制依赖关系可以采用下述方式获得:
步骤301,获得所述差分信息中的复制信息;
步骤302,根据所述复制信息,获得所述源版本文件的分块和所述目标版本文件的分块之间依赖的拓扑关系,将所述拓扑关系作为所述复制依赖关系。
其中复制信息用于表示源版本文件和目标版本文件之间的复制关系,可以包括复制命令字,所述差分信息可以包括以下系列命令字:
复制命令:copy from length---表示从源版本文件某个地址(from)复制(copy)长度为length数据;
设置命令:set length--表示新增加了长度length的数据。
其中从复制命令字中可以得到各个分块之间依赖的拓扑关系,如图4所示,比如目标版本分块1复制了源版本分块2中的内容,就有一条边从分块节点1指向分块节点2;相似的,如果目标版本分块2复制了源版本分块3和源版本分块5中的内容,就分别有一条边从分块节点2指向分块节点3和分块节点5。
如图5所示,在一实施例中,在所述候选分块长度为多个时,所述方法还可以包括:
步骤501,针对每个候选分块长度,根据所述复制依赖关系确定最大强连通分量,计算所述最大强连通分量中分块的个数与所述候选分块长度的乘积值;所述最大强连通分量为拥有最多成员数的强连通分量。
步骤502,在所有的候选分块长度中,选择所述乘积值最小的候选分块长度作为最优分块长度;所述最优分块长度用于生成差分升级包。
例如,参见图4得到的分块依赖关系拓扑结构图,针对这个结构图进行最大强连通分量的查找。
强连通是指在一个有向图G里,设两个点a、b。如果发现由a有一条路可以走到b,由b又有一条路可以走到a,则这两个顶点(a,b)为强连通。所谓强连通分量是指在这个有向图G中有一个子图,这个子图中每两个点都满足强连通,则这个子图叫做强连通分量。常用的查找有向图中各个强连通分量的方法为tarjan算法,该算法为标准方法,此处不再详细描述该算法过程。比如图4经过该算法可以得到的强连通分量有{1,2,4,5}、{3}、{6}。{1,2,4,5}就是最大强连通分量,该强连通分量的拥有的成员个数为4。
在所述候选分块长度为一个时,该候选分块长度即为最优分块长度。
本发明实施例采用分块数的动态调节,即自动改变分块的长度大小,一直遍历找到最大强连通分量成员数与候选分块长度乘积的最小值为止,可最大限度地节约终端设备软件差分升级的内存资源。
在一实施例中,如图6所示,步骤203可以包括:
步骤601,根据所述复制依赖关系确定分块差分升级的顺序。
步骤602,按照上述确定的顺序将所述差分信息打包生成差分升级包,或者,根据上述确定的顺序生成顺序信息,将所述顺序信息和所述差分信息打包生成差分升级包。
其中,按照上述确定的顺序将所述差分信息打包生成差分升级包,可以包括:
将每个节点对应的差分信息分别生成差分包,按照上述确定的顺序,将所有的差分包排序,打包生成差分升级包。
其中,在一实施例中,可以根据如图7所示的步骤确定分块差分升级的顺序:
步骤701,根据所述复制依赖关系确定所有的强连通分量。
参照上述确定最大强连通分量的描述,在确定所述差分升级包使用的最优分块长度后,按照最优分块长度进行分块,得到复制依赖关系,可以确定所有的强连通分量。
步骤702,将强连通分量作为节点,对所述节点进行排序,得到所述分块差分升级的顺序,其中,同一个节点中的分块同时升级。
将根据复制依赖关系得到的分块拓扑结构中所有的强连通分量作为各个新的节点,利用该新节点的依赖关系再构造一个新的拓扑关系结构,然后对该新结构再进行拓扑排序。这里拓扑排序算法是常规算法不再详细描述,通过拓扑排序得到一个各个节点依赖的顺序。比如将图4中的{1,2,4,5}、{3}、{6}分别看作三个新的节点A,B,C,根据新节点的依赖关系其拓扑顺序为A->B->C。则最后得到的升级分块顺序为{{1,2,4,5};3;6}。其中{1,2,4,5}分块同时升级,要准备好同时进行擦写,这样就不会造成依赖的分块被提前擦写。
在一实施例中,如图8所示,所述方法还可以包括:
步骤801,按照所述最优分块长度生成分块长度信息。
其中,可以直接将所述最优分块长度作为分块长度信息,例如128K,256K等,也可以将所述最优分块长度对应的擦写FLASH设备的最小单位的倍数作为分块长度信息,例如,最优分块长度为512K,擦写FLASH设备的最小单位为128K,则分块长度信息为4。
步骤802,在生成差分升级包时,将所述分块长度信息加入所述差分升级包。也就是说,所述差分升级包中包含所述分块长度信息。
这样,解包时,就可以获知所述最优分块长度。
如图9所示,为本发明应用实例的差分升级包的生成方法,可以包括如下步骤:
步骤901:确定多个候选分块长度。
应说明的是,所述多个候选分块长度可以根据源版本文件和目标版本文件的长度以及擦写FLASH设备的最小单位来确定,例如,最小的候选分块长度可以是移动终端系统中擦写FLASH设备的最小单位,比如128K。最大的候选分块长度可以选择不超过源版本文件和目标版本文件长度的1024字节的最大整数倍;
步骤902:在上述多个候选分块长度中从小到大依次选取一个到步骤903中执行差分计算,如果选取完毕则转到步骤906中;
步骤903:根据当前选取的候选分块长度把源版本文件和目标版本文件平均分成若干分块,然后计算每一块目标版本文件相对于源版本文件的差分信息。目标版本文件的差分信息可以由以下系列命令字构成:
复制命令:copy from length---表示从源版本文件某个地址(from)复制(copy)长度为length数据;
设置命令:set length--表示新增加了长度length的数据。
从复制命令字中可以得到各个分块之间依赖的拓扑关系。
本步骤执行完毕转入下一步骤904执行;
步骤904:从步骤903中得到例如图4的分块依赖关系拓扑结构图,针对这个结构图进行最大强连通分量(即拥有最多成员数的强连通分量)的查找。找到后转入下一步骤905执行;
步骤905:计算步骤904中查找到最大强连通分量的成员数和当前候选分块长度的乘积,并保留所有候选分块长度对应的最小乘积值。然后转回步骤902中继续执行;
步骤906:当所有候选分块长度计算完毕后,取所有候选分块长度中最大强连通分量的成员数和该候选分块长度的最小乘积值对应的分块拓扑结构进行拓扑排序。这里将所有的强连通分量作为各个新的节点,利用该新节点的依赖关系再构造一个新的拓扑关系结构,然后对该新结构再进行拓扑排序。得到一个各个节点依赖的顺序,其中同一个节点中的分块要同时进行升级。
步骤907:生成差分升级包。
其中,差分升级包携带差分信息和分块长度信息,以及,隐式或显示地携带复制依赖关系(分块差分升级的顺序信息)。其中,隐式携带复制依赖关系是指打包时,按分块差分升级的顺序进行打包,这样,解包时可以获知复制依赖关系以及分块差分升级的顺序;显示携带是指将分块差分升级的顺序信息直接携带在差分升级包中。
如图10所示,本发明实施例的差分升级的实现方法,应用于终端设备,可包括:
步骤1001,获取差分升级包。
其中,可以是从升级服务器下载,得到差分升级包,也可以是通过升级服务器推送,得到差分升级包。
步骤1002,将源版本文件划分为多个分块,根据所述差分升级包中携带的差分信息和复制依赖关系,按顺序对每个分块进行升级,得到目标版本文件。
在一实施例中,所述将源版本文件划分为多个分块,包括:
根据所述差分升级包中携带的分块长度信息将所述源版本文件划分为多个分块。
其中,所述分块长度信息可以是实际的分块长度,也可以是分块长度对应的擦写FLASH设备的最小单位的倍数。根据所述分块长度信息可以获知分块长度,按照分块长度将所述源版本文件均匀地分为多个分块。
如图11所示,在一实施例中,所述根据所述差分升级包中携带的差分信息和复制依赖关系,按顺序对每个分块进行升级,可以包括:
步骤1101,根据所述差分升级包中差分信息的顺序,或者,根据所述差分升级包中携带的顺序信息,确定复制依赖关系,得到分块差分升级的顺序;
其中,差分升级包可以隐式或显示地携带复制依赖关系,该复制依赖关系对应分块差分升级的顺序。隐式携带复制依赖关系是指打包时,按分块差分升级的顺序进行打包,这样,解包时可以获知复制依赖关系以及分块差分升级的顺序;显示携带是指将复制依赖关系(分块差分升级的顺序信息)直接携带在差分升级包中。
步骤1102,按照所述分块差分升级的顺序和所述差分信息对每个分块进行升级。
在一实施例中,所述分块差分升级的顺序包括节点的排序顺序,其中,每个节点包括一个或多个分块,在按照所述顺序和所述差分信息依次对每个分块进行升级时,同一个节点中的分块同时升级。
在进行差分还原时,同时准备好同一个节点对应的分块目标,这样就不会造成依赖的块被提前擦写的情况。需要的最大内存资源为节点最多包括的分块个数乘以分块长度,由于在制作差分升级包时对分块长度进行了选择调整,所以节约移动设备软件差分升级的内存资源。
如图12所示,本发明实施例还包括一种差分升级包的生成装置,可以包括:
差分计算模块121,用于按照候选分块长度将源版本文件和目标版本文件分别划分为多个分块,将所述源版本文件的分块和所述目标版本文件的分块进行对比,获得所述源版本文件的分块和所述目标版本文件的分块之间的差分信息和复制依赖关系;
差分升级包生成模块122,用于根据所述差分信息和复制依赖关系生成差分升级包。
在一实施例中,所述差分计算模块121,用于:
获得所述差分信息中的复制信息;
根据所述复制信息,获得所述源版本文件的分块和所述目标版本文件的分块之间依赖的拓扑关系,将所述拓扑关系作为所述复制依赖关系。
在一实施例中,所述生成装置还包括:
分块调节器模块123,用于依次选取所述候选分块长度。
其中,所述分块调节器模块123根据记录下当前最大强连通体个数乘以当前的候选分块长度,然后输出一个新的候选分块长度重新进行分块再交给差分计算模块得到新的分块复制依赖关系并得到新的最大连通分量个数,直到所有候选分块长度计算完毕,最后得到最大连通分量个数和候选分块长度乘积最小的值对应了最终的分块结果。
最大强连通分量查找模块124,用于根据所述复制依赖关系确定每个候选分块长度对应的最大强连通分量,计算所述最大强连通分量中分块的个数与所述候选分块长度的乘积值;在所有的候选分块长度中,选择所述乘积值最小的候选分块长度作为最优分块长度。
其中,最大强连通分量查找模块124可以根据差分计算模块121输出的复制依赖关系利用标准的Tarjan算法得到各个强连通分量,并得到最大强连通分量中的成员个数,即最大强连通分量个数。
在一实施例中,所述差分升级包生成模块122,还用于按照所述最优分块长度生成分块长度信息;在生成差分升级包时,将所述分块长度信息加入所述差分升级包。
在一实施例中,所述候选分块长度为所述源版本文件和所述目标版本文件对应的擦写闪存FLASH设备的最小单位的整数倍,且小于或等于所述源版本文件和所述目标版本文件的长度。
在一实施例中,差分升级包生成模块122,用于:
根据所述复制依赖关系确定分块差分升级的顺序;
按照上述确定的顺序将所述差分信息打包生成差分升级包,或者根据上述确定的顺序生成顺序信息,将所述顺序信息和所述差分信息打包生成所述差分升级包。
在一实施例中,所述装置还包括:
拓扑排序模块125,用于根据所述复制依赖关系确定所有的强连通分量,将强连通分量作为节点,对所述节点进行排序,得到所述分块差分升级的顺序,其中,同一个节点中的分块同时升级。
拓扑排序模块125可以负责根据最后最大强连通分量查找结果,将所有强连通分量的分块归为一个节点,将这些节点进行拓扑排序处理,最后得到依次差分升级的分块顺序,其中同一个节点中的分块要同时进行升级。
如图13所示,本发明实施例还提供一种差分升级的实现装置,包括:
获取模块131,用于获取差分升级包;
升级模块132,用于将源版本文件划分为多个分块,根据所述差分升级包中携带的差分信息和复制依赖关系,按顺序对每个分块进行升级,得到目标版本文件。
在一实施例中,升级模块132,用于根据所述差分升级包中携带的分块长度信息将所述源版本文件划分为多个分块。
在一实施例中,升级模块132,用于:
根据所述差分升级包中差分信息的顺序,或者,根据所述差分升级包中携带的顺序信息,确定复制依赖关系,得到分块差分升级的顺序;
按照所述分块差分升级的顺序和所述差分信息对每个分块进行升级。
在一实施例中,所述分块差分升级的顺序包括节点的排序顺序,其中,每个节点包括一个或多个分块,升级模块132,用于在按照所述顺序和所述差分信息依次对每个分块进行升级时,设置同一个节点中的分块同时升级。
如图14所示,本发明实施还提供一种生成设备,包括:存储器141、处理器142及存储在存储器141上并可在处理器142上运行的计算机程序143,所述处理器141执行所述程序时实现所述差分升级包的生成方法。
如图15所示,本发明实施还提供一种终端设备,包括:存储器151、处理器152及存储在存储器151上并可在处理器152上运行的计算机程序153,所述处理器151执行所述程序时实现所述差分升级的实现方法。
本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述差分升级包的生成方法。
本发明实施例还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述差分升级的实现方法。
在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (9)
1.一种差分升级包的生成方法,包括:
按照候选分块长度将源版本文件和目标版本文件分别划分为多个分块;
将所述源版本文件的分块和所述目标版本文件的分块进行对比,获得所述源版本文件的分块和所述目标版本文件的分块之间的差分信息和复制依赖关系;
根据所述差分信息和复制依赖关系生成差分升级包;
其中,在所述候选分块长度为多个时,所述方法还包括:
针对每个候选分块长度,根据所述复制依赖关系确定最大强连通分量,计算所述最大强连通分量中分块的个数与所述候选分块长度的乘积值;所述最大强连通分量为拥有最多成员数的强连通分量;
在所有的候选分块长度中,选择乘积值最小的候选分块长度作为最优分块长度;所述最优分块长度用于生成差分升级包。
2.如权利要求1所述的方法,其特征在于,所述复制依赖关系采用下述方式获得:
获得所述差分信息中的复制信息;
根据所述复制信息,获得所述源版本文件的分块和所述目标版本文件的分块之间依赖的拓扑关系,将所述拓扑关系作为所述复制依赖关系。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
按照所述最优分块长度生成分块长度信息;
在生成差分升级包时,将所述分块长度信息加入所述差分升级包。
4.如权利要求1所述的方法,其特征在于,所述候选分块长度为所述源版本文件和所述目标版本文件对应的擦写闪存FLASH设备的最小单位的整数倍,且小于或等于所述源版本文件和所述目标版本文件的长度。
5.如权利要求1中所述的方法,其特征在于,所述根据所述差分信息和复制依赖关系生成差分升级包,包括:
根据所述复制依赖关系确定分块差分升级的顺序;
按照上述确定的顺序将所述差分信息打包生成所述差分升级包,或者根据上述确定的顺序生成顺序信息,将所述顺序信息和所述差分信息打包生成所述差分升级包。
6.如权利要求5所述的方法,其特征在于,所述根据所述复制依赖关系确定分块差分升级的顺序,包括:
根据所述复制依赖关系确定所有的强连通分量,将强连通分量作为节点,对所述节点进行排序,得到所述分块差分升级的顺序,其中,同一个节点中的分块同时升级。
7.一种差分升级包的生成装置,其特征在于,包括:
差分计算模块,用于按照候选分块长度将源版本文件和目标版本文件分别划分为多个分块,将所述源版本文件的分块和所述目标版本文件的分块进行对比,获得所述源版本文件的分块和所述目标版本文件的分块之间的差分信息和复制依赖关系;
差分升级包生成模块,用于根据所述差分信息和复制依赖关系生成差分升级包;
其中,在所述候选分块长度为多个时,所述生成装置还包括:
分块调节模块,用于依次选取所述候选分块长度;
最大强连通分量查找模块,用于根据所述复制依赖关系确定每个所述候选分块长度的最大强连通分量,计算所述最大强连通分量中分块的个数与所述候选分块长度的乘积值;所述最大强连通分量为拥有最多成员数的强连通分量;在所有的候选分块长度中,选择乘积值最小的候选分块长度作为最优分块长度;所述最优分块长度用于生成差分升级包。
8.一种生成设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~6中任意一项所述差分升级包的生成方法。
9.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~6中任意一项所述差分升级包的生成方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811454112.9A CN111258620B (zh) | 2018-11-30 | 2018-11-30 | 差分升级包的生成方法、装置和设备 |
PCT/CN2019/112870 WO2020108183A1 (zh) | 2018-11-30 | 2019-10-23 | 差分升级包的生成方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811454112.9A CN111258620B (zh) | 2018-11-30 | 2018-11-30 | 差分升级包的生成方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258620A CN111258620A (zh) | 2020-06-09 |
CN111258620B true CN111258620B (zh) | 2022-02-22 |
Family
ID=70854305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811454112.9A Active CN111258620B (zh) | 2018-11-30 | 2018-11-30 | 差分升级包的生成方法、装置和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111258620B (zh) |
WO (1) | WO2020108183A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111970161B (zh) * | 2020-09-21 | 2021-07-13 | 浙江大学 | 一种基于地址预测的物联网应用差分升级方法 |
CN114691182A (zh) * | 2020-12-28 | 2022-07-01 | 北京三快在线科技有限公司 | 文件传输方法、版本升级方法及装置 |
CN112732318A (zh) * | 2021-01-12 | 2021-04-30 | 武汉光庭信息技术股份有限公司 | 一种单片机固件升级方法 |
CN112905221A (zh) * | 2021-02-20 | 2021-06-04 | 百度在线网络技术(北京)有限公司 | 一种版本回退方法、装置、电子设备及存储介质 |
CN114518897A (zh) * | 2022-04-20 | 2022-05-20 | 北京智芯微电子科技有限公司 | 通信模块远程升级方法及系统 |
CN117369842A (zh) * | 2022-06-30 | 2024-01-09 | 中兴通讯股份有限公司 | 系统更新文件配置方法、系统更新方法、装置及存储介质 |
CN115695570B (zh) * | 2022-10-26 | 2024-05-24 | 深圳市联影高端医疗装备创新研究院 | 医学影像扫描协议的转换方法、装置、设备和存储介质 |
CN116820525B (zh) * | 2023-08-24 | 2024-01-26 | 新华三技术有限公司 | 组件升级方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693145A (zh) * | 2012-05-31 | 2012-09-26 | 红石阳光(北京)科技有限公司 | 用于嵌入式系统的差分升级方法 |
CN104932909A (zh) * | 2014-03-17 | 2015-09-23 | 中兴通讯股份有限公司 | 一种终端软件升级方法及装置 |
CN105335182A (zh) * | 2014-08-06 | 2016-02-17 | 中兴通讯股份有限公司 | 一种实现升级包制作的方法及装置 |
CN105700926A (zh) * | 2016-01-14 | 2016-06-22 | 青岛海信电器股份有限公司 | 差分升级包制作方法及装置、系统差分升级方法及装置 |
US10048959B2 (en) * | 2014-05-30 | 2018-08-14 | Guangzhou Ucweb Computer Technology Co., Ltd. | Method and apparatus for incremental upgrade |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461593A (zh) * | 2013-09-18 | 2015-03-25 | 中兴通讯股份有限公司 | 差分升级包的制作方法及装置 |
CN105278993B (zh) * | 2015-10-27 | 2018-10-19 | 深圳市创维软件有限公司 | 一种基于Linux系统的驱动模块升级方法及装置 |
CN105930197A (zh) * | 2016-06-28 | 2016-09-07 | 乐视控股(北京)有限公司 | 一种软件升级的方法及电子设备 |
CN106371838B (zh) * | 2016-08-31 | 2019-10-18 | 福建联迪商用设备有限公司 | 一种维护软件包依赖关系的方法及系统 |
-
2018
- 2018-11-30 CN CN201811454112.9A patent/CN111258620B/zh active Active
-
2019
- 2019-10-23 WO PCT/CN2019/112870 patent/WO2020108183A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693145A (zh) * | 2012-05-31 | 2012-09-26 | 红石阳光(北京)科技有限公司 | 用于嵌入式系统的差分升级方法 |
CN104932909A (zh) * | 2014-03-17 | 2015-09-23 | 中兴通讯股份有限公司 | 一种终端软件升级方法及装置 |
US10048959B2 (en) * | 2014-05-30 | 2018-08-14 | Guangzhou Ucweb Computer Technology Co., Ltd. | Method and apparatus for incremental upgrade |
CN105335182A (zh) * | 2014-08-06 | 2016-02-17 | 中兴通讯股份有限公司 | 一种实现升级包制作的方法及装置 |
CN105700926A (zh) * | 2016-01-14 | 2016-06-22 | 青岛海信电器股份有限公司 | 差分升级包制作方法及装置、系统差分升级方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020108183A1 (zh) | 2020-06-04 |
CN111258620A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111258620B (zh) | 差分升级包的生成方法、装置和设备 | |
CN110058873B (zh) | 应用页面更新方法、装置、设备和存储介质 | |
CN111212121B (zh) | 一种用于物联网设备的空中固件升级方法及系统 | |
US8365160B2 (en) | Method and system for generating a reverse binary patch | |
US8055096B2 (en) | Method and system for incremental patching of binary files | |
US20180203942A1 (en) | Method for reading and writing data and distributed storage system | |
US20130066901A1 (en) | Hash-based file comparison | |
CN106897103B (zh) | 一种移动端网络游戏版本快速热更新的方法 | |
CN106445643B (zh) | 克隆、升级虚拟机的方法及设备 | |
CN109993298B (zh) | 用于压缩神经网络的方法和装置 | |
US9311079B2 (en) | Parallel development of a software system | |
CN111221682B (zh) | 一种存储系统镜像的方法 | |
CN109976743B (zh) | 一种代码提示的方法及装置 | |
CN111596945B (zh) | 嵌入式系统动态多分区固件的差分升级方法 | |
CN107798332B (zh) | 一种用户行为预测方法及装置 | |
WO2019041891A1 (zh) | 升级包的生成方法及装置 | |
CN114579168A (zh) | 代码更新方法、装置、电子设备和计算机可读存储介质 | |
CN108694049B (zh) | 一种更新软件的方法和设备 | |
CN108664255B (zh) | 一种软件升级方法及装置 | |
CN113760312A (zh) | 基站数据升级方法、基站和计算机可读介质 | |
CN111488483A (zh) | 曲库更新方法、装置、终端和非临时性计算机可读存储介质 | |
CN110874285B (zh) | 一种实现ext文件系统的可还原写操作的方法 | |
CN111400243B (zh) | 基于流水线服务的研发管理系统以及文件存储方法、装置 | |
CN114003174A (zh) | 一种纠删码存储方法、系统及电子设备 | |
CN111736895A (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 |