插件升级方法及装置与流程

文档序号:11215988
插件升级方法及装置与流程

本发明涉及通信工程技术,尤其涉及一种插件升级方法及装置。



背景技术:

随着android应用的功能越来越多,安装包就会越来越大,很多应用程序(Application,简称APP)都使用了插件机制。插件机制具有动态更新,不需要安装,减小主程序占用的存储空间等优点。

现有技术中插件的动态更新方法为:对服务器中的插件包中的Dalvik执行程序(Dalvik VM executes,简称DEX)文件的程序代码进行修改,从而增加功能和/或修复BUG,得到新的完整插件包,将新的完整插件包上传服务器作为插件的升级包。终端下载升级包,并采用升级包替换当前插件包,完成插件的升级。

但是,对于占用存储空间较大的插件,在BUG的数量较少或对功能的修改较少时,终端需要下载升级包来完成升级过程,而该升级包为完整的插件包,因此会造成更新速度慢及耗费用户流量的问题。



技术实现要素:

本发明提供一种插件升级方法及装置,以克服现有技术中升级包较大造成的插件升级速度慢及耗费用户流量的技术问题。

第一方面,本发明提供一种插件升级方法,应用于终端设备,所述终端设备中安装有第一插件,所述方法包括:

获取与所述第一插件对应的升级包;所述升级包包括差量文件和验证信息,所述差量文件包括所述第一插件和第二插件的差异信息,以及所述差异信息在所述第二插件的第一数据文件中的位置;其中,所述第二插件为所述第一插件对应的最新版本插件;

根据所述验证信息,对所述升级包进行验证,得到验证通过的结果;

根据所述升级包和所述第一插件进行升级,得到升级后的第一插件。

如上所述的方法,所述根据所述升级包和所述第一插件进行升级,得到升级后的第一插件,包括:

将所述第一插件的第二数据文件对应所述位置处的待更新信息替换为所述差异信息,得到第三数据文件;

根据所述第三数据文件,得到所述升级后的第一插件。

如上所述的方法,所述验证信息包括合法验证信息和第一匹配验证信息,所述合法验证信息包括第一验证信息和第二验证信息,所述根据所述验证信息,对所述升级包进行验证,得到验证通过的结果,包括:

采用MD5加密算法对所述差量文件加密,得到第一摘要信息;

判断所述第一摘要信息是否和所述第一验证信息相同,若是,则通过公钥解密对所述第二验证信息解密,得到第二摘要信息,若所述第一摘要信息和第二摘要信息相同,则确定所述升级包合法;

采用MD5加密算法对所述第二数据文件进行加密,得到第三摘要信息;

判断所述第三摘要信息与所述第一匹配验证信息是否相同,若是,则得到升级包验证通过的结果。

如上所述的方法,所述验证信息还包括:第二匹配验证信息,在所述根据所述第三数据文件,得到所述升级后的第一插件之前,还包括:

采用MD5加密算法对所述第三数据文件进行加密,得到第四摘要信息;

判断所述第四摘要信息与所述第二匹配验证信息是否相同,若是,则确定所述第三数据文件与所述升级包匹配。

如上所述的方法,所述获取与所述第一插件对应的升级包,包括:

向服务器发送查询请求,所述查询请求中包括所述第一插件的标识和版本信息,所述查询请求用于指示所述服务器查询是否存储有与所述第一插件对应的升级包;

相应地,获取与所述第一插件对应的升级包包括:

获取所述服务器在确定所述服务器中存储有所述第一插件对应的升级包时发送的所述升级包。

第二方面,本发明提供一种插件升级方法,包括:

获取差量文件,所述差量文件包括第一插件和第二插件的差异信息,以及所述差异信息在所述第二插件的第一数据文件中的位置,所述第二插件为所述第一插件对应的最新版本插件;

获取验证信息;所述验证信息用于在插件升级过程中验证升级包的合法性以及升级包是否与第一插件匹配;

