CN104077422B - 下载apk的去重方法及装置 - Google Patents
下载apk的去重方法及装置 Download PDFInfo
- Publication number
- CN104077422B CN104077422B CN201410350657.0A CN201410350657A CN104077422B CN 104077422 B CN104077422 B CN 104077422B CN 201410350657 A CN201410350657 A CN 201410350657A CN 104077422 B CN104077422 B CN 104077422B
- Authority
- CN
- China
- Prior art keywords
- apk
- downloaded
- local
- files
- download
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种下载APK的去重方法及装置,其中,所述方法包括:获取外部服务器中待下载APK的部分信息;通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。本发明的有益效果是:减少了带宽资源的占用,提高了爬虫系统下载文件的速度,快速及时的给应用搜索和安全检测提供基础数据信息,改善了产品的响应速度,增加了用户体验、节省了公司成本。
Description
技术领域
本发明涉及一种下载APK的去重方法及装置,尤其涉及一种应用于爬虫系统的APK下载去重的方法及装置。
背景技术
为了满足用户各应用搜索需求,应用搜索引擎需要及时收集海量的应用样本进行数据分析和供用户下载。在应用搜索引擎中,爬虫系统需要快速收集海量的、来自不同应用商店APK文件,然而,不同应用商店中存在大量重复的APK文件,其会严重影响应用搜索引擎的搜索效率、推荐质量;并且,对于手机安全检测而言,大量重复的APK文件会降低安全检测的时效性;另外,大量重复APK文件的下载需要额外耗费大量的带宽和存储,造成大量的资金浪费。
发明内容
本发明的目的之一在于提供一种下载APK的去重方法及装置。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重方法,其包括:
S1、获取外部服务器中待下载APK的部分信息;
S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;
S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重方法,其包括:
S1、获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;
S2、计算所述待下载APK的MF文件的偏移量;
S3、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S4步骤,若无,则进入S5步骤;
S4、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S5步骤;
S5、下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重方法,其包括:
S1、获取外部服务器中待下载APK的部分信息;
S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;
S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则执行S4步骤;
S4、计算所述待下载APK的MF文件的偏移量;
S5、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S6步骤,若无,则进入S7步骤;
S6、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S7步骤;
S7、下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。
作为本发明的进一步改进,所述方法包括:
获取外部服务器中对待下载APK的描述文本信息;
将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行S1~S7步骤,若未发现描述文本信息相同的本地APK,则直接下载所述待下载APK的全部内容。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重装置,其包括:
下载模块,用于获取外部服务器中待下载APK的部分信息;
计算模块,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;
判断模块,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则不再下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重装置,其包括:
下载模块,用于获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;
计算模块,用于计算所述待下载APK的MF文件的偏移量;
判断模块,用于将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;
所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;
所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的本地APK时,下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。
为实现上述发明目的之一,本发明一实施方式提供了一种下载APK的去重装置,其包括:
下载模块,用于获取外部服务器中待下载APK的部分信息;
计算模块,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集,以及计算所述待下载APK的MF文件的偏移量;
判断模块,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;
所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;
所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的本地APK时,下载所述待下载APK的全部内容。
作为本发明的进一步改进,所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容。
作为本发明的进一步改进,所述下载模块还用于,获取外部服务器中对待下载APK的描述文本信息;
所述判断模块还用于,将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若未发现描述文本信息相同的本地APK,则直接通过下载模块下载所述待下载APK的全部内容。
与现有技术相比,本发明的有益效果是:减少了带宽资源的占用,提高了爬虫系统下载文件的速度,快速及时的给应用搜索和安全检测提供基础数据信息,改善了产品的响应速度,增加了用户体验、节省了公司成本。
附图说明
图1是本发明第一实施方式的下载APK的去重方法的流程图;
图2是本发明第二实施方式的下载APK的去重方法的流程图;
图3是本发明第三实施方式的下载APK的去重方法的流程图;
图4是本发明一实施方式的下载APK的去重装置的模块图。
具体实施方式
以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所轻易做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
爬虫系统可爬取外部服务器(应用商店)的APK信息,包括:应用名、大小、类型、更新时间、证书、MF文件的偏移量、MD5等,并将爬取到的APK数据存入本地数据库。
如图1所示,在本发明第一实施方式中,应用于爬虫系统的APK下载去重的方法,其包括:
S1、获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。当然,在此之前,可通过http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信息后,可通过SimHash算法对文件头部信息提起固定片段的内容做为特征集。
S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据库中的APK重复,不再下载所述待下载APK的全部内容。进一步地,若未发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据中的APK不重复,继续下载所述待下载APK的全部内容,并存储于所述本地数据库中。
如图2所示,在本发明第二实施方式中,应用于爬虫系统的APK下载去重的方法,其包括:
S1、获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。当然,在此之前,可通过http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
S2、计算所述待下载APK的MF文件的偏移量;该偏移量即是MF文件距离APK头部的距离。
S3、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S4步骤,若无,则进入S5步骤;
S4、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S5步骤;进一步地,可先计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相匹配,若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的全部内容。
S5、下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。
如图3所示,在本发明第三实施方式中,应用于爬虫系统的APK下载去重的方法结合了本发明第一实施方式和第二实施方式,使得去重判断更为精确,该实施方式具体包括以下步骤:
S1、获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。当然,在此之前,可通过http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信息后,可通过SimHash算法对文件头部信息提起固定片段的内容做为特征集。
S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则执行S4步骤;进一步地,若未发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据中的APK不重复,继续下载所述待下载APK的全部内容,并存储于所述本地数据库中。
S4、计算所述待下载APK的MF文件的偏移量;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。该偏移量即是MF文件距离APK头部的距离。
S5、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S6步骤,若无,则进入S7步骤;
S6、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S7步骤;进一步地,可先计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相匹配,若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的全部内容。
S7、下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。
在上述各个实施方式中,还可先获取外部服务器中对待下载APK的描述文本信息(例如,应用名、大小、类别(教育、旅游、商业等)、更新时间、证书等信息);再将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行后续步骤,若未发现描述文本信息相同的本地APK,则直接下载所述待下载APK的全部内容。
如图4所示,在本发明一实施方式中,应用于爬虫系统的APK下载去重的装置,包括下载模块100、计算模块200、判断模块300,以及用于存储已下载的APK的本地数据库。其可分别对应于上述的不同实施方式。
其中,所述装置对应于上述第一实施方式时,所述装置包括:
下载模块100,用于获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。
当然,在此之前,可通过判断模块300根据http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
计算模块200,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信息后,可通过SimHash算法对文件头部信息提起固定片段的内容做为特征集。
判断模块300,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据库中的APK重复,不再下载所述待下载APK的全部内容。进一步地,若未发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据中的APK不重复,继续通过下载模块100下载所述待下载APK的全部内容,并存储于所述本地数据库中。
所述装置对应于上述第二实施方式时,所述装置包括:
下载模块100,用于获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。
当然,在此之前,可通过判断模块300根据http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
计算模块200,用于计算所述待下载APK的MF文件的偏移量;该偏移量即是MF文件距离APK头部的距离。
判断模块300,用于将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;
所述判断模块300还用于将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则通过下载模块100下载所述待下载APK的全部内容;进一步地,可先通过计算模块200计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相匹配。若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的全部内容。
所述下载模块100还用与下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。
所述装置对应于上述第三实施方式时,所述装置包括:
下载模块100,用于获取外部服务器中待下载APK的部分信息;进一步地,在本实施方式中,该部分信息为APK的文件头部信息,该文件头部信息为所述待下载APK的前1024字节内容。本实施方式中,通过获取待下载APK的文件头部信息,即可判断该待下载APK是否与本地数据库中的已存APK重复,避免了现有技术中需要下载APK全部内容才能判断是否重复所带来的缺陷。
当然,在此之前,可通过判断模块300根据http协议读取前面APK的下载地址的前两个字节,以判断该文件前两个字节是否符合APK文件的格式,过滤掉不满足条件的下载地址,通常情况下,APK文件前两个字节为PK。
计算模块200,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;在获取到待下载APK的文件头部信息后,可通过SimHash算法对文件头部信息提起固定片段的内容做为特征集。
判断模块300,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则通过所述下载模块100下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则继续判断;进一步地,若未发现与所述待下载APK相同特征集的本地APK,则认为该待下载APK与本地数据中的APK不重复,继续下载所述待下载APK的全部内容,并存储于所述本地数据库中。
所述计算模块200还用于,计算所述待下载APK的MF文件的偏移量;一般,对于APK而言,MF文件具有唯一性,不同的APK是具有不同的MF文件的。该偏移量即是MF文件距离APK头部的距离。
所述判断模块300还用于,将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则继续判断,若无,则通过下载模块100下载所述待下载APK的全部内容;
所述判断模块300还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则通过下载模块100下载所述待下载APK的全部内容;进一步地,可先通过计算模块200计算待下载APK的MF文件的哈希值,以和本地数据库中已存的本地APK的MF文件的哈希值相匹配,若具有相同的本地APK,则表示,MF文件的偏移量相同,同时MF文件的哈希值相同,如此,即代表待下载APK与本地数据库中已存的APK存在重复,不再继续下载该待下载APK的全部内容。
所述下载模块100还用于下载所述待下载APK的全部内容。如果上述步骤中没有发现相同的本地APK,由于MF文件的唯一性,可代表待下载的APK与本地数据库中已存的APK不重复。那么,即可继续下载所述待下载APK的全部内容,并存入所述本地数据库。
在上述各个实施方式中,所述下载模块100还用于获取外部服务器中对待下载APK的描述文本信息(例如,应用名、大小、类别(教育、旅游、商业等)、更新时间、证书等信息);所述判断模块300还用于将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行后续步骤,若未发现描述文本信息相同的本地APK,则直接通过所述下载模块100下载所述待下载APK的全部内容。
综上所述,本发明的有益效果是:减少了带宽资源的占用,提高了爬虫系统下载文件的速度,快速及时的给应用搜索和安全检测提供基础数据信息,改善了产品的响应速度,增加了用户体验、节省了公司成本。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。
在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以2个或2个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施方式所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。
Claims (6)
1.一种下载APK的去重方法,其特征在于,所述方法包括:
S1、获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容;
S2、计算所述待下载APK的MF文件的偏移量;
S3、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S4步骤,若无,则进入S5步骤;
S4、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入
S5步骤;
S5、下载所述待下载APK的全部内容。
2.一种下载APK的去重方法,其特征在于,所述方法包括:
S1、获取外部服务器中待下载APK的部分信息;所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容;
S2、通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集;
S3、将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则执行S4步骤;
S4、计算所述待下载APK的MF文件的偏移量;
S5、将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;若有,则进入S6步骤,若无,则进入S7步骤;
S6、将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;若有,则不再下载所述待下载APK的全部内容,若无,则进入S7步骤;
S7、下载所述待下载APK的全部内容。
3.根据权利要求2所述的下载APK的去重方法,其特征在于,所述方法包括:
获取外部服务器中对待下载APK的描述文本信息;
将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若发现描述文本信息相同的本地APK,则执行S1~S7步骤,若未发现描述文本信息相同的本地APK,则直接下载所述待下载APK的全部内容。
4.一种下载APK的去重装置,其特征在于,所述装置包括:
下载模块,用于获取外部服务器中待下载APK的部分信息,所述部分信息包括所述待下载APK的MF文件;所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容;
计算模块,用于计算所述待下载APK的MF文件的偏移量;
判断模块,用于将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;
所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;
所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的本地APK时,下载所述待下载APK的全部内容。
5.一种下载APK的去重装置,其特征在于,所述装置包括:
下载模块,用于获取外部服务器中待下载APK的部分信息;所述部分信息为文件头部信息,所述文件头部信息为所述待下载APK的前1024字节内容;
计算模块,用于通过哈希算法对所述待下载APK的部分信息提取固定片段,作为该待下载APK的特征集,以及计算所述待下载APK的MF文件的偏移量;
判断模块,用于将所述待下载APK的特征集与本地数据库已存的本地APK的特征集相匹配,若未发现与所述待下载APK相同特征集的本地APK,则下载所述待下载APK的全部内容;若发现与所述待下载APK相同特征集的本地APK,则将所述待下载APK的MF文件的偏移量与本地数据库已存的本地APK的MF文件的偏移量相匹配,判断是否有与待下载APK的MF文件的偏移量相同的本地APK;
所述判断模块还用于,将所述待下载APK的MF文件的哈希值与本地数据库已存的本地APK的MF文件的哈希值相匹配,判断是否有与待下载APK的MF文件的哈希值相同的本地APK;
所述下载模块还用于当判断模块判断本地数据库中没有与待下载APK相同的本地APK时,下载所述待下载APK的全部内容。
6.根据权利要求5所述的下载APK的去重装置,其特征在于,
所述下载模块还用于,获取外部服务器中对待下载APK的描述文本信息;
所述判断模块还用于,将所述待下载APK的描述文本信息与本地数据库中已存的本地APK的描述文本信息相匹配,若未发现描述文本信息相同的本地APK,则直接通过下载模块下载所述待下载APK的全部内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410350657.0A CN104077422B (zh) | 2014-07-22 | 2014-07-22 | 下载apk的去重方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410350657.0A CN104077422B (zh) | 2014-07-22 | 2014-07-22 | 下载apk的去重方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104077422A CN104077422A (zh) | 2014-10-01 |
CN104077422B true CN104077422B (zh) | 2018-05-01 |
Family
ID=51598676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410350657.0A Active CN104077422B (zh) | 2014-07-22 | 2014-07-22 | 下载apk的去重方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104077422B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213738B (zh) * | 2018-11-20 | 2022-01-25 | 武汉理工光科股份有限公司 | 一种云存储文件级重复数据删除检索系统及方法 |
CN113127860B (zh) * | 2019-12-30 | 2023-10-20 | Oppo广东移动通信有限公司 | 可执行文件的检测方法、装置、终端及存储介质 |
CN112732282A (zh) * | 2021-01-20 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 安装包的下载方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789494A (zh) * | 2012-07-11 | 2012-11-21 | 深圳市宜搜科技发展有限公司 | 一种互联网资源去重的处理方法及系统 |
CN103020188A (zh) * | 2012-11-30 | 2013-04-03 | 北京网秦天下科技有限公司 | 多平台应用搜索方法和服务器 |
CN103095838A (zh) * | 2013-01-16 | 2013-05-08 | 福州博远无线网络科技有限公司 | 一种通过下载增量升级包来升级安卓智能手机软件的方法 |
CN103412767A (zh) * | 2013-06-09 | 2013-11-27 | 百度国际科技(深圳)有限公司 | 一种应用版本的识别与升级方法以及系统 |
CN103475687A (zh) * | 2013-05-24 | 2013-12-25 | 北京网秦天下科技有限公司 | 用于下载网站数据的分布式方法和系统 |
-
2014
- 2014-07-22 CN CN201410350657.0A patent/CN104077422B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789494A (zh) * | 2012-07-11 | 2012-11-21 | 深圳市宜搜科技发展有限公司 | 一种互联网资源去重的处理方法及系统 |
CN103020188A (zh) * | 2012-11-30 | 2013-04-03 | 北京网秦天下科技有限公司 | 多平台应用搜索方法和服务器 |
CN103095838A (zh) * | 2013-01-16 | 2013-05-08 | 福州博远无线网络科技有限公司 | 一种通过下载增量升级包来升级安卓智能手机软件的方法 |
CN103475687A (zh) * | 2013-05-24 | 2013-12-25 | 北京网秦天下科技有限公司 | 用于下载网站数据的分布式方法和系统 |
CN103412767A (zh) * | 2013-06-09 | 2013-11-27 | 百度国际科技(深圳)有限公司 | 一种应用版本的识别与升级方法以及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104077422A (zh) | 2014-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10216848B2 (en) | Method and system for recommending cloud websites based on terminal access statistics | |
CN103885987B (zh) | 一种音乐推荐方法和系统 | |
CN107423613B (zh) | 依据相似度确定设备指纹的方法、装置及服务器 | |
CN109840533B (zh) | 一种应用拓扑图识别方法及装置 | |
WO2016201819A1 (zh) | 检测恶意文件的方法和装置 | |
CN110135693A (zh) | 一种风险识别方法、装置、设备及存储介质 | |
CN103077254B (zh) | 网页获取方法和装置 | |
CN103530365A (zh) | 获取资源的下载链接的方法及系统 | |
CN106598984A (zh) | 网络爬虫的数据处理方法及装置 | |
CN105302815B (zh) | 网页的统一资源定位符url的过滤方法和装置 | |
CN110119882A (zh) | 一种平台风险监控方法、装置、设备及存储介质 | |
CN104572720B (zh) | 一种网页信息排重的方法、装置及计算机可读存储介质 | |
CN105812417B (zh) | 远端服务器、路由器及不良网页信息过滤方法 | |
CN109669795A (zh) | 崩溃信息处理方法及装置 | |
CN104077422B (zh) | 下载apk的去重方法及装置 | |
CN106919588A (zh) | 一种应用程序搜索系统及方法 | |
CN108234454B (zh) | 一种身份认证方法、服务器及客户端设备 | |
US9521164B1 (en) | Computerized system and method for detecting fraudulent or malicious enterprises | |
CN109145588A (zh) | 数据处理方法及装置 | |
CN104424316A (zh) | 一种数据存储方法、数据查询方法、相关装置和系统 | |
CN110737633B (zh) | 一种基于云管平台的资源管理方法及系统 | |
CN104408188B (zh) | 数据处理方法和装置 | |
CN105095387A (zh) | 基于用户评论信息的poi数据采集方法及装置 | |
CN106897297B (zh) | 网站栏目间访问路径的确定方法及装置 | |
CN104636384B (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 |