差分回退升级方法及装置与流程

文档序号:12596340阅读:338来源:国知局
差分回退升级方法及装置与流程

本发明涉及应用升级技术领域,尤其涉及一种差分回退升级方法及装置。



背景技术:

目前大厂商均未提供差分回退包,只有各个版本的升级包,而且这些升级包需要到各个厂商的网站上查找,并且各个版本的升级包占用内存比较大,需要将升级包从电脑拷贝到终端再做升级,操作复杂,过程麻烦,需要一定的技巧性,不利于用户体验。

而且,如果升级失败,无法直接进行版本回退,需要从网站下载回退包才能进行回退。



技术实现要素:

本发明的主要目的在于提供一种差分回退升级方法及装置,旨在解决升级失败后无法及时回退版本的问题。

为实现上述目的,本发明提供的一种差分回退升级方法,该方法包括:

获取升级包和与所述升级包对应的回退信息;

根据获取到的所述回退信息生成差分回退包;

根据获取到的所述升级包对待升级应用进行升级;

当升级失败时,根据生成的所述差分回退包对所述待升级应用进行回退操作。

优选地,在所述回退信息包括路径信息时,所述根据获取到的所述回退信息生成差分回退包的步骤包括:

解析获取到的所述回退信息,根据所述回退信息获取路径信息;

根据所述路径信息生成所述差分回退包。

优选地,所述根据所述路径信息生成所述差分回退包的步骤包括:

在所述待升级应用对应的应用数据中提取与所述路径信息对应的应用数据段;

对获取的所述应用数据段封装并进行数字签名,以生成所述差分回退包。

优选地,所述根据获取到的所述回退信息生成差分回退包的步骤和所述根据获取到的所述升级包对待升级应用进行升级的步骤之间还包括:

存储所述差分回退包。

优选地,所述根据生成的所述差分升级包对被待升级应用进行升级的步骤之后还包括:

在升级成功后,接收回退指令;

提取与接收到的所述回退指令对应的所述差分回退包;

根据提取到的所述差分回退包对升级后的所述待升级应用进行回退操作。

本发明还提出一种差分回退升级装置,包括:

获取模块,用于获取升级包和与所述升级包对应的回退信息;

生成模块,用于根据获取到的所述回退信息生成差分回退包;

升级模块,用于根据获取到的所述升级包对待升级应用进行升级;

第一回退模块,用于当升级失败时,根据生成的所述差分回退包对所述待升级应用进行回退操作。

优选地,所述生成模块包括:

解析单元,用于解析获取到的所述回退信息,根据所述回退信息获取路径信息;

生成单元,用于根据所述路径信息生成所述差分回退包。

优选地,所述生成单元包括:

提取子单元,用于在所述待升级应用对应的应用数据中提取与所述路径信息对应的应用数据段;

压缩签名子单元,用于对获取的所述应用数据段封装并进行数字签名,以生成所述差分回退包。

优选地,该差分回退升级装置还包括:存储模块,用于存储所述差分回退包。

优选地,该差分回退升级装置还包括:

接收模块,用于在升级成功后,接收回退指令;

提取模块,用于提取与接收到的所述回退指令对应的所述差分回退包;

第二回退模块,用于根据提取到的所述差分回退包对升级后的所述待升级应用进行回退操作。

本发明提出的差分回退升级方法及装置,利用完整的升级数据包获取差分升级包和差分回退脚本,在进行升级之前,根据差分回退脚本制作差分回退包,对其进行数字签名并保存,以便于在升级失败后进行回退;而且在升级成功之后如果用户不想使用升级后的版本,可以随时调用生成的差分回退包回退到升级之前的版本。

附图说明

图1为本发明差分回退升级方法的第一实施例的流程图;

图2为图1中步骤S20的细化流程示意图;

图3为图2中步骤S202的细化流程示意图;

图4为本发明差分回退升级方法的第二实施例的流程图;

图5为本发明差分回退升级装置的第一实施例的功能模块示意图;

图6为图5中生成模块的细化功能模块示意图;

图7为图5中生成单元的细化功能模块示意图;

图8为本发明差分回退升级装置的第二实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种差分回退升级方法。

参照图1所示,为本发明差分回退升级方法第一实施例的流程图。

在第一实施例中,差分回退升级方法包括:

步骤S10,获取升级包和与所述升级包对应的回退信息;

在服务器上通过升级包制作工具将旧版本应用的数据与新版本应用的数据进行对比分析,检测是否有差异,当检测不到版本差异时,继续获取新版本应用与旧版本应用对比分析;当检测到差异时,根据比对结果生成升级包文件,与此同时,根据对比的结果,生成回退信息,可以在利用升级包制作工具生成升级包的时候将回退信息打包到升级包中,也可以将回退信息单独保存并且与升级包建立关联,例如可以以相同的版本号进行命名,或者在回退信息中添加标示符等方法。