将所述差量文件和所述验证信息发送至服务器,以使所述服务器根据所述差量文件和所述验证信息,生成所述第一插件的升级包,所述升级包用于所述第一插件的升级。

如上所述的方法,所述验证信息包括合法验证信息和第一匹配验证信息,所述获取验证信息包括:

采用MD5加密算法对所述差量文件加密,得到第一验证信息;

通过私钥加密对所述第一验证信息加密,得到第二验证信息;

采用MD5加密算法对第一插件的第二数据文件进行加密,得到第一匹配验证信息。

如上所述的方法,所述验证信息还包括:第二匹配验证信息,所述获取验证信息还包括:

采用MD5加密算法对第二插件的第一数据文件进行加密,得到所述第二匹配验证信息。

第三方面,本发明提供一种插件升级装置,包括:

升级包获取模块,所述升级包获取模块用于获取与所述第一插件对应的升级包;所述升级包包括差量文件和验证信息,所述差量文件包括所述第一插件和第二插件的差异信息,以及所述差异信息在所述第二插件的第一数据文件中的位置;其中,所述第二插件为所述第一插件对应的最新版本插件;

验证模块,所述验证模块用于根据所述验证信息,对所述升级包进行验证,得到验证通过的结果;

升级模块,所述升级模块用于根据所述升级包和所述第一插件进行升级,得到升级后的第一插件。

第四方面,本发明提供一种插件升级装置,包括:

第一获取模块,所述第一获取模块用于获取差量文件,所述差量文件包括第一插件和第二插件的差异信息,以及所述差异信息在所述第二插件的第一数据文件中的位置,所述第二插件为所述第一插件对应的最新版本插件;

第二获取模块,所述第二获取模块用于获取验证信息;所述验证信息用于在插件升级过程中验证升级包的合法性以及升级包是否与第一插件匹配;

发送模块,所述发送模块将所述差量文件和所述验证信息发送至服务器,以使所述服务器根据所述差量文件和所述验证信息,生成所述第一插件的升级包,所述升级包用于所述第一插件的升级。

本发明提供一种插件升级方法及装置,本发明的插件升级方法包括:获取与第一插件对应的升级包;升级包包括差量文件和验证信息,差量文件包括所述第一插件和第二插件的差异信息,以及差异信息在所述第二插件的第一数据文件中的位置;其中,第二插件为第一插件对应的最新版本插件;根据验证信息,对升级包进行验证,得到验证通过的结果;根据升级包和第一插件进行升级,得到升级后的第一插件。本发明的插件升级方法及装置,插件升级速度快且不耗费用户流量。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的应用场景图;

图2为本发明提供的插件升级方法的流程图一;

图3为本发明提供的差量文件示意图一;

图4为本发明提供的差量文件示意图二;

图5为本发明提供的差量文件示意图三;

图6为本发明提供的插件升级方法的流程图二;

图7为本发明提供的插件升级方法的流程图三;

图8为本发明提供的插件升级装置的实施例一的结构示意图;

图9为本发明提供的插件升级装置的实施例二的结构示意图;

图10为本发明提供的插件升级装置的实施例三的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明提供的一种可能的系统架构图。参见图1,本实施例提供的系统架构图包括服务器11和第一用户设备12和第二用户设备13。第一用户设备12和第二用户设备13例如均可以为手机、平板、电脑等设备。服务器11用于存储插件以及该插件对应的升级包。

第二用户设备13安装有至少一个应用程序,应用程序中包括至少一个插件,插件例如可以为搜狗输入程序中的皮肤插件。

第一用户设备12可以从服务器中获取插件,根据该插件生成升级包,该升级包可以对该插件进行升级。第一用户设备12将生成的升级包发送至服务器,由服务器进行存储,供第二用户设备13中的插件升级时调用。其中,为了解决插件升级速度慢及耗费用户流量的问题,第一用户设备12生成的升级包仅包含差量文件和验证信息,因此,第二用户设备从服务器获取的升级包仅包含差量文件和验证信息,由于该升级包包括差量文件,所以升级速度快,耗费流量少。

