专利名称:数据更新方法、装置、终端设备及计算机可读存储介质
专利类型:实用新型专利
专利申请号:CN201980099526.0
专利申请(专利权)人:深圳市欢太科技有限公司,OPPO广东移动通信有限公司
权利人地址:广东省深圳市南山区粤海街道高新南一道13号赋安科技大厦B座207-2
专利发明(设计)人:卢阳
专利摘要:本申请公开一种数据更新方法、装置、终端设备及计算机可读存储介质,该数据更新方法包括:若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行校验,所述临时文件的全部数据为更新文件的部分数据;若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址;根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,以实现所述更新文件的续传;若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新。通过上述方法,减少了CDN和用户的流量开销,以及减少了用户主动更新应用A的更新时间。
主权利要求:
1.一种数据更新方法,其特征在于,包括:
若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行完整性校验,所述临时文件的全部数据为更新文件的部分数据;
若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址;
根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,以实现所述更新文件的续传;
若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新;
其中,在所述若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行校验之前,包括:获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值,所述校验值的个数大于或等于2,且所述校验值的数量与所述更新文件划分的段落个数相同;
对应地,所述对通过执行自动更新操作得到的临时文件进行完整性校验,具体包括:根据所述长度值对通过执行自动更新操作得到的临时文件分段;
根据所述校验值对分段后的所述临时文件进行分段校验,包括:将所述临时文件不同段落的校验值与所述更新文件对应的不同段落的校验值进行比较确定校验结果。
2.如权利要求1所述的数据更新方法,其特征在于,所述若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址,具体包括:若分段校验全部通过,则根据所述临时文件包括的最后一个段落的数据确定将要在所述更新文件下载的数据;
若分段校验部分通过,则根据所述临时文件包括的第一个校验不通过的段落的数据确定将要在所述更新文件下载的数据。
3.如权利要求2所述的数据更新方法,其特征在于,所述获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值,具体包括:若检测到存在更新文件且更新方式为自动更新,则自动获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值;
在所述自动获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值之后,包括:自动获取临时文件。
4.如权利要求2所述的数据更新方法,其特征在于,所述数据更新方法还包括:若分段校验全部不通过,则删除所述临时文件,重新下载所述更新文件。
5.如权利要求1所述的数据更新方法,其特征在于,若执行自动更新操作得到的更新文件存储在第一文件夹,执行主动更新操作得到的更新文件存储在第二文件夹,则在所述若校验通过之后,包括:将所述临时文件从所述第一文件夹拷贝至所述第二文件夹。
6.如权利要求5所述的数据更新方法,其特征在于,所述将所述临时文件从所述第一文件夹拷贝至所述第二文件夹,包括:若所述第一文件夹的属性为隐藏,所述第二文件夹的属性为显示,则将所述临时文件从所述第一文件夹拷贝至所述第二文件夹。
7.如权利要求1所述的数据更新方法,其特征在于,在所述若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新之前,包括:将续传后的更新文件的大小与预先获取的更新文件的标准大小比较;
对应地,所述若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新,具体为:若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,则根据下载后的更新文件实现数据的更新。
8.如权利要求7所述的数据更新方法,其特征在于,所述若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,则根据下载后的更新文件实现数据的更新,包括:若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,则对续传后的更新文件进行校验,若校验通过,则根据下载后的更新文件实现数据的更新。
9.如权利要求1所述的数据更新方法,其特征在于,在所述接收到主动更新请求之后,包括:根据通过执行自动更新操作得到的临时文件与更新文件的比例确定比例值;
显示所述比例值。
10.一种数据更新装置,其特征在于,包括:
主动更新请求接收单元,用于若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行完整性校验,所述临时文件的全部数据为更新文件的部分数据;
起始数据的地址确定单元,用于若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址;
更新文件续传单元,用于根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,以实现所述更新文件的续传;
数据更新单元,用于若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新;
其中,所述数据更新装置还包括:
校验值获取单元,用于获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值,所述校验值的个数大于或等于2,且所述校验值的数量与所述更新文件划分的段落个数相同;
对应地,所述主动更新请求接收单元(21)中对通过执行自动更新操作得到的临时文件进行校验,具体用于:根据所述长度值对通过执行自动更新操作得到的临时文件分段;根据所述校验值对分段后的所述临时文件进行分段校验,包括:将所述临时文件不同段落的校验值与所述更新文件对应的不同段落的校验值进行比较确定校验结果。
11.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行完整性校验,所述临时文件的全部数据为更新文件的部分数据;
若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址;
根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,以实现所述更新文件的续传;
若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新;
其中,在所述若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行校验之前,包括:获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值,所述校验值的个数大于或等于2,且所述校验值的数量与所述更新文件划分的段落个数相同;
对应地,所述对通过执行自动更新操作得到的临时文件进行完整性校验,具体包括:根据所述长度值对通过执行自动更新操作得到的临时文件分段;
根据所述校验值对分段后的所述临时文件进行分段校验,包括:将所述临时文件不同段落的校验值与所述更新文件对应的不同段落的校验值进行比较确定校验结果。
12.如权利要求11所述的终端设备,其特征在于,在所述若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行校验之前,包括:获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值,所述校验值的个数大于或等于2,且所述校验值的数量与所述更新文件划分的段落个数相同;
对应地,所述对通过执行自动更新操作得到的临时文件进行校验,具体包括:根据所述长度值对通过执行自动更新操作得到的临时文件分段;
根据所述校验值对分段后的所述临时文件进行分段校验;
对应地,所述若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址,具体包括:若分段校验全部通过,则根据所述临时文件包括的最后一个段落的数据确定将要在所述更新文件下载的数据;
若分段校验部分通过,则根据所述临时文件包括的第一个校验不通过的段落的数据确定将要在所述更新文件下载的数据。
13.如权利要求12所述的终端设备,其特征在于,所述获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值,具体包括:若检测到存在更新文件且更新方式为自动更新,则自动获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值;
在所述自动获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值之后,包括:自动获取临时文件。
14.如权利要求12所述的终端设备,其特征在于,所述处理器执行所述计算机程序时还包括执行以下步骤:若分段校验全部不通过,则删除所述临时文件,重新下载所述更新文件。
15.如权利要求11所述的终端设备,其特征在于,若执行自动更新操作得到的更新文件存储在第一文件夹,执行主动更新操作得到的更新文件存储在第二文件夹,则在所述若校验通过之后,包括:将所述临时文件从所述第一文件夹拷贝至所述第二文件夹。
16.如权利要求15所述的终端设备,其特征在于,所述将所述临时文件从所述第一文件夹拷贝至所述第二文件夹,包括:若所述第一文件夹的属性为隐藏,所述第二文件夹的属性为显示,则将所述临时文件从所述第一文件夹拷贝至所述第二文件夹。
17.如权利要求11所述的终端设备,其特征在于,在所述若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新之前,包括:将续传后的更新文件的大小与预先获取的更新文件的标准大小比较;
对应地,所述若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新,具体为:若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,则根据下载后的更新文件实现数据的更新。
18.如权利要求17所述的终端设备,其特征在于,所述若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,则根据下载后的更新文件实现数据的更新,包括:若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,则对续传后的更新文件进行校验,若校验通过,则根据下载后的更新文件实现数据的更新。
19.如权利要求11所述的终端设备,其特征在于,在所述接收到主动更新请求之后,包括:根据通过执行自动更新操作得到的临时文件与更新文件的比例确定比例值;
显示所述比例值。
20.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的方法。 说明书 : 数据更新方法、装置、终端设备及计算机可读存储介质技术领域[0001] 本申请涉及数据更新技术领域,具体涉及数据更新方法、装置、终端设备及计算机可读存储介质。背景技术[0002] 应用分发软件(如软件商店)有两个主要功能,支持未下载应用的新下载和已安装应用的更新。其中,更新有两种方式实现:一是主动更新,二是自动更新。主动更新是指用户主动启动应用分发软件,其通过点击更新按钮以启动更新流程;而自动更新则无需用户交互,只要用户设置了自动更新开关,系统会定时检查终端设备上的应用是否有更新,若有更新,则自动发起下载并更新。[0003] 现有方法中,若主动更新的动作和自动更新的动作存在重叠,比如用户在应用自动更新的过程中发起了主动更新请求,则将取消自动更新的操作,以避免重复下载所造成的流量损耗,但该方法仍会造成用户和企业的内容分发网络(ContentDeliveryNetwork,CDN)的数据流量浪费,增加用户更新耗时。发明内容[0004] 本申请实施例的目的之一在于:提供一种数据更新方法、装置、终端设备及计算机可读存储介质,旨在解决现有的更新方法在更新应用时导致CDN的数据流量浪费,用户更新耗时增加的问题。[0005] 第一方面,提供了一种一种数据更新方法,包括:[0006] 若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行校验,所述临时文件的全部数据为更新文件的部分数据;[0007] 若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址;[0008] 根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,以实现所述更新文件的续传;[0009] 若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新。[0010] 第二方面,提供了一种数据更新装置,包括:[0011] 主动更新请求接收单元,用于若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行校验,所述临时文件的全部数据为更新文件的部分数据;[0012] 起始数据的地址确定单元,用于若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址;[0013] 更新文件续传单元,用于根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,以实现所述更新文件的续传;[0014] 数据更新单元,用于若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新。[0015] 第三方面,提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:[0016] 若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行校验,所述临时文件的全部数据为更新文件的部分数据;[0017] 若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址;[0018] 根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,以实现所述更新文件的续传;[0019] 若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新。[0020] 第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的方法。[0021] 第五方面,提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中所述的方法。附图说明[0022] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或示范性技术描述中所需要使用的附图作简单地介绍。[0023] 图1是本申请一实施例提供的一种数据更新方法的流程图;[0024] 图2是本申请另一实施例提供的一种数据更新装置的结构示意图;[0025] 图3是本申请另一实施例提供的一种终端设备的结构示意图。具体实施方式[0026] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。[0027] 应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。[0028] 还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。[0029] 如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。[0030] 在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。[0031] 本申请实施例提供的数据更新方法主要应用在主动更新和自动更新发生重叠时的场景。比如,若服务器的应用A存在更新文件,则安装在终端设备的应用A上将出现需要更新的标识,若该应用A为用户设置的自动更新应用,则终端设备的软件商店将在后台自动下载该应用A的更新文件。若在下载该应用A的更新文件的过程中,用户手动发起主动更新请求,则首先对已下载的部分更新文件‑‑‑‑即临时文件进行校验,若校验通过,再根据该临时文件下载未下载的更新文件,因此,无需重新下载已下载的临时文件,从而减少了CDN和用户的流量开销,以及减少了用户主动更新应用A的更新时间。[0032] 为了说明本申请所述的技术方案,以下结合具体附图及实施例进行详细说明。[0033] 图1示出了本申请实施例提供的一种数据更新方法的流程图,详述如下:[0034] 步骤S11,若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行校验,所述临时文件的全部数据为更新文件的部分数据;[0035] 本实施例中,若安装在终端设备的应用界面显示“更新”,或显示其他用于表示更新的标识,则表明该应用界面对应的应用需要更新。若该应用被设置为自动更新,则自动执行更新操作,以通过自动更新的方式获取该应用对应的更新文件,该更新文件存储在服务器中。在自动获取应用对应的更新文件时,若用户发出主动更新请求,则响应该主动更新请求,对已获取的临时文件进行校验。其中,这里的校验主要是对临时文件的完整性进行校验。[0036] 需要指出的是,若在执行自动更新操作时没有接收到主动更新请求,即通过自动更新的方式下载了整个更新文件,则将不再在应用界面显示“更新”,当然,若一开始是显示其他用于表示更新的标识,则通过自动更新的方式下载了整个更新文件后,将不再显示其他用于表示更新的标识。[0037] 步骤S12,若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址;[0038] 具体地,若对临时文件包括的数据校验通过,则确定通过校验的临时文件的数据长度L1,并将数据长度为L1+1的数据串中的最后一位数据所在的地址作为将要下载的起始数据在所述更新文件的地址。例如,假设更新文件的数据为:1111000,临时文件的数据为1111,则将“11110”中的“0”所在的地址作为将要下载的起始数据在更新文件的地址。[0039] 步骤S13,根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,以实现所述更新文件的续传;[0040] 具体地,存储更新文件的源地址可通过预先设定,或者,为了进一步保证获取的更新文件的源地址的准确性,可在执行自动更新操作时且在自动获取临时文件之前先获取更新文件的源地址,这样,当采用主动更新方式下载数据之前,先获取通过自动更新方式获取的更新文件的源地址,之后,再从该更新文件的源地址继续下载对应的数据。[0041] 步骤S14,若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新。[0042] 若下载更新文件成功,则根据该更新文件对相应应用的数据进行更新。[0043] 本申请实施例中,由于将要下载的起始数据在所述更新文件的地址是根据临时文件包括的数据确定,而临时文件是通过执行自动更新操作得到,因此,在接收到主动更新请求后,根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,相当于在更新方式从自动更新变为主动更新后,只需在临时文件的基础上继续下载更新文件未下载的部分即可,从而无需重新下载已下载的临时文件,减少了CDN和用户的流量开销,以及减少了用户主动更新应用A的更新时间。[0044] 在一些实施例中,为了实现对临时文件的有效校验,则需要预先将更新文件划分为至少2个段落,并确定划分的至少2个段落对应的校验值,其中,1个段落对应1个校验值。此时,在所述步骤S11之前,包括:[0045] 获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值,所述校验值的个数大于或等于2,且所述校验值的数量与所述更新文件划分的段落个数相同;其中,划分更新文件得到的至少2个段落对应的至少2个校验值作为用于对临时文件进行校验的校验值。[0046] 对应地,所述步骤S11中对通过执行自动更新操作得到的临时文件进行校验,具体包括:[0047] A1、根据所述长度值对通过执行自动更新操作得到的临时文件分段;具体地,根据划分更新文件得到的段落的长度值对临时文件包括的数据进行分段。需要指出的是,若更新文件划分后的不同段落对应不同的长度值,则在对临时文件进行分段的过程中,需要结合划分更新文件得到的段落的先后顺序确定对应的长度值的先后顺序。需要指出的是,若临时文件剩余未分段的数据的数据长度,小于更新文件划分的对应顺序段落的数据长度,则丢弃该临时文件剩余未分段的数据。例如,假设将更新文件的数据为1111000,预先将更新文件划分为3个段落:111;10;00;则首先将临时文件分段出数据长度与“111”相等的数据,若除了该“111”外,临时文件还包括其他数据,则继续从该临时文件分段出数据长度与“10”相等的数据,若临时文件没有其他数据,则停止分段,若临时文件仍剩余数据,但剩余数据的数据长度小于“00”对应的数据长度,则丢弃该临时文件的剩余数据。[0048] A2、根据所述校验值对分段后的所述临时文件进行分段校验;该步骤中,根据信息摘要算法(Message‑DigestAlgorithm,MD5)对更新文件的不同段落进行运算,得到不同段落对应的MD5值,而该不同段落对应的MD5值将作为该不同段落对应的校验值。具体地,根据不同段落的校验值分别对临时文件分段后的数据进行校验,例如,据MD5算法对临时文件的第1个段落数据进行运算,得到对应MD5值,将该MD5值与更新文件第1个段落对应的MD5值比较,若相同,则表明临时文件的第1个段落数据校验通过,若不相同,则表明临时文件的第1个段落数据校验不通过。[0049] 对应地,所述步骤S12,具体包括:[0050] B1、若分段校验全部通过,则根据所述临时文件包括的最后一个段落的数据确定将要下载的起始数据在所述更新文件的地址;具体地,根据临时文件包括的最后一个段落的数据(通常只需要最后一个数据)确定将要下载的起始数据在所述更新文件的地址。其中,这里最后一个段落是指排序在分段顺序最后的段落,该分段顺序是指对临时文件进行分段的顺序。[0051] B2、若分段校验部分通过,则根据所述临时文件包括的第一个校验不通过的段落的数据确定将要下载的起始数据在所述更新文件的地址。具体地,若分段校验部分通过,部分不通过,则只根据第一个校验不通过的段落的数据(通常只需要最后一个数据)确定将要下载的起始数据在更新文件的地址。在一些实施例中,为了提高校验速度,若判断出某个段落校验不通过,则不再对临时文件中该某个段落之后的其他段落进行校验。[0052] 在一些实施例中,所述获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值,具体包括:[0053] 若检测到存在更新文件且更新方式为自动更新,则自动获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值;[0054] 在所述自动获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值之后,包括:[0055] 自动获取临时文件。[0056] 本实施例中,为了能够及时获取用于校验的校验值,则在自动更新开始时,首先获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值,之后才会获取用于更新的临时文件。另外,由于在自动更新开始时获取用于校验的校验值和长度值,因此,能够保证获取的校验值和长度值都是最新的,从而保证校验的准确性。[0057] 在一些实施例中,若通过自动更新方式下载的临时文件校验不通过,则需要需要下载完整的更新文件,此时,所述数据更新方法还包括:[0058] 若分段校验全部不通过,则删除所述临时文件,重新下载所述更新文件。[0059] 本实施例中,可对临时文件的所有段落都执行校验,进而判断是否全部段落的校验都不通过。为了进一步提高更新速度,则在判断出临时文件的第一个段落的校验不通过时,直接判定为分段校验全部不通过。此时,可先获取存储更新文件的源地址,再根据该存储更新文件的源地址重新下载更新文件。需要指出的是,若根据该存储更新文件的源地址重新下载更新文件之后,对重新下载的更新文件进行校验,若校验不通过,表明该更新文件的源地址可能存在问题,此时,终端设备将向服务器发起获取存储更新文件的源地址的请求,以获取新的更新文件的源地址,再根据新的更新文件的源地址执行更新文件的重下载。[0060] 在一些实施例中,若执行自动更新操作得到的更新文件存储在第一文件夹,执行主动更新操作得到的更新文件存储在第二文件夹,则为了保证下载的更新文件存储的地址的准确性,在所述若校验通过之后,包括:[0061] 将所述临时文件从所述第一文件夹拷贝至所述第二文件夹。[0062] 本实施例中,可在所述若校验通过之后,将临时文件从第一文件夹拷贝至第二文件夹,再根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址;或者,可在校验通过,根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址之后,再将临时文件从第一文件夹拷贝至第二文件夹,此处不作限定。[0063] 在一些实施例中,由于拷贝临时文件的动作会占用一定的系统资源,因此,为了节省系统资源,则只有在第一文件夹的属性和第二文件夹的属性为特定属性时,才执行临时文件的拷贝操作,此时,所述将所述临时文件从所述第一文件夹拷贝至所述第二文件夹,包括:[0064] 若所述第一文件夹的属性为隐藏,所述第二文件夹的属性为显示,则将所述临时文件从所述第一文件夹拷贝至所述第二文件夹。[0065] 本实施例中,第一文件夹的属性为隐藏,第二文件夹的属性为显示,即终端设备通过自动更新的方式下载的更新文件存入第一文件夹后对用户不可见,而通过主动更新的方式下载的更新文件存入第二文件夹后对用户可见。为了便于用户后续能够查看下载的更新文件,则将临时文件从所述第一文件夹拷贝至所述第二文件夹。[0066] 在一些实施例中,为了判断更新文件是否续传成功,则在所述步骤S14之前,包括:[0067] 将续传后的更新文件的大小与预先获取的更新文件的标准大小比较;[0068] 对应地,所述步骤S14,具体为:[0069] 若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,则根据下载后的更新文件实现数据的更新。[0070] 本实施例中,通过续传后的更新文件的大小判断该更新文件是否续传成功,若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,表明该更新文件续传成功。其中,更新文件的标准大小可在执行自动更新操作时且在自动获取临时文件之前先获取,这样,能够保证获取到最新的更新文件的标准大小,进而有助于提高判断续传是否成功的准确性。[0071] 在一些实施例中,为了进一步保证获取到更准确的更新文件,则对续传成功的更新文件进行校验,此时,所述若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,则根据下载后的更新文件实现数据的更新,包括:[0072] 若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,则对续传后的更新文件进行校验,若校验通过,则根据下载后的更新文件实现数据的更新。[0073] 本实施例中,可通过服务器中更新文件包括的所有数据对应的MD5值对续传成功后的更新文件进行校验,具体地,计算续传成功后的更新文件对应的MD5值,再将该续传成功后的更新文件对应的MD5值与服务器中更新文件包括的所有数据对应的MD5值比较,若两者相等,则校验通过,若两者不相等,则校验不通过。若校验不通过,则对续传成功后的更新文件进行分段,使得分段后的段落数量以及每一个段落的数据长度都与预先对服务器存储的更新文件划分的段落数量和对应段落的数据长度相等,之后,分别对续传成功后的更新文件划分的段落进行逐段校验,根据校验结果确定将要下载的起始数据在更新文件的地址,再根据该地址从服务器存储的更新文件中下载对应的数据。[0074] 在一些实施例中,为了便于用户知悉当前正通过自动更新的方式执行更新文件的下载,则在所述步骤S11中的接收到主动更新请求之后,包括:[0075] 根据通过执行自动更新操作得到的临时文件与更新文件的比例确定比例值;显示所述比例值。[0076] 该步骤中,需要预先获取更新文件的大小。具体地,确定临时文件的大小,再将该临时文件的大小与预先获取的更新文件的大小比较,得到临时文件与更新文件的比例值。本实施例中,通过显示该比例值,使得用户知悉当前更新文件的下载进度。[0077] 在一些实施例中,为了便于用户进一步确认更新的方式,则在所述步骤S11中的接收到主动更新请求之后,包括:[0078] 显示当前正在自动更新的信息,提示用户确认是否从自动更新的方式切换到主动更新的方式。[0079] 本实施例中,若用户确认从自动更新的方式切换到主动更新的方式,则对通过执行自动更新操作得到的临时文件进行校验。否则,继续通过自动更新的方式继续下载更新文件。[0080] 与上述数据更新对应,图2示出了本申请实施例提供了一种数据更新装置的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分。[0081] 该数据更新装置2包括:主动更新请求接收单元21、起始数据的地址确定单元22、更新文件续传单元23、数据更新单元24。其中:[0082] 主动更新请求接收单元21,用于若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行校验,所述临时文件的全部数据为更新文件的部分数据;[0083] 本实施例中,若安装在终端设备的应用界面显示“更新”,或显示其他用于表示更新的标识,则表明该应用界面对应的应用需要更新。若该应用被设置为自动更新,则自动执行更新操作,以通过自动更新的方式获取该应用对应的更新文件,该更新文件存储在服务器中。[0084] 起始数据的地址确定单元22,用于若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址;[0085] 更新文件续传单元23,用于根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,以实现所述更新文件的续传;[0086] 具体地,存储更新文件的源地址可通过预先设定,或者,为了进一步保证获取的更新文件的源地址的准确性,可在执行自动更新操作时且在自动获取临时文件之前先获取更新文件的源地址。[0087] 数据更新单元24,用于若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新。[0088] 本申请实施例中,由于将要下载的起始数据在所述更新文件的地址是根据临时文件包括的数据确定,而临时文件是通过执行自动更新操作得到,因此,在接收到主动更新请求后,根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,相当于在更新方式从自动更新变为主动更新后,只需在临时文件的基础上继续下载更新文件未下载的部分即可,从而无需重新下载已下载的临时文件,减少了CDN和用户的流量开销,以及减少了用户主动更新应用A的更新时间。[0089] 在一些实施例中,为了实现对临时文件的有效校验,则需要预先将更新文件划分为至少2个段落,并确定划分的至少2个段落对应的校验值,其中,1个段落对应1个校验值。此时,所述数据更新装置2包括:[0090] 校验值获取单元,用于获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值,所述校验值的个数大于或等于2,且所述校验值的数量与所述更新文件划分的段落个数相同;[0091] 对应地,所述主动更新请求接收单元21中对通过执行自动更新操作得到的临时文件进行校验,具体用于:[0092] 根据所述长度值对通过执行自动更新操作得到的临时文件分段;根据所述校验值对分段后的所述临时文件进行分段校验;[0093] 需要指出的是,若更新文件划分后的不同段落对应不同的长度值,则在对临时文件进行分段的过程中,需要结合划分更新文件得到的段落的先后顺序确定对应的长度值的先后顺序。需要指出的是,若临时文件剩余未分段的数据的数据长度,小于更新文件划分的对应顺序段落的数据长度,则丢弃该临时文件剩余未分段的数据。其中,校验值可为MD5值。[0094] 对应地,所述起始数据的地址确定单元22具体用于:[0095] 若分段校验全部通过,则根据所述临时文件包括的最后一个段落的数据确定将要在所述更新文件下载的数据;若分段校验部分通过,则根据所述临时文件包括的第一个校验不通过的段落的数据确定将要在所述更新文件下载的数据。[0096] 具体地,若分段校验全部通过,则根据临时文件包括的最后一个段落的数据(通常只需要最后一个数据)确定将要下载的起始数据在所述更新文件的地址。若分段校验部分通过,部分不通过,则只根据第一个校验不通过的段落的数据(通常只需要最后一个数据)确定将要下载的起始数据在更新文件的地址。在一些实施例中,为了提高校验速度,若判断出某个段落校验不通过,则不再对临时文件中该某个段落之后的其他段落进行校验。[0097] 在一些实施例中,所述校验值获取单元,具体包括:[0098] 若检测到存在更新文件且更新方式为自动更新,则自动获取用于对临时文件进行校验的校验值以及预先对更新文件划分得到的段落的长度值;[0099] 对应地,所述数据更新装置还包括:[0100] 临时文件获取单元,用于自动获取临时文件。[0101] 本实施例中,由于在自动更新开始时获取用于校验的校验值和长度值,因此,能够保证获取的校验值和长度值都是最新的,从而保证校验的准确性。[0102] 在一些实施例中,若通过自动更新方式下载的临时文件校验不通过,则需要需要下载完整的更新文件,此时,所述数据更新装置还包括:[0103] 更新文件重下载单元,用于若分段校验全部不通过,则删除所述临时文件,重新下载所述更新文件。[0104] 本实施例中,可对临时文件的所有段落都执行校验,进而判断是否全部段落的校验都不通过。为了进一步提高更新速度,则在判断出临时文件的第一个段落的校验不通过时,直接判定为分段校验全部不通过。此时,可先获取存储更新文件的源地址,再根据该存储更新文件的源地址重新下载更新文件。需要指出的是,若根据该存储更新文件的源地址重新下载更新文件之后,对重新下载的更新文件进行校验,若校验不通过,表明该更新文件的源地址可能存在问题,此时,终端设备将向服务器发起获取存储更新文件的源地址的请求,以获取新的更新文件的源地址,再根据新的更新文件的源地址执行更新文件的重下载。[0105] 在一些实施例中,若执行自动更新操作得到的更新文件存储在第一文件夹,执行主动更新操作得到的更新文件存储在第二文件夹,则为了保证下载的更新文件存储的地址的准确性,所述数据更新装置还包括:[0106] 临时文件拷贝单元,用于将所述临时文件从所述第一文件夹拷贝至所述第二文件夹。[0107] 在一些实施例中,由于拷贝临时文件的动作会占用一定的系统资源,因此,为了节省系统资源,则只有在第一文件夹的属性和第二文件夹的属性为特定属性时,才执行临时文件的拷贝操作,此时,所述临时文件拷贝单元具体用于:[0108] 若所述第一文件夹的属性为隐藏,所述第二文件夹的属性为显示,则将所述临时文件从所述第一文件夹拷贝至所述第二文件夹。[0109] 在一些实施例中,为了判断更新文件是否续传成功,则所述数据更新装置还包括:[0110] 大小比较单元,用于将续传后的更新文件的大小与预先获取的更新文件的标准大小比较;[0111] 对应地,所述数据更新单元具体用于:[0112] 若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,则根据下载后的更新文件实现数据的更新。[0113] 其中,更新文件的标准大小可在执行自动更新操作时且在自动获取临时文件之前先获取,这样,能够保证获取到最新的更新文件的标准大小,进而有助于提高判断续传是否成功的准确性。[0114] 在一些实施例中,为了进一步保证获取到更准确的更新文件,则对续传成功的更新文件进行校验,此时,所述数据更新单元24具体用于:[0115] 若续传后的更新文件的大小与预先获取的更新文件的标准大小相等,则对续传后的更新文件进行校验,若校验通过,则根据下载后的更新文件实现数据的更新。[0116] 本实施例中,可通过服务器中更新文件包括的所有数据对应的MD5值对续传成功后的更新文件进行校验,具体地,计算续传成功后的更新文件对应的MD5值,再将该续传成功后的更新文件对应的MD5值与服务器中更新文件包括的所有数据对应的MD5值比较,若两者相等,则校验通过,若两者不相等,则校验不通过。若校验不通过,则对续传成功后的更新文件进行分段,使得分段后的段落数量以及每一个段落的数据长度都与预先对服务器存储的更新文件划分的段落数量和对应段落的数据长度相等,之后,分别对续传成功后的更新文件划分的段落进行逐段校验,根据校验结果确定将要下载的起始数据在更新文件的地址,再根据该地址从服务器存储的更新文件中下载对应的数据。[0117] 在一些实施例中,为了便于用户知悉当前正通过自动更新的方式执行更新文件的下载,则所述数据更新装置还包括:[0118] 比例值显示单元,用于根据通过执行自动更新操作得到的临时文件与更新文件的比例确定比例值;显示所述比例值。[0119] 在一些实施例中,为了便于用户知悉当前正通过自动更新的方式执行更新文件的下载,则所述数据更新装置还包括:[0120] 更新方式是否切换提示单元,用于显示当前正在自动更新的信息,提示用户确认是否从自动更新的方式切换到主动更新的方式。[0121] 本实施例中,若用户确认从自动更新的方式切换到主动更新的方式,则对通过执行自动更新操作得到的临时文件进行校验。否则,继续通过自动更新的方式继续下载更新文件。[0122] 需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。[0123] 图3是本申请一实施例提供的终端设备的示意图。如图3所示,该实施例的终端设备3包括:处理器30、存储器31以及存储在所述存储器31中并可在所述处理器30上运行的计算机程序32。所述处理器30执行所述计算机程序32时实现上述各个方法实施例中的步骤,例如图1所示的步骤S11至S14。或者,所述处理器30执行所述计算机程序32时实现上述各装置实施例中各模块/单元的功能,例如图2所示模块21至24的功能。[0124] 示例性的,所述计算机程序32可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述处理器30执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序32在所述终端设备3中的执行过程。例如,所述计算机程序32可以被分割成主动更新请求接收单元、起始数据的地址确定单元、更新文件续传单元、数据更新单元,各单元具体功能如下:[0125] 主动更新请求接收单元,用于若在执行自动更新操作时接收到主动更新请求,则对通过执行自动更新操作得到的临时文件进行校验,所述临时文件的全部数据为更新文件的部分数据;[0126] 起始数据的地址确定单元,用于若校验通过,则根据所述临时文件包括的数据确定将要下载的起始数据在所述更新文件的地址;[0127] 更新文件续传单元,用于根据所述将要下载的起始数据在所述更新文件的地址,从存储所述更新文件的源地址继续下载对应的数据,以实现所述更新文件的续传;[0128] 数据更新单元,用于若所述更新文件续传成功,则根据下载后的更新文件实现数据的更新。[0129] 所述终端设备3可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器30、存储器31。本领域技术人员可以理解,图3仅仅是终端设备3的示例,并不构成对终端设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。[0130] 所称处理器30可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field‑ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。[0131] 所述存储器31可以是所述终端设备3的内部存储单元,例如终端设备3的硬盘或内存。所述存储器31也可以是所述终端设备3的外部存储设备,例如所述终端设备3上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等。进一步地,所述存储器31还可以既包括所述终端设备3的内部存储单元也包括外部存储设备。所述存储器31用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。[0132] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。[0133] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。[0134] 在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。[0135] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0136] 所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。[0137] 以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
专利地区:广东
专利申请日期:2019-10-29
专利公开日期:2024-07-26
专利公告号:CN114258525B