获取相似应用的方法及装置的制造方法

文档序号:8473000阅读:269来源:国知局
获取相似应用的方法及装置的制造方法
【专利说明】
【技术领域】
[0001]本发明涉及软件技术领域,尤其涉及一种获取相似应用的方法及装置。
【【背景技术】】
[0002]目前,应用(app)的数量已经越来越多,甚至达到了千万级别的数量。如何在大量的应用中找到与目标应用相似的应用成为亟需解决的问题。
[0003]针对上述问题,现有做法一般是根据目标应用的名称或目标应用的安装包(apk)的包名进行查找,以获取与目标应用相似的应用。在实际应用中,同一应用在分发过程中其名称或包名有可能变化,这使得目前根据名称或包名查找相似应用的方法会失效,获取相似应用的成功率较低

【发明内容】

[0004]本发明的多个方面提供一种获取相似应用的方法及装置,用以提高获取相似应用的成功概率。
[0005]本发明的一方面,提供一种获取相似应用的方法,包括:
[0006]确定至少两个待识别应用;
[0007]根据所述至少两个待识别应用的内容,识别所述至少两个待识别应用中是否存在相似应用。
[0008]本发明的另一方面,提供一种获取相似应用的装置,包括:
[0009]确定模块,用于确定至少两个待识别应用;
[0010]识别模块,用于根据所述至少两个待识别应用的内容,识别所述至少两个待识别应用中是否存在相似应用。
[0011]在本申请中,在确定至少两个待识别应用之后,根据至少两个待识别应用的内容,识别至少两个待识别应用中是否存在相似应用,达到获取相似应用的目的,本申请不是通过应用的名称或包名来发现相似应用,而是根据应用的内容来获取相似应用,可以避免因应用的名称或包名发生变化导致获取相似应用失败的情况,有利于提高获取相似应用的成功概率。
【【附图说明】】
[0012]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0013]图1为本发明一实施例提供的获取相似应用的方法的流程示意图;
[0014]图2为本发明一实施例提供的获取相似应用的装置的结构示意图;
[0015]图3为本发明另一实施例提供的获取相似应用的装置的结构示意图。【【具体实施方式】】
[0016]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0017]随着应用数量越来越多,为了用户能够成功的从大量应用中获取相似应用,本发明提供一种获取相似应用的方法。该方法的主要思想是:基于应用的内容,来判断应用之间是否相似。由于不再通过应用的名称或包名来发现相似应用,可以避免因应用的名称或包名发生变化导致获取相似应用失败的情况,有利于提高获取相似应用的成功概率。
[0018]为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述。
[0019]图1为本发明一实施例提供的获取相似应用的方法的流程示意图。如图1所示,该方法包括:
[0020]101、确定至少两个待识别应用。
[0021 ] 102、根据至少两个待识别应用的内容,识别至少两个待识别应用中是否存在相似应用。
[0022]在本实施例中,为便于进行描述,将需要进行相似性识别的应用称为待识别应用。其中,相似性识别至少涉及两个待识别应用。
[0023]在一种应用场景中,已知某个应用,可称为目标应用,用户需要从其它应用中发现与该目标应用相似的应用。在该应用场景中,实际上是要判断目标应用和其它应用是否相似,因此,目标应用以及其它应用都可作为本实施例中的待识别应用。
[0024]在另一种应用场景中,已知至少两个应用,用户需要从已知的至少两个应用中发现相似的应用。在该应用场景中,实际上是要判断两两应用是否相似,因此,已知的至少两个应用都可以作为本实施例中的待识别应用。
[0025]在确定至少两个待识别应用之后,根据至少两个待识别应用的内容,来识别至少两个应用中是否存在相似应用。其中,待识别应用的内容可以是但不限于:待识别应用中的文件。由于不在基于待识别应用的名称或包名,而是基于应用的内容,所以即使应用的名称或包名发生了变化,也可以识别出实质上相似的应用。与现有技术相比,本实施例基于应用的内容来识别相似应用的方法,有利于提高获取相似应用的成功概率。
[0026]一种根据至少两个待识别应用的内容,识别至少两个待识别应用中是否存在相似应用的简单实现方式为:直接将每两个待识别应用的内容进行比较,若内容相似度达到一定程度(例如大于预设的相似度门限),则确定两个待识别应用相似,反之,确定两个待识别应用不相似。
[0027]在此说明,在本申请实施例中,认为“相同”是一种相似度为百分之百的相似。
[0028]进一步,在实际应用中,应用的内容也可能发生一些变化,在这种情况下,若将应用的内容作为一个整体进行相似性判断,有可能无法识别出相似应用。为了能够更好的基于应用的内容进行相似应用的识别,本实施例进一步给出一种方法:
[0029]将至少两个待识别应用中每个待识别应用的内容拆分为至少一个内容片段;根据每个待识别应用的至少一个内容片段,识别至少两个待识别应用中是否存在相似应用。
[0030]对一个应用来说,若该应用的部分内容发生了变化,那么从整个内容的角度来看,变化前的应用和变化后的应用的内容是不同的,但是这并不表示这两个应用不相似。例如,假设有两个应用是同一应用的不同版本,那么这两个应用实质上是相似的。对于实质上相似的两个应用来说,其内容总有一些是相近的,而且相近的内容越多,意味着这两个应用越相似。
[0031]基于此,本实施例通过将应用的内容划分为至少一个内容片段,通过待识别应用的内容片段来识别待识别应用是否相似,可以识别出内容发生变化的应用是否相似,有利于进一步提高识别相似应用的成功概率。
[0032]例如,可以预先设定片段粒度,按照该片段粒度对待识别应用的内容进行拆分,从而将待识别应用的内容拆分成至少一个内容片段。
[0033]进一步,考虑到待识别应用的内容主要是指待识别应用中的文件,而这些文件可能包括文本文件、音频文件、图像文件等多种类型,若将所有文件全部拆分成内容片段,其处理复杂度较大,消耗的资源较多,并且还会影响识别相似应用的效率。基于此,本实施例提供一种解决方法,具体为:
[0034]首先将至少两个待识别应用中的每个待识别应用的内容划分为文本类文件和二进制类文件;例如,可以将待识别应用中的布局文件(如xml文件)和文本文件(如txt文件)归为文本类文件,而将待识别应用中的其余文件,如图像文件、音频文件等归为二进制类文件;对于二进制类文件,直接将其作为一个内容片段,即将二进制类文件作为一个整体进行处理;对文本类文件,可以按照预设的片段粒度,将文本类文件拆分为至少一个内容片段。
[0035]由上述可见,通过将待识别应用的内容划分为文本类文件和二进制类文件,并且只对其中的文本类文件进行拆分,而不对二进制类文件进行拆分,一方面可以达到利用内容片段进行相似应用识别的目的,另一方面还可以降低拆分工作量,节约资源、提高识别相似应用的效率。
[0036]上述片段粒度越细,则每个文本类文件拆分出的内容片段的数量就越多,意味着进行相似应用识别的粒度越细,识别精度越高;上述片段粒度越粗,则每个文本类文件拆分出的内容片段的数量就越少,意味着进行相似应用识别的粒度越粗,识别精度相对较低。值得说明的是,本实施例不对上述片段粒度进行限制。例如,可以将文本类文件中的一行或某个对象(如Unity3D中的资源文件)作为片段粒度,
[0037]基于上述拆分出的内容片段,一种根据内容片段,识别至少两个待识别应用中是否存在相似应用方式具体为:可以将至少两个待识别应用中的每两个待识别应用的至少一个内容片段进行比较,若相似度达到一定程度(例如大于预设的相似度门限)的内容片段的数量较多(例如大于预设的数量门限),则确定两个待识别应用相似,反之,确定两个待识别应用不相似;进而可以确定至少两个待识别应用中是否存在相似应用。
[0038]进一步,考虑到内容片段的数量较多,若直接比较内容片段是否相似,工作量较大,处理效率较低。基于此,本实施例给出一种解决方法,具体为:
[0039]对每个待识别应用的至少一个内容片段进行相似哈希处理,以获得每个待识别应用的相似哈希值;根据每个待识别应用的相似哈希值,识别至少两个待识别应用中是否存在相似应用。
[0040]可选的,本实施例可以借鉴现有simhash算法,对每个待识别应用的至少一个内容片段进行相似哈希处理。本实施例中的相似哈希处理与现有simhash算法相类似,却不完全相同,可称为类sim
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1