下面对本发明的插件升级方法及装置进行详细的说明。首先,通过图2所示实施例,对第一用户设备做升级包的过程进行详细说明。下述图2中的执行主体例如可以为上述图1中的第一用户设备12。

图2为本发明提供的插件升级方法的流程图一,如图2所示,应用于终端设备,本实施例的方法可以包括:

步骤S101、获取差量文件,差量文件包括第一插件和第二插件的差异信息,以及差异信息在第二插件的第一数据文件中的位置,第二插件为第一插件对应的最新版本插件;

步骤S102、获取验证信息,所述验证信息用于在插件升级过程中验证升级包的合法性以及升级包是否与第一插件匹配;

步骤S103、将差量文件和验证信息发送至服务器,以使服务器根据差量文件和验证信息,生成第一插件的升级包,升级包用于第一插件的升级。

具体地,本实施例中的第一插件为在服务器中备份的插件,不是安装在用户设备内的插件,第二插件为第一插件对应的最新版本插件,也就是说第二插件是为了增加第一插件的功能和/或修复第一插件的BUG,对第一插件的第一数据文件(也可称为第一DEX文件)的程序代码进行了修改,得到的插件。得到第二插件后,也将第二插件上传至服务器,存储在服务器中。

在生成本实施例中的升级包时,首先从服务器获取第一插件和第二插件。得到第一插件和第二插件后,对第一插件进行解压缩,得到第一插件的第二数据文件,对第二插件进行解压缩,得到第二插件的第一数据文件。其中,数据文件是指插件包中的DEX文件,在安卓系统中,为Andorid Dalvik执行程序文件。

采用BSDIFF差量工具,对比第一数据文件和第二数据文件,得到差量文件,差量文件包括第一插件和第二插件的差异信息,以及差异信息在第二插件的第一数据文件中的位置;第一数据文件和第二数据文件之间存在的差异可能有以下几种情况:(1)第一数据文件中包含数据A,第二数据文件不包含数据A,也就是说第二插件中新增加了数据A;(2)第一数据文件中不包含数据B,第二数据文件包含数据B,也就是说第二插件中删除了数据B;(3)第一数据文件中包含数据C,第二数据文件也包含数据C,但是第一数据文件中的数据C和第二数据文件中的数据C不相同,也就是说第二插件对数据C进行了修改。其中,数据A和数据C一定为差异数据,对于数据B,由于对数据B的操作是删除,也就是说数据B是没有作用的数据,因此,可以将数据B忽略,在差量文件中不体现,也可以将数据B被删除的操作信息记录在差量文件中。

图3为本发明提供的差量文件示意图一,参见图3,在差量文件中,位置a处对应新增的数据A的信息,位置c处对应修改后的数据C的信息,位置b处对应数据B被删除的操作信息,位置a、b、c均为第一数据文件中的位置。

图4为本发明提供的差量文件示意图二,参见图4,在差量文件中,位置a处对应新增的数据A的信息,位置c处对应修改后的数据C的信息,位置a、b均为第一数据文件中为位置。

图5为本发明提供的差量文件示意图三,参见图5,位置a处对应新增的数据A的信息,位置c处对应修改后的数据C的信息,位置b处为空数据,位置a、b、c均为第一数据文件中的位置。

在得到了差量文件后,接着获取验证信息,验证信息用于在终端用户更新插件时,验证升级包是否被篡改或者升级包与用户设备中安装的第一插件是否匹配,具体过程为:验证信息包括合法验证信息、第一匹配信息和第二匹配信息,合法验证信息包括第一验证信息和第二验证信息;采用MD5加密算法对差量文件加密,得到第一验证信息;通过私钥加密对第一验证信息加密,得到第二验证信息;采用MD5加密算法对第一插件的第二数据文件进行加密,得到第一匹配验证信息;采用MD5加密算法对第二插件的第一数据文件进行加密,得到第二匹配验证信息。

