CN104951337A - 文件增量更新方法及装置 - Google Patents

文件增量更新方法及装置 Download PDF

Info

Publication number
CN104951337A
CN104951337A CN201510284003.7A CN201510284003A CN104951337A CN 104951337 A CN104951337 A CN 104951337A CN 201510284003 A CN201510284003 A CN 201510284003A CN 104951337 A CN104951337 A CN 104951337A
Authority
CN
China
Prior art keywords
file
verified
test value
proof test
destination
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.)
Granted
Application number
CN201510284003.7A
Other languages
English (en)
Other versions
CN104951337B (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.)
Beijing Xiaomi Technology Co Ltd
Xiaomi Inc
Original Assignee
Xiaomi Inc
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 Xiaomi Inc filed Critical Xiaomi Inc
Priority to CN201510284003.7A priority Critical patent/CN104951337B/zh
Publication of CN104951337A publication Critical patent/CN104951337A/zh
Application granted granted Critical
Publication of CN104951337B publication Critical patent/CN104951337B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本公开关于一种文件增量更新方法及装置,属于计算机技术领域。所述方法包括:向服务器获取目标文件与源文件之间的差异包,所述目标文件是基于所述源文件进行修改所得到的文件;根据所述差异包和所述源文件在内存中生成待验证文件;将所述待验证文件写入外存中;检测所述外存中存储的所述待验证文件是否与所述目标文件相同;当所述外存中存储的所述待验证文件与所述目标文件相同时,将所述待验证文件确定为所述终端增量更新得到的目标文件。本公开可解决将待验证文件作为目标文件写入外存时出错,导致最终得到的目标文件不准确的问题,可达到提高生成的目标文件的准确性的效果。

Description