需要说明的是,此处的升级包可以是完整的升级数据包,也可以是差分升级包,也可以生成这两种升级包,以供用户在需要升级的时候根据需要进行选择;而且,此处的升级可以是对终端的操作系统进行升级,也可以是对终端上的应用软件升级,其原理相同。

完整版的数据包占用内存大且升级速度慢,而差分升级包是将新版本文件与旧版本应用的数据做差分,得到更新的补丁文件,例如旧版本的文件有5M,新版的文件有8M,更新的部分则可能只有3M左右(这里需要说明的是,差分包大小并不是简单的相减,其实需要包含一些上下文相关的东西),使用差分升级的好处显而易见,用户不需要下载完整的8M文件,只需要下载更新部分就可以,而更新部分可能只有3-4M,可以很大程度上减少流量的损失,因此本实施例中优选生成差分升级包进行升级。

本实施例中该回退信息中包含有新、旧版本应用的差异数据对应的旧版本数据段的路径信息,例如“xx/xx/filename”,由于差异文件一般情况下包括多个,所以回退信息的内容可以为:

“rollback:

“xx/xx/filename1”

“xx/xx/filename2”

“xx/xx/filename3”

……”

在其他的实施例中也可以其他的方式定义回退信息,例如回退信息可以包括新、旧版本文件的差异文件对应的旧版本文件的标识信息,以供后续根据标志信息提取相应的数据段。

步骤S20,根据获取到的所述回退信息生成差分回退包。

如图2所示,步骤S20包括如下细化步骤:

步骤S201解析获取到的所述回退信息,根据所述回退信息获取路径信息。

步骤S202,根据所述路径信息生成所述差分回退包。如图3所示,步骤S202包括如下细化步骤:

步骤S211,在所述待升级应用对应的应用数据中提取与所述路径信息对应的应用数据段。

步骤S212,对获取的所述应用数据段封装并进行数字签名,以生成所述差分回退包。

由于回退信息中包含多个对应的应用数据段的路径信息,按照多个回退子命令的顺序从终端系统文件中获取对应的应用数据段,直至回退信息行执行完毕,将获取到的全部应用数据段封装,封装完成后,可以将其压缩成zip格式的文件或者以其他的压缩格式进行压缩,根据服务器下发的签名的key或者终端预置的签名key,针对回退包做数字签名,数字签名为惯用技术手段,在此不再赘述。

步骤S30,根据获取到的所述升级包对待升级应用进行升级。

步骤S40,当升级失败时,根据生成的所述差分回退包对所述待升级应用进行回退操作。

在进行升级时可能会出现升级失败,这时会自动调取差分回退包进行回退,使系统回退到原始状态。

本实施例提出的差分回退升级方法,利用新旧版本应用的数据进行对比,获取升级包和差分信息,在进行升级之前,根据差分信息制作差分回退包,对其进行数字签名并保存,以便于在升级失败后进行回退。

参照图4,基于第一实施例提出本发明差分回退升级方法第二实施例,在本实施例中,步骤S40之后,该方法还包括:

步骤S50,存储所述差分回退包。

步骤S60,在升级成功后,接收回退指令。

步骤S70,提取与接收到的所述回退指令对应的所述差分回退包。

步骤S80,根据提取到的所述差分回退包对升级后的所述待升级应用进行 回退操作。

将差分回退包保存在终端,以供用户使用。例如在成功升级之后,如果出现系统报错、应用报错的情况,用户不想使用当前版本,想回退版本,则可直接选择差分回退包进行版本回退,无需再从服务器下载完整的回退包,可以达到快速回退的目的。此时可以为用户提供选择界面,用户基于该选择界面发出回退指令,当接收到用户发出的回退指令后,提取与接收到的回退指令对应的所述差分回退包,对待升级应用进行版本回退。

本实施例提出的差分回退升级方法,在差分升级完成之后如果用户不想使用升级后的版本,可以随时调用之前制作的差分回退包回退到升级之前的版本。

本发明还提出一种差分回退升级装置。

参照图5,图5为本发明差分回退升级装置第一实施例的示意图。

在该实施例中,差分回退升级装置包括:

获取模块10,用于获取升级包和与所述升级包对应的回退信息。

在服务器上通过升级包制作工具将旧版本应用的数据与新版本应用的数据进行对比分析,检测是否有差异,当检测不到版本差异时,继续获取新版本应用与旧版本应用对比分析;当检测到差异时,根据比对结果生成升级包文件,与此同时,根据对比的结果,生成回退信息,可以在利用升级包制作工具生成升级包的时候将回退信息打包到升级包中,也可以将回退信息单独保存并且与升级包建立关联,例如可以以相同的版本号进行命名,或者在回退信息中添加标示符等方法。