验证信息的获取,保证了升级包的安全性,以及避免了升级包与待升级的第一插件不对应造成的升级错误的现象发生。

在得到了差量文件和各验证信息后,将差量文件和验证信息发送至服务器,以使服务器根据差量文件和验证信息,生成第一插件的升级包,升级包用于第一插件的升级。即服务器将差量文件和各验证信息压缩,得到第一插件的升级包,用于对用户设备中的第一插件进行升级。

第一插件的升级包采用第一插件的版本信息进行标识,以便在用户设备进行第一插件升级时可以下载正确的升级包。

本实施例中的生成的升级包只包括差量文件和验证信息,升级包占用的存储空间小,用户下载的速度快,使用的流量较小,且升级的过程中,只需要将差量文件和第二数据文件比较即可,升级速度快。

本实施例的插件升级方法包括:获取差量文件,差量文件包括第一插件和第二插件的差异信息,以及差异信息在第二插件的第一数据文件中的位置,第二插件为第一插件对应的最新版本插件;获取验证信息;将差量文件和验证信息发送至服务器,以使服务器根据差量文件和验证信息,生成第一插件的升级包,升级包用于第一插件的升级。本实施例的插件升级方法,插件升级速度快且不耗费用户流量。

在采用上述的方法得到升级包后,供用户设备对第一插件进行升级时使用。

其次,下面采用具体的实施例,对用户设备的插件升级方法进行详细说明。本领域技术人员可以理解,该升级包为上述生成的升级包;以下实施例的执行主体可为图1中所示的第二用户设备13.

图6为本发明提供的插件升级方法的流程图二。如图6所示,本实施例的方法可以包括:

步骤S601、获取与第一插件对应的升级包;升级包包括差量文件和验证信息,差量文件包括第一插件和第二插件的差异信息,以及差异信息在第二插件的第一数据文件中的位置;其中,第二插件为第一插件对应的最新版本插件;

步骤S602、根据验证信息,对升级包进行验证,得到验证通过的结果;

步骤S603、根据升级包和第一插件进行升级,得到升级后的第一插件。

具体地,本实施例中的第一插件为安装在用户设备内的第一插件。

在用户设备侧,当第一插件对应的主程序被启动后,用户设备向服务器发送查询请求,查询请求中包括第一插件的标识和版本信息,查询请求用于指示服务器查询是否存储有与第一插件对应的升级包;服务器接收到查询请求后,根据第一插件的标识和版本信息进行查询,若服务器查询到存储有与第一插件对应的升级包,则将与第一插件对应的升级包发送至用户设备,用户设备接收服务器发送的与第一插件对应的升级包,进行后续的升级过程。服务器在查询是否存储有与第一插件对应的升级包时,查询是否存在标识与第一插件的版本信息相同的升级包。

用户设备接收的服务器发送的升级包包括:差量文件和验证信息,差量文件包括第一插件和第二插件的差异信息,以及差异信息在第二插件的第一数据文件中的位置;其中,第二插件为第一插件对应的最新版本插件。

但是在升级包下载的过程中,升级包有可能会被篡改,因此,在获取到升级包后,需要对升级包进行验证,验证主要包括:验证升级包是否合法以及验证升级包是否与第一插件匹配;若验证结果为通过,则根据升级包和第一插件进行升级,得到升级后的第一插件。其中,根据差量文件包括的信息不同,步骤“根据升级包和第一插件进行升级,得到升级后的第一插件”的具体方法有所差异。若差量文件为图4或图5所示的形式,则根据升级包和第一插件进行升级,得到升级后的第一插件的具体方法,包括:将第一插件的第二数据文件对应位置处的待更新信息替换为差异信息,得到第三数据文件,根据第三数据文件,得到升级后的第一插件。