文件增量更新方法及装置
技术领域
本公开涉及计算机技术领域,特别涉及一种文件增量更新方法及装置。
背景技术
当文件存在更新时,终端可以从服务器中下载目标文件,并安装目标文件来替换终端中原来安装的源文件,目标文件是基于源文件进行修改所得到的文件。由于下载完整的目标文件需要消耗的流量较多,因此,终端可以获取目标文件和源文件的差异包,基于差异包和源文件生成目标文件。
发明内容
为克服相关技术中存在的问题,本公开提供了一种文件增量更新方法及装置。
根据本公开实施例的第一方面,提供一种文件增量更新方法,包括:
向服务器获取目标文件与源文件之间的差异包,所述目标文件是基于所述源文件进行修改所得到的文件;
根据所述差异包和所述源文件在内存中生成待验证文件;
将所述待验证文件写入外存中;
检测所述外存中存储的所述待验证文件是否与所述目标文件相同;
当所述外存中存储的所述待验证文件与所述目标文件相同时,将所述待验证文件确定为所述终端增量更新得到的目标文件。
可选的,所述检测所述外存中存储的所述待验证文件是否与所述目标文件相同,包括:
将所述外存中存储的所述待验证文件读入所述内存中;
获取所述目标文件的校验值;
检测所述待验证文件的校验值是否与所述目标文件的校验值相同;
当所述待验证文件的校验值与所述目标文件的校验值相同时,确定所述待验证文件与所述目标文件相同。
可选的,所述将所述待验证文件写入外存中之前,还包括:
获取所述目标文件的校验值;
检测所述待验证文件的校验值是否与所述目标文件的校验值相同;
当所述待验证文件的校验值与所述目标文件的校验值相同时,执行所述将所述待验证文件写入外存中的步骤。
可选的,所述将所述待验证文件写入外存中,包括:
通过同步操作将所述待验证文件写入所述外存中。
可选的,所述根据所述差异包和所述源文件在内存中生成待验证文件,包括:
在所述内存中将所述差异包打入所述复制文件中,得到所述待验证文件;所述复制文件为对所述源文件进行复制生成的。
可选的,所述根据所述差异包和所述源文件在内存中生成待验证文件之前,还包括:
当从所述服务器中获取所述源文件之后,检测所述终端中的所述源文件是否与所述服务器中的所述源文件相同;
当所述终端中的所述源文件与所述服务器中的所述源文件相同时,生成所述源文件的复制文件;
将所述复制文件和所述差异包读入所述内存中;
所述根据所述差异包和所述源文件在内存中生成待验证文件包括:根据所述差异包和所述复制文件在所述内存中生成所述待验证文件。
可选的,所述生成所述源文件的复制文件之后,还包括:
获取所述复制文件的校验值;
检测所述复制文件的校验值是否与所述源文件的校验值相同;
当所述复制文件的校验值与所述源文件的校验值相同时,执行所述将所述复制文件和所述差异包读入所述内存中的步骤。
根据本公开实施例的第二方面,提供一种文件增量更新装置,包括:
差异包获取模块,被配置为向服务器获取目标文件与源文件之间的差异包,所述目标文件是基于所述源文件进行修改所得到的文件;
文件生成模块,被配置为根据所述差异包获取模块获取的所述差异包和所述源文件在内存中生成待验证文件;
文件写入模块,被配置为将所述文件生成模块生成的所述待验证文件写入外存中;
文件检测模块,被配置为检测所述外存中存储的所述待验证文件是否与所述目标文件相同;
文件确定模块,被配置为当所述文件检测模块检测出所述外存中存储的所述待验证文件与所述目标文件相同时,将所述待验证文件确定为所述终端增量更新得到的目标文件。
可选的,所述文件检测模块,包括:
文件读入子模块,被配置为将所述外存中存储的所述待验证文件读入所述内存中;
校验值获取子模块,被配置为获取所述目标文件的校验值;
校验值检测子模块,被配置为检测所述待验证文件的校验值是否与所述校验值获取子模块获取的所述目标文件的校验值相同;
文件确定子模块,被配置为当所述校验值检测子模块检测出所述待验证文件的校验值与所述目标文件的校验值相同时,确定所述待验证文件与所述目标文件相同。
可选的,所述装置,还包括:
第一获取模块,被配置为在所述文件写入模块将所述待验证文件写入外存中之前,获取所述目标文件的校验值;
第一检测模块,被配置为检测所述待验证文件的校验值是否与所述第一获取模块获取的所述目标文件的校验值相同;
第一执行模块,被配置为当所述第一检测模块检测出所述待验证文件的校验值与所述目标文件的校验值相同时,触发所述文件写入模块将所述待验证文件写入所述外存中。
可选的,所述文件写入模块,被配置为通过同步操作将所述待验证文件写入所述外存中。
可选的,所述文件生成模块,被配置为在所述内存中,将所述差异包获取模块获取的所述差异包打入所述复制文件中,得到所述待验证文件;所述复制文件为对所述源文件进行复制生成的。
可选的,所述装置,还包括:
第二检测模块,被配置为当所述文件生成模块根据所述差异包和所述源文件在内存中生成待验证文件之前,检测所述终端中的所述源文件是否与所述服务器中的所述源文件相同;
复制文件生成模块,被配置为当所述终端中的所述源文件与所述服务器中的所述源文件相同时,生成所述源文件的复制文件;
文件读入模块,被配置为将所述复制文件生成模块生成的所述复制文件和所述差异包读入所述内存中;
所述文件生成模块,被配置为根据所述差异包和所述复制文件在所述内存中生成所述待验证文件。
可选的,所述装置,还包括:
第二获取模块,被配置为在所述复制文件生成模块生成所述源文件的复制文件之后,获取所述复制文件的校验值;
第三检测模块,被配置为检测所述复制文件的校验值是否与所述源文件的校验值相同;
第二执行模块,被配置为当所述第三检测模块检测出所述复制文件的校验值与所述源文件的校验值相同时,触发所述文件读入模块将所述复制文件和所述差异包读入所述内存中。
根据本公开实施例的第三方面,提供一种文件增量更新装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
向服务器获取目标文件与源文件之间的差异包,所述目标文件是基于所述源文件进行修改所得到的文件;
根据所述差异包和所述源文件在内存中生成待验证文件;
将所述待验证文件写入外存中;
检测所述外存中存储的所述待验证文件是否与所述目标文件相同;
当所述外存中存储的所述待验证文件与所述目标文件相同时,将所述待验证文件确定为所述终端增量更新得到的目标文件。
本公开的实施例提供的技术方案可以包括以下有益效果:
通过向服务器获取目标文件与源文件之间的差异包;根据差异包和源文件在内存中生成待验证文件;将待验证文件写入外存中;检测外存中存储的待验证文件是否与目标文件相同;当外存中存储的待验证文件与目标文件相同时,将待验证文件确定为终端增量更新得到的目标文件,可以在将待验证文件写入外存后,再次读取外存中存储的该待验证文件进行验证,解决了将待验证文件作为目标文件写入外存时出错,导致最终得到的目标文件不准确的问题,达到了提高生成的目标文件的准确性的效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本公开说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种文件增量更新方法的流程图。
图2是根据另一示例性实施例示出的一种文件增量更新方法的流程图。
图3是根据一示例性实施例示出的一种文件增量更新装置的框图。
图4是根据一示例性实施例示出的一种文件增量更新装置的框图。
图5是根据一示例性实施例示出的一种用于文件增量更新的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种文件增量更新方法的流程图,该文件增量更新方法应用于终端中,如图1所示,该文件增量更新方法包括以下步骤。
在步骤101中,向服务器获取目标文件与源文件之间的差异包,目标文件是基于源文件进行修改所得到的文件。
在步骤102中,根据差异包和源文件在内存中生成待验证文件。
在步骤103中,将待验证文件写入外存中。
在步骤104中,检测外存中存储的待验证文件是否与目标文件相同。
在步骤105中,当外存中存储的待验证文件与目标文件相同时,将该待验证文件确定为终端增量更新得到的目标文件。
综上所述,本公开提供的文件增量更新方法,通过向服务器获取目标文件与源文件之间的差异包;根据差异包和源文件在内存中生成待验证文件;将待验证文件写入外存中;检测外存中存储的待验证文件是否与目标文件相同;当外存中存储的待验证文件与目标文件相同时,将待验证文件确定为终端增量更新得到的目标文件,可以在将待验证文件写入外存后,再次读取外存中存储的该待验证文件进行验证,解决了将待验证文件作为目标文件写入外存时出错,导致最终得到的目标文件不准确的问题,达到了提高生成的目标文件的准确性的效果。
图2是根据另一示例性实施例示出的一种文件增量更新方法的流程图,该文件增量更新方法应用于终端中,如图2所示,该文件增量更新方法包括如下步骤。
在步骤201中,向服务器获取目标文件与源文件之间的差异包,目标文件是基于源文件进行修改所得到的文件。
目标文件是基于源文件进行修改所得到的文件,即,目标文件是版本号高于源文件的版本号的文件。比如,目标文件是版本号为2.0的地图,源文件是版本号为1.0的地图。其中,目标文件可以是最新版本的文件,也可以不是最新版本的文件,本实施例不作限定。
差异包是目标文件基于源文件所做的更新的数据包。由于服务器中可能存在多个版本号的文件,且每两个版本号的文件之间可以生成差异包,因此,服务器中可能存在多个差异包,且每个差异包对应于一个源文件和一个目标文件。比如,差异包1对应于1.0版本的地图和2.0版本的地图、差异包2对应于1.0版本的地图和3.0版本的地图。其中,服务器根据目标文件和源文件生成差异包的技术已经非常成熟,此处不作赘述。
本实施例中,服务器先提供源文件的下载,终端下载并存储源文件,对下载的源文件进行安装。当服务器接收到目标文件时,服务器根据目标文件和源文件生成差异包,并提供差异包和目标文件的下载。由于下载整个目标文件需要消耗的流量较多,因此,终端可以获取差异包,并根据差异包和原来存储的源文件来生成目标文件。
终端在获取差异包时,需要向服务器发送源文件的文件名和版本号以及目标文件的文件名和版本号,服务器根据上述信息获取对应于上述信息所指示的源文件和目标文件的差异包,并将差异包发送给终端。通常,终端需要将源文件更新为最新版本的目标文件,此时可以只向服务器发送源文件的文件名,服务器即可根据该文件名获取到差异包,并将差异包发送给终端。
可选的,本实施例中的差异包还可以是终端从其他终端中获取到的,且其他终端是从服务器获取到该差异包的。
在步骤202中,当从服务器中获取源文件之后,检测终端中的源文件是否与服务器中的源文件相同;当终端中的源文件与服务器中的源文件相同时,生成源文件的复制文件。
由于终端需要根据差异包和终端中存储的源文件来生成目标文件,因此,终端需要确保终端中存储的源文件与服务器中存储的源文件相同,使得根据该源文件和差异包生成的文件与服务器中存储的目标文件相同。
终端可以对终端中存储的源文件生成校验值,再获取服务器中存储的源文件的校验值,检测终端生成的校验值是否与从服务器获取的校验值相同;当终端生成的校验值与从服务器获取的校验值相同时,确定终端中存储的源文件与服务器中存储的源文件相同;当终端生成的校验值与从服务器获取的校验值不同时,确定终端中存储的源文件与服务器中存储的源文件不同,此时终端需要从服务器下载完整的目标文件。其中,对源文件生成校验值的方法有很多种,本实施例中终端对源文件生成校验值的方法与服务器对源文件生成校验值的方法相同。
在步骤203中,获取复制文件的校验值。
在步骤204中,检测复制文件的校验值是否与源文件的校验值相同;当复制文件的校验值与源文件的校验值相同时,将复制文件和差异包读入内存中。
由于在生成源文件的复制文件的过程中可能会出错,导致生成的复制文件与源文件不同,使得最终生成的目标文件出错,因此,终端还需要对复制文件是否与源文件相同进行检测。
终端可以对复制文件生成校验值,再获取之前生成的源文件的校验值,检测复制文件的校验值是否与源文件的校验值相同;当复制文件的校验值与源文件的校验值相同时,确定复制文件与源文件相同;当复制文件的校验值与源文件的校验值不同时,确定复制文件与源文件不同,此时终端需要重新生成源文件的复制文件,并再次执行步骤203和204。
由于需要在内存中生成目标文件,因此,终端在确定复制文件与源文件相同后,还需要将复制文件和差异包读入内存中。本实施例不限定终端将复制文件和差异包读入内存中的先后执行顺序。
在步骤205中,在内存中将差异包打入复制文件中,得到待验证文件,复制文件为对源文件进行复制生成的。
其中,终端在内存中将差异包打入复制文件中的技术已经非常成熟,此处不作赘述。
在步骤206中,获取目标文件的校验值。
由于终端根据差异包和源文件生成待验证文件的过程中可能会出错,导致待验证文件与目标文件不同,因此,终端还需要检测待验证文件是否与目标文件相同。此时,终端可以从服务器获取目标文件的校验值,并根据该校验值检测待验证文件是否与目标文件相同。
在步骤207中,检测待验证文件的校验值是否与目标文件的校验值相同;当待验证文件的校验值与目标文件的校验值相同时,通过同步操作将待验证文件写入外存中。
终端可以对待验证文件生成校验值,检测待验证文件的校验值是否与目标文件的校验值相同;当待验证文件的校验值与目标文件的校验值相同时,确定待验证文件与目标文件相同;当待验证文件的校验值与目标文件的校验值不同,确定待验证文件与目标文件不同,此时终端需要重新执行步骤205至207。其中,终端生成待验证文件的校验值的方法与服务器生成目标文件的校验值的方法相同,此处不赘述。
本实施例中,终端可以通过同步操作立即将待验证文件写入外存中,既可以保证写入待验证文件的时效性,也可以避免通过异步操作写入待验证文件,导致文件出错的问题。
在步骤208中,将外存中存储的待验证文件读入内存中。
由于终端将待验证文件写入外存的过程中可能出错,使得外存中最终存储的待验证文件并不是目标文件,因此,终端还需要对外存中最终存储的待验证文件是否与目标文件相同进行检测。此时,终端需要将外存中存储的待验证文件读入内存中进行检测。
在步骤209中,获取目标文件的校验值。
由于在步骤206中已经获取过目标文件的校验值,因此,终端可以直接读取该校验值,也可以再次从服务器获取目标文件的校验值,本实施例不限定对目标文件的校验值的获取方式。
在步骤210中,检测待验证文件的校验值是否与目标文件的校验值相同;当待验证文件的校验值与目标文件的校验值相同时,确定待验证文件与目标文件相同。
本步骤中终端检测待验证文件的校验值是否与目标文件的校验值相同的过程与步骤207中终端检测待验证文件的校验值是否与目标文件的校验值相同的过程相同,此处不赘述。
在步骤211中,当外存中存储的待验证文件与目标文件相同时,将该待验证文件确定为终端增量更新得到的目标文件。
当外存中存储的待验证文件与目标文件相同时,终端确定在将待验证文件写入外存时没有出错,外存中最终存储的待验证文件即为目标文件。
综上所述,本公开提供的文件增量更新方法,通过向服务器获取目标文件与源文件之间的差异包;根据差异包和源文件在内存中生成待验证文件;将待验证文件写入外存中;检测外存中存储的待验证文件是否与目标文件相同;当外存中存储的待验证文件与目标文件相同时,将待验证文件确定为终端增量更新得到的目标文件,可以在将待验证文件写入外存后,再次读取外存中存储的该待验证文件进行验证,解决了将待验证文件作为目标文件写入外存时出错,导致最终得到的目标文件不准确的问题,达到了提高生成的目标文件的准确性的效果。
另外,通过同步操作将所述待验证文件写入所述外存中,可以在生成待验证文件后,立即将待验证文件写入外存中,既可以保证写入待验证文件的时效性,也可以避免通过异步操作写入待验证文件,导致文件出错的问题。
另外,通过检测复制文件的校验值是否与源文件的校验值相同;当复制文件的校验值与源文件的校验值相同时,将复制文件和差异包读入内存中生成待验证文件,可以解决复制源文件时出错,导致复制文件不准确,从而导致生成的待验证文件不准确的问题,达到了提高生成待验证文件的准确性的效果。
图3是根据一示例性实施例示出的一种文件增量更新装置的框图,该文件增量更新装置应用于终端中,如图3所示,该文件增量更新装置包括:差异包获取模块310、文件生成模块320、文件写入模块330、文件检测模块340和文件确定模块350。
该差异包获取模块310,被配置为向服务器获取目标文件与源文件之间的差异包,目标文件是基于源文件进行修改所得到的文件;
该文件生成模块320,被配置为根据差异包获取模块310获取的差异包和源文件在内存中生成待验证文件;
该文件写入模块330,被配置为将文件生成模块320生成的待验证文件写入外存中;
该文件检测模块340,被配置为检测外存中存储的待验证文件是否与目标文件相同;
该文件确定模块350,被配置为当文件检测模块340检测出外存中存储的待验证文件与目标文件相同时,将待验证文件确定为终端增量更新得到的目标文件。
综上所述,本公开提供的文件增量更新装置,通过向服务器获取目标文件与源文件之间的差异包;根据差异包和源文件在内存中生成待验证文件;将待验证文件写入外存中;检测外存中存储的待验证文件是否与目标文件相同;当外存中存储的待验证文件与目标文件相同时,将待验证文件确定为终端增量更新得到的目标文件,可以在将待验证文件写入外存后,再次读取外存中存储的该待验证文件进行验证,解决了将待验证文件作为目标文件写入外存时出错,导致最终得到的目标文件不准确的问题,达到了提高生成的目标文件的准确性的效果。
图4是根据一示例性实施例示出的一种文件增量更新装置的框图,该文件增量更新装置应用于终端中,如图4所示,该文件增量更新装置包括:差异包获取模块401、文件生成模块402、文件写入模块403、文件检测模块404和文件确定模块405。
该差异包获取模块401,被配置为向服务器获取目标文件与源文件之间的差异包,目标文件是基于源文件进行修改所得到的文件;
该文件生成模块402,被配置为根据差异包获取模块401获取的差异包和源文件在内存中生成待验证文件;
该文件写入模块403,被配置为将文件生成模块402生成的待验证文件写入外存中;
该文件检测模块404,被配置为检测外存中存储的待验证文件是否与目标文件相同;
该文件确定模块405,被配置为当文件检测模块404检测出外存中存储的待验证文件与目标文件相同时,将待验证文件确定为终端增量更新得到的目标文件。
可选的,文件检测模块404,包括:文件读入子模块4041、校验值获取子模块4042、校验值检测子模块4043和文件确定子模块4044;
该文件读入子模块4041,被配置为将外存中存储的待验证文件读入内存中;
该校验值获取子模块4042,被配置为获取目标文件的校验值;
该校验值检测子模块4043,被配置为检测待验证文件的校验值是否与校验值获取子模块4042获取的目标文件的校验值相同;
该文件确定子模块4044,被配置为当校验值检测子模块4043检测出待验证文件的校验值与目标文件的校验值相同时,确定待验证文件与目标文件相同。
可选的,本实施例提供的文件增量更新装置,还包括:第一获取模块406、第一检测模块407和第一执行模块408;
该第一获取模块406,被配置为在文件写入模块403将待验证文件写入外存中之前,获取目标文件的校验值;
该第一检测模块407,被配置为检测待验证文件的校验值是否与第一获取模块406获取的目标文件的校验值相同;
该第一执行模块408,被配置为当第一检测模块407检测出待验证文件的校验值与目标文件的校验值相同时,触发文件写入模块403将待验证文件写入外存中。
可选的,文件写入模块403,被配置为通过同步操作将待验证文件写入外存中。
可选的,文件生成模块402,被配置为在内存中,将差异包获取模块401获取的差异包打入复制文件中,得到待验证文件;复制文件为对源文件进行复制生成的。
可选的,本实施例提供的文件增量更新装置,还包括:第二检测模块409、复制文件生成模块410和文件读入模块411;
该第二检测模块409,被配置为当文件生成模块402根据差异包和源文件在内存中生成待验证文件之前,检测终端中的源文件是否与服务器中的源文件相同;
该复制文件生成模块410,被配置为当终端中的源文件与服务器中的源文件相同时,生成源文件的复制文件;
该文件读入模块411,被配置为将复制文件生成模块410生成的复制文件和差异包读入内存中;
文件生成模块402,被配置为根据差异包和复制文件在内存中生成待验证文件。
可选的,本实施例提供的文件增量更新装置,还包括:第二获取模块412、第三检测模块413和第二执行模块414;
该第二获取模块412,被配置为在复制文件生成模块410生成源文件的复制文件之后,获取复制文件的校验值;
该第三检测模块413,被配置为检测复制文件的校验值是否与源文件的校验值相同;
该第二执行模块414,被配置为当第三检测模块413检测出复制文件的校验值与源文件的校验值相同时,触发文件读入模块411将复制文件和差异包读入内存中。
综上所述,本公开提供的文件增量更新装置,通过向服务器获取目标文件与源文件之间的差异包;根据差异包和源文件在内存中生成待验证文件;将待验证文件写入外存中;检测外存中存储的待验证文件是否与目标文件相同;当外存中存储的待验证文件与目标文件相同时,将待验证文件确定为终端增量更新得到的目标文件,可以在将待验证文件写入外存后,再次读取外存中存储的该待验证文件进行验证,解决了将待验证文件作为目标文件写入外存时出错,导致最终得到的目标文件不准确的问题,达到了提高生成的目标文件的准确性的效果。
另外,通过同步操作将所述待验证文件写入所述外存中,可以在生成待验证文件后,立即将待验证文件写入外存中,既可以保证写入待验证文件的时效性,也可以避免通过异步操作写入待验证文件,导致文件出错的问题。
另外,通过检测复制文件的校验值是否与源文件的校验值相同;当复制文件的校验值与源文件的校验值相同时,将复制文件和差异包读入内存中生成待验证文件,可以解决复制源文件时出错,导致复制文件不准确,从而导致生成的待验证文件不准确的问题,达到了提高生成待验证文件的准确性的效果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开一示例性实施例提供了一种文件增量更新装置,能够实现本公开提供的文件增量更新方法,该文件增量更新装置包括:处理器、用于存储处理器可执行指令的存储器;
其中,处理器被配置为:
向服务器获取目标文件与源文件之间的差异包,目标文件是基于源文件进行修改所得到的文件;
根据差异包和源文件在内存中生成待验证文件;
将待验证文件写入外存中;
检测外存中存储的待验证文件是否与目标文件相同;
当外存中存储的待验证文件与目标文件相同时,将待验证文件确定为终端增量更新得到的目标文件。
图5是根据一示例性实施例示出的一种用于文件增量更新装置500的框图。例如,装置500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制装置500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器518来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在装置500的操作。这些数据的示例包括用于在装置500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为装置500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为装置500生成、管理和分配电力相关联的组件。
多媒体组件508包括在所述装置500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当装置500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当装置500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为装置500提供各个方面的状态评估。例如,传感器组件514可以检测到装置500的打开/关闭状态,组件的相对定位,例如所述组件为装置500的显示器和小键盘,传感器组件514还可以检测装置500或装置500一个组件的位置改变,用户与装置500接触的存在或不存在,装置500方位或加速/减速和装置500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于装置500和其他设备之间有线或无线方式的通信。装置500可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由装置500的处理器518执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种文件增量更新方法,该方法包括:
向服务器获取目标文件与源文件之间的差异包,目标文件是基于源文件进行修改所得到的文件;
根据差异包和源文件在内存中生成待验证文件;
将待验证文件写入外存中;
检测外存中存储的待验证文件是否与目标文件相同;
当外存中存储的待验证文件与目标文件相同时,将待验证文件确定为终端增量更新得到的目标文件。
文件增量更新方法的其余内容的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (15)