需要说明的是,此处的升级包可以是完整的升级数据包,也可以是差分升级包,也可以生成这两种升级包,以供用户在需要升级的时候根据需要进行选择。

完整版的数据包占用内存大且升级速度慢,而差分升级包是将新版本文件与旧版本应用的数据做差分,得到更新的补丁文件,例如旧版本的文件有5M,新版的文件有8M,更新的部分则可能只有3M左右(这里需要说明的是,差分包大小并不是简单的相减,其实需要包含一些上下文相关的东西),使用 差分升级的好处显而易见,用户不需要下载完整的8M文件,只需要下载更新部分就可以,而更新部分可能只有3-4M,可以很大程度上减少流量的损失,因此本实施例中优选生成差分升级包进行升级。

本实施例中该回退信息中包含有新、旧版本应用的差异数据对应的旧版本数据段的路径信息,例如“xx/xx/filename”,由于差异文件一般情况下包括多个,所以回退信息的内容可以为:

“rollback:

“xx/xx/filename1”

“xx/xx/filename2”

“xx/xx/filename3”

……”

在其他的实施例中也可以其他的方式定义回退信息,例如回退信息可以包括新、旧版本应用的差异数据对应的旧版本数据的标识信息,以供后续根据该标识信息提取相应的文件。

生成模块20,用于根据获取到的所述回退信息生成差分回退包。

如图2所示,生成模块20包括以下单元:

解析单元210,用于于解析获取到的所述回退信息,根据所述回退信息获取路径信息。

在获取模块10获取到回退信息10之后,解析单元210对回退信息中的数据进行分析,从中获取其包含的升级包对应的原始版本文件的路径信息。

生成单元220,用于根据所述路径信息生成所述差分回退包。

生成单元220根据解析单元210获取到的路径信息生成差分回退包,其具体过程如下:

如图3所示,生成单元220包括如下子单元:

提取子单元221,用于在所述待升级应用对应的应用数据中提取与所述路径信息对应的应用数据段。

压缩签名子单元222,用于对获取的所述应用数据段封装并进行数字签名,以生成所述差分回退包。

由于获取模块10所获取到的回退信息中包含多个对应的应用数据段的路径信息,提取子单元221按照多个回退子命令的顺序从终端系统文件中获取 对应的应用数据段,直至回退信息行执行完毕,压缩签名子单元222将获取到的全部应用数据段封装压缩,封装压缩完成后,压缩签名子单元222根据服务器下发的签名的key或者终端预置的签名key,针对回退包做数字签名,数字签名为惯用技术手段,在此不再赘述。

升级模块30,用于根据获取到的所述升级包对待升级应用进行升级。

第一回退模块40,当升级失败时,根据生成的所述差分回退包对所述待升级应用进行回退。

在升级模块30对待升级应用进行升级时可能会出现升级失败,这时第一回退模块40会自动调取差分回退包对待升级应用进行回退,使系统回退到升级之前的版本。

本实施例提出的差分回退升级装置,利用完整的升级数据包获取差分升级包和差分回退脚本,在进行升级之前,根据差分回退脚本制作差分回退包,对其进行数字签名并保存,以便于在应用升级失败后进行回退。

参照图8,基于第一实施例提出本发明差分回退升级装置第二实施例,在本实施例中,该装置还包括:

存储模块50,用于存储所述差分回退包。

接收模块60,用于在升级成功后,接收回退指令。

提取模块70,用于提取与接收到的所述回退指令对应的所述差分回退包。

第二回退模块80,用于根据提取到的所述差分回退包对升级后的所述待升级应用进行回退操作。

存储模块50将生成的差分回退包保存在终端,以供用户后续使用。例如在成功升级之后,如果出现系统报错、应用报错的情况,用户不想使用当前版本,想回退版本,则可直接选择差分回退包进行版本回退,无需再从服务器下载完整的回退包,可以达到快速回退的目的。此时可以为用户提供选择界面,用户基于该选择界面发出回退指令,当接收模块60接收到用户发出的回退指令后,提取模块70提取与接收到的回退指令对应的所述差分回退包,第二回退模块80根据提取到的回退包对升级后的待升级应用进行版本回退。

需要说明的是,第一回退模块40和第二回退模块80可以是同一个模块。

本实施例提出的差分升级装置在差分升级成功之后,如果用户不想使用升级后的应用版本,可以随时调用之前制作的差分回退包回退到升级之前的版本。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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