更为具体地,若差量文件为图4中所示的形式,获取上述第三数据文件的过程为:查找到第二数据文件中的a位置,在a位置处添加数据A信息,查找到第二数据文件中的c位置,将c位置处的信息替换为修改后的数据C信息,得到第三数据文件;查找到第二数据文件中的b位置,将b位置处的信息替换为空信息,即将b位置处的信息删除,若差量文件为图5中所示的形式,获取第三数据文件的过程为:查找到第二数据文件中的a位置,在a位置处添加数据A信息,查找到第二数据文件中的c位置,将c位置处的信息替换为修改后的数据C信息,得到第三数据文件。其中,本实施例中的第二数据文件是在用户设备验证升级包时得到的,具体为:用户设备获取第一插件,对第一插件解压,得到第二数据文件。

此外,若差量文件为图3所示的形式,获取第三数据文件的过程:查找到第二数据文件中的a位置,在a位置处添加数据A信息,查找到第二数据文件中的c位置,将c位置处的信息替换为修改后的数据C信息,查找到第二数据文件中的b位置,根据差量文件b位置处对应的删除操作信息,对第一插件中b位置处的原有信息进行删除操作,得到第三数据文件。

升级包中包括的验证信息还包括:第二匹配验证信息,相应地,在根据第三数据文件,得到升级后的第一插件之前,还包括以下步骤:

采用MD5加密算法对第三数据文件进行加密,得到第四摘要信息;判断第四摘要信息与第二匹配验证信息是否相同,若是,则确定第三数据文件与升级包匹配。

在确定了第三数据文件与升级包匹配后,采用第三数据文件替换获取的升级前的第一插件中的第二数据文件,得到升级后的第一插件。

在得到升级后的第一插件后,用户设备判断第一插件对应的主程序是否在运行,若是,则等下次第一插件对应的主程序启动时,采用升级后的第一插件覆盖升级前的第一插件,若否,则直接将升级后的第一插件覆盖升级前的第一插件,也就是将用户设备原有的第一插件删除。

本实施例中获取的升级包只包括差量文件和验证信息,升级包占用的存储空间小,用户下载的速度快,使用的流量较小,且升级的过程中,只是将差量文件和第二数据文件比较,升级速度快。

本实施例的插件升级方法包括:获取与第一插件对应的升级包;升级包包括差量文件和验证信息,差量文件包括所述第一插件和第二插件的差异信息,以及差异信息在所述第二插件的第一数据文件中的位置;其中,第二插件为第一插件对应的最新版本插件;根据验证信息,对升级包进行验证,得到验证通过的结果;根据升级包和第一插件进行升级,得到升级后的第一插件。本实施例的插件升级方法,插件升级速度快且不耗费用户流量。

图7为本发明提供的插件升级方法的流程图三,如图7所示,本实施例的方法为上一实施例中验证升级包的过程,本实施例的方法包括:

步骤S701、采用MD5加密算法对差量文件加密,得到第一摘要信息;

步骤S702、判断第一摘要信息是否和第一验证信息相同,若是,则通过公钥解密对第二验证信息解密,得到第二摘要信息,若第一摘要信息和第二摘要信息相同,则确定升级包合法;

步骤S703、采用MD5加密算法对第二数据文件进行加密,得到第三摘要信息;

步骤S704、判断第三摘要信息与第一匹配验证信息是否相同,若是,则得到验证通过的结果。

具体地,本实施例中的差量文件为下载的升级包中包括的差量文件,采用MD5加密算法对差量文件加密,得到第一摘要信息。由于第一验证信息为对在生成升级包的过程中(图1所示的方法实施例)得到的差量文件采用MD5加密得到的信息,若升级包没有被篡改,则第一摘要信息应该与第一验证信息相同。若第一摘要信息与第一验证信息相同,则通过公钥解密对第二验证信息解密,得到第二摘要信息。由于第二验证信息是为对在生成升级包的过程中(图1所示的方法实施例)第一验证信息私钥加密后得到的,若升级包没有被篡改,则第一摘要信息和第二摘要信息相同,从而确定升级包合法。