1.一种文件增量更新方法,其特征在于,所述方法,包括:
向服务器获取目标文件与源文件之间的差异包,所述目标文件是基于所述源文件进行修改所得到的文件;
根据所述差异包和所述源文件在内存中生成待验证文件;
将所述待验证文件写入外存中;
检测所述外存中存储的所述待验证文件是否与所述目标文件相同;
当所述外存中存储的所述待验证文件与所述目标文件相同时,将所述待验证文件确定为所述终端增量更新得到的目标文件。
2.根据权利要求1所述的方法,其特征在于,所述检测所述外存中存储的所述待验证文件是否与所述目标文件相同,包括:
将所述外存中存储的所述待验证文件读入所述内存中;
获取所述目标文件的校验值;
检测所述待验证文件的校验值是否与所述目标文件的校验值相同;
当所述待验证文件的校验值与所述目标文件的校验值相同时,确定所述待验证文件与所述目标文件相同。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述待验证文件写入外存中之前,还包括:
获取所述目标文件的校验值;
检测所述待验证文件的校验值是否与所述目标文件的校验值相同;
当所述待验证文件的校验值与所述目标文件的校验值相同时,执行所述将所述待验证文件写入外存中的步骤。
4.根据权利要求1所述的方法,其特征在于,所述将所述待验证文件写入外存中,包括:
通过同步操作将所述待验证文件写入所述外存中。
5.根据权利要求1所述的方法,其特征在于,所述根据所述差异包和所述源文件在内存中生成待验证文件,包括:
在所述内存中将所述差异包打入所述复制文件中,得到所述待验证文件;所述复制文件为对所述源文件进行复制生成的。
6.根据权利要求1所述的方法,其特征在于,所述根据所述差异包和所述源文件在内存中生成待验证文件之前,还包括:
当从所述服务器中获取所述源文件之后,检测所述终端中的所述源文件是否与所述服务器中的所述源文件相同;
当所述终端中的所述源文件与所述服务器中的所述源文件相同时,生成所述源文件的复制文件;
将所述复制文件和所述差异包读入所述内存中;
所述根据所述差异包和所述源文件在内存中生成待验证文件包括:根据所述差异包和所述复制文件在所述内存中生成所述待验证文件。
7.根据权利要求6所述的方法,其特征在于,所述生成所述源文件的复制文件之后,还包括:
获取所述复制文件的校验值;
检测所述复制文件的校验值是否与所述源文件的校验值相同;
当所述复制文件的校验值与所述源文件的校验值相同时,执行所述将所述复制文件和所述差异包读入所述内存中的步骤。
8.一种文件增量更新装置,其特征在于,所述装置,包括:
差异包获取模块,被配置为向服务器获取目标文件与源文件之间的差异包,所述目标文件是基于所述源文件进行修改所得到的文件;
文件生成模块,被配置为根据所述差异包获取模块获取的所述差异包和所述源文件在内存中生成待验证文件;
文件写入模块,被配置为将所述文件生成模块生成的所述待验证文件写入外存中;
文件检测模块,被配置为检测所述外存中存储的所述待验证文件是否与所述目标文件相同;
文件确定模块,被配置为当所述文件检测模块检测出所述外存中存储的所述待验证文件与所述目标文件相同时,将所述待验证文件确定为所述终端增量更新得到的目标文件。
9.根据权利要求8所述的装置,其特征在于,所述文件检测模块,包括:
文件读入子模块,被配置为将所述外存中存储的所述待验证文件读入所述内存中;
校验值获取子模块,被配置为获取所述目标文件的校验值;
校验值检测子模块,被配置为检测所述待验证文件的校验值是否与所述校验值获取子模块获取的所述目标文件的校验值相同;
文件确定子模块,被配置为当所述校验值检测子模块检测出所述待验证文件的校验值与所述目标文件的校验值相同时,确定所述待验证文件与所述目标文件相同。
10.根据权利要求8或9所述的装置,其特征在于,所述装置,还包括:
第一获取模块,被配置为在所述文件写入模块将所述待验证文件写入外存中之前,获取所述目标文件的校验值;
第一检测模块,被配置为检测所述待验证文件的校验值是否与所述第一获取模块获取的所述目标文件的校验值相同;
第一执行模块,被配置为当所述第一检测模块检测出所述待验证文件的校验值与所述目标文件的校验值相同时,触发所述文件写入模块将所述待验证文件写入所述外存中。
11.根据权利要求8所述的装置,其特征在于,所述文件写入模块,被配置为通过同步操作将所述待验证文件写入所述外存中。
12.根据权利要求8所述的装置,其特征在于,所述文件生成模块,被配置为在所述内存中,将所述差异包获取模块获取的所述差异包打入所述复制文件中,得到所述待验证文件;所述复制文件为对所述源文件进行复制生成的。
13.根据权利要求8所述的装置,其特征在于,所述装置,还包括:
第二检测模块,被配置为当所述文件生成模块根据所述差异包和所述源文件在内存中生成待验证文件之前,检测所述终端中的所述源文件是否与所述服务器中的所述源文件相同;
复制文件生成模块,被配置为当所述终端中的所述源文件与所述服务器中的所述源文件相同时,生成所述源文件的复制文件;
文件读入模块,被配置为将所述复制文件生成模块生成的所述复制文件和所述差异包读入所述内存中;
所述文件生成模块,被配置为根据所述差异包和所述复制文件在所述内存中生成所述待验证文件。
14.根据权利要求13所述的装置,其特征在于,所述装置,还包括:
第二获取模块,被配置为在所述复制文件生成模块生成所述源文件的复制文件之后,获取所述复制文件的校验值;
第三检测模块,被配置为检测所述复制文件的校验值是否与所述源文件的校验值相同;
第二执行模块,被配置为当所述第三检测模块检测出所述复制文件的校验值与所述源文件的校验值相同时,触发所述文件读入模块将所述复制文件和所述差异包读入所述内存中。
15.一种文件增量更新装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
向服务器获取目标文件与源文件之间的差异包,所述目标文件是基于所述源文件进行修改所得到的文件;
根据所述差异包和所述源文件在内存中生成待验证文件;
将所述待验证文件写入外存中;
检测所述外存中存储的所述待验证文件是否与所述目标文件相同;
当所述外存中存储的所述待验证文件与所述目标文件相同时,将所述待验证文件确定为所述终端增量更新得到的目标文件。
CN201510284003.7A 2015-05-28 2015-05-28 文件增量更新方法及装置 Active CN104951337B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510284003.7A CN104951337B (zh) 2015-05-28 2015-05-28 文件增量更新方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510284003.7A CN104951337B (zh) 2015-05-28 2015-05-28 文件增量更新方法及装置

Publications (2)

Publication Number Publication Date
CN104951337A true CN104951337A (zh) 2015-09-30
CN104951337B CN104951337B (zh) 2018-08-07

Family

ID=54166006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510284003.7A Active CN104951337B (zh) 2015-05-28 2015-05-28 文件增量更新方法及装置

Country Status (1)

Country Link
CN (1) CN104951337B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105553727A (zh) * 2015-12-18 2016-05-04 北京奇虎科技有限公司 一种更新配置信息的方法、装置及系统
CN106648716A (zh) * 2015-10-30 2017-05-10 北京数码视讯科技股份有限公司 一种增量更新方法、服务器及智能卡
CN108762798A (zh) * 2017-04-25 2018-11-06 腾讯科技(深圳)有限公司 一种增量更新文件的方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1855197B1 (en) * 2006-05-10 2012-12-19 Research In Motion Limited Method and system for incremental patching of binary files
CN101094229B (zh) * 2007-07-24 2012-12-19 深圳市融创天下科技股份有限公司 一种网络应用程序的增量升级方法
CN103853574B (zh) * 2012-12-06 2015-09-16 腾讯科技(深圳)有限公司 一种软件升级的方法及系统
CN103713928B (zh) * 2013-12-31 2017-02-22 优视科技有限公司 增量文件生成方法、应用程序安装文件更新方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648716A (zh) * 2015-10-30 2017-05-10 北京数码视讯科技股份有限公司 一种增量更新方法、服务器及智能卡
CN105553727A (zh) * 2015-12-18 2016-05-04 北京奇虎科技有限公司 一种更新配置信息的方法、装置及系统
CN108762798A (zh) * 2017-04-25 2018-11-06 腾讯科技(深圳)有限公司 一种增量更新文件的方法及装置
CN108762798B (zh) * 2017-04-25 2021-11-26 腾讯科技(深圳)有限公司 一种增量更新文件的方法及装置