在确定升级包合法后,则验证用户设备获取的第一插件是否与升级包匹配,具体过程为:采用MD5加密算法对第二数据文件进行加密,得到第三摘要信息;判断第三摘要信息与第一匹配验证信息是否相同,因为第一匹配验证信息为对在生成升级包的过程中(图1所示的方法实施例)第一插件(服务器中备份的第一插件)的第二数据文件进行MD5加密得到的,若升级包没有被篡改,则第一匹配验证信息应该与第三摘要信息相同。在确定第一匹配验证信息与第三摘要信息相同后,说明第一插件与升级包匹配,得到升级包验证通过的结果。

本实施例的插件,通过对升级包的验证,保证了升级包为待升级的第一插件对应的升级包,避免了升级包与待升级的第一插件不对应造成的升级错误现象的发生。

图8为本发明提供的插件升级装置实施例一的结构示意图,如图8所示,本实施例的装置可以包括:升级包获取模块81、验证模块82和升级模块83,升级包获取模块81用于获取与第一插件对应的升级包;升级包包括差量文件和验证信息,差量文件包括第一插件和第二插件的差异信息,以及差异信息在第二插件的第一数据文件中的位置;其中,第二插件为第一插件对应的最新版本插件;验证模块82用于根据验证信息,对升级包进行验证,得到验证通过的结果;升级模块83用于根据升级包和第一插件进行升级,得到升级后的第一插件。

其中,验证信息包括第一验证信息、第一验证信息、第一匹配验证信息和第二匹配信信息;升级模块具体用于将第一插件的第二数据文件对应位置处的待更新信息替换为差异信息,得到第三数据文件;采用MD5加密算法对第三数据文件进行加密,得到第四摘要信息;判断第四摘要信息与第二匹配验证信息是否相同,若是,则确定第三数据文件与升级包匹配;根据第三数据文件,得到升级后的第一插件。

验证模块82具体用于,采用MD5加密算法对差量文件加密,得到第一摘要信息;判断第一摘要信息是否和第一验证信息相同,若是,则通过公钥解密对第二验证信息解密,得到第二摘要信息,若第一摘要信息和第二摘要信息相同,则确定升级包合法;采用MD5加密算法对第二数据文件进行加密,得到第三摘要信息;判断第三摘要信息与第一匹配验证信息是否相同,若是,则得到升级包验证通过的结果。

本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图9为本发明提供的插件升级装置实施例二的结构示意图,如图9所示,本实施例的装置在图8所示装置结构的基础上,进一步地,还可以包括发送模块84,发送模块84用于向服务器发送查询请求,查询请求中包括第一插件的标识和版本信息,查询请求用于指示服务器查询是否存储有与第一插件对应的升级包;升级包获取模块81具体用于获取服务器在确定服务器中存储有第一插件对应的升级包时发送的升级包。

图10为本发明提供的插件升级装置实施例三的结构示意图,如图10所示,本实施例的插件升级装置包括第一获取模块91、第二获取模块92和发送模块93,第一获取模块91用于获取差量文件,差量文件包括第一插件和第二插件的差异信息,以及差异信息在第二插件的第一数据文件中的位置,第二插件为第一插件对应的最新版本插件;第二获取模块92用于获取验证信息;发送模块93用于将差量文件和验证信息发送至服务器,以使服务器根据差量文件和验证信息,生成第一插件的升级包,升级包用于第一插件的升级。

验证信息包括第一验证信息、第一验证信息、第一匹配验证信息和第二匹配信信息;第二获取模块92具体用于采用MD5加密算法对差量文件加密,得到第一验证信息;通过私钥加密对第一验证信息加密,得到第二验证信息;采用MD5加密算法对第一插件的第二数据文件进行加密,得到第一匹配验证信息;采用MD5加密算法对第二插件的第一数据文件进行加密,得到第二匹配验证信息。

本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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