Also Published As

Publication number Publication date
CN104951337B (zh) 2018-08-07

Similar Documents

Publication Publication Date Title
CN104484200A (zh) 对固件进行升级的方法及装置
JP7315796B2 (ja) 回路原理図のチェック方法、装置及びシステム
CN104238875A (zh) 应用程序角标添加方法及装置
CN104156233B (zh) 轻应用离线更新方法、装置及终端
CN104615350A (zh) 在锁屏界面上展示信息的方法及装置
CN105094931A (zh) 软件升级方法及装置
CN105488112A (zh) 信息推送方法及装置
CN104536783A (zh) 预留空间设置方法及装置
CN104486451A (zh) 应用程序推荐方法及装置
CN105094904A (zh) 安装应用程序的方法及装置
CN104811776A (zh) 多媒体播放方法及装置
CN104536935A (zh) 计算显示方法、计算编辑方法及装置
CN103916468A (zh) 系统升级方法、终端、服务器及升级系统
CN105808305A (zh) 静态资源的加载方法和装置
CN105354017A (zh) 信息处理方法及装置
CN104407924A (zh) 内存优化方法及装置
CN105094830A (zh) 一种执行目标功能的方法和装置
CN104881304A (zh) 资源下载方法及装置
CN105183571A (zh) 函数调用方法和装置
CN105550213A (zh) 图片浏览方法和装置
CN105468417A (zh) 应用软件安装方法和装置
CN104951184A (zh) 应用程序下载方法及装置
CN105187671A (zh) 录音方法及装置
CN104503786A (zh) 固件刷新方法及装置
CN104951337A (zh) 文件增量更新方法及装置

Legal Events

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