识别应用程序类型的方法和装置制造方法
【专利摘要】本发明提出一种识别应用程序类型的方法和装置,该识别应用程序类型的方法包括获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序;判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序;如果存在,根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。该方法能够实现对应用程序类型的识别。
【专利说明】识别应用程序类型的方法和装置
【技术领域】
[0001]本发明涉及数据处理【技术领域】,尤其涉及一种识别应用程序类型的方法和装置。
【背景技术】
[0002]当前用户手机存储中,由于应用的开发规范不当,导致大量存储空间被无用数据占用,致使手机存储空间不足,存储数据杂乱不堪,因此需要清理更多的无用数据,释放更多存储空间。在清理无用数据时需要对未知类型的应用程序进行识别,以便采用相应手段进行清理。
【发明内容】
[0003]本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
[0004]为此,本发明的一个目的在于提出一种识别应用程序类型的方法,该方法可以实现对应用程序类型的识别。
[0005]本发明的另一个目的在于提出一种识别应用程序类型的装置。
[0006]为达到上述目的,一方面,本发明实施例提出的识别应用程序类型的方法,包括:获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序;判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序;如果存在,根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。
[0007]本发明实施例提出的识别应用程序类型的方法,通过获取与要识别的应用程序属于同一组的应用程序,并根据该同一组的应用程序中的类型已知的应用程序的包名确定要识别的应用程序的类别,可以实现对应用程序类型的识别。
[0008]为达到上述目的,另一方面,本发明实施例提出的识别应用程序类型的装置,包括:第一获取模块,用于获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序;第一判断模块,用于判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序;第一确定模块,用于如果所述第一判断模块得到的判断结果是存在,根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。
[0009]本发明实施例提出的识别应用程序类型的装置,通过获取与要识别的应用程序属于同一组的应用程序,并根据该同一组的应用程序中的类型已知的应用程序的包名确定要识别的应用程序的类别,可以实现对应用程序类型的识别。
[0010]为达到上述目的,又一方面,本发明实施例提出的移动设备,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为移动设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序;判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序;如果存在,根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。
[0011]本发明实施例提出的移动设备,通过获取与要识别的应用程序属于同一组的应用程序,并根据该同一组的应用程序中的类型已知的应用程序的包名确定要识别的应用程序的类别,可以实现对应用程序类型的识别。
[0012]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】
【附图说明】
[0013]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0014]图1是本发明识别应用程序类型的方法一实施例的流程示意图;
[0015]图2是本发明识别应用程序类型的方法另一实施例的流程示意图;
[0016]图3是本发明识别应用程序类型的装置一实施例的结构示意图;
[0017]图4是本发明识别应用程序类型的装置另一实施例的结构示意图。
【具体实施方式】
[0018]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0019]图1是本发明识别应用程序类型的方法一实施例的流程示意图,该方法包括:
[0020]Sll:获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序。
[0021 ] 其中,可以获取应用程序的包名,再确定应用程序的包名中的第一部分,将第一部分相同的应用程序确定为同一组应用程序。
[0022]可选的,所述获取第一组应用程序,包括:
[0023]确定应用程序的包名中的第一部分,所述第一部分用于分组;
[0024]将第一部分与所述要识别的应用程序的第一部分相同的应用程序,确定为所述第一组应用程序。
[0025]可选的,所述确定所述包名中的第一部分,包括:
[0026]确定所述包名被分隔符分开的段数;
[0027]如果所述段数小于或等于预设阈值,选择所述包名中的被所述分隔符分开的第一段作为所述第一部分;或者,
[0028]如果所述段数大于所述预设阈值,选择所述包名中的被所述分隔符分开的第一段和第二段作为所述第一部分。
[0029]可选的,所述分隔符是点号。
[0030]可选的,所述预设阈值是2。
[0031]例如,从包名-应用名-应用类型数据库中获取每一条数据,将其中的包名按照点号(切片,若切片后的段数小于或等于2段,则选择’分开的第一段作为第一部分,若切片后的段数大于2段,则选择’分开的前两段作为第一部分。
[0032]具体如,读取的包名包括:appinventor.ai_fcatalar, appinventor.ai_estimccc和appinventor.ai_esethac,由于被‘.’分开的段数是2,则取第一段,也就是‘.’前的一段作为第一部分,由于上述三个包名的第一部分(即appinventor)相同,则上述三个包名是同一组的应用程序。
[0033]又例如,读取的包名包括:avm.androiddukkan.mhm, avm.androiddukkan.hsn 和avm.androiddukkan.bsn,由于被’分开的段数是3,则取第一段和第二段,也就是’前的两段作为第一部分,由于上述三个包名的第一部分(即avm.androiddukkan)相同,贝丨J上述三个包名是同一组的应用程序。
[0034]S12:判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序。
[0035]其中,在包名-应用名-应用类型数据库中读取的每一条数据中,会对应记录包名、应用名和应用类型,如果一个包名对应的应用类型是已知的,则该包名指示的应用程序的类型是已知的,否则,如果包名对应的应用类型是空白的,则该包名指示的应用程序的类型是未知的。
[0036]可选的,所述与所述要识别的应用程序的包名具有相似度的应用程序,包括:
[0037]第二部分与所述要识别的应用程序的包名的第二部分具有按序相同的字符,所述第二部分是所述包名中除所述第一部分之外的部分。
[0038]例如,假设要识别的应用程序的包名是appinventor.ai_esethac,根据上述描述的划分方式,第二部分是指’后的分段,由于appinventor.ai_estimccc的第二部分(即 ai_estimccc)存在与 appinventor.ai_esethac (即 ai_esethac)的第二部分按序相同的字符,且appinventor.ai_fcatalar的第二部分(即ai_fcatalar)也存在与appinventor.ai_esethac (即ai_esethac)的第二部分按序相同的字符,因此,appinventor.ai_estimccc 指不的应用程序和 appinventor.ai_fcatalar 指不的应用程序都是与appinventor.ai_esethac指示的应用程序具有相似度的应用程序。
[0039]S13:如果存在,根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。
[0040]可选的,所述根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型,包括:
[0041]从所述具有相似度的应用程序中选择出第一应用程序,其中,所述第一应用程序的包名的第二部分与所述要识别的应用程序的包名的第二部分按序相同的字符的个数最多;
[0042]将所述第一应用程序的类型,确定为所述要识别的应用程序的类型。
[0043]例如,假设appinventor.ai_estimccc 和 appinventor.ai_fcatalar 对应的应用类型都是已知的,由于appinventor.ai_estimccc的第二部分与appinventor.ai_esethac的第二部分按序相同的字符的个数,比appinventor.ai_estimccc的第二部分与appinventor.ai_esethac的第二部分按序相同的字符的个数多,因此,在此种情况下,第一应用程序是指appinventor.ai_estimccc指示的应用程序,可以确定appinventor.ai_esethac指示的应用程序的应用类型是appinventor.ai_estimccc指示的应用程序的应用类型。
[0044]另一方面,如果不存在所述具有相似度的应用程序,则获取所述第一组应用程序中已知类型的应用程序;
[0045]根据所述已知类型的应用程序,确定所述要识别的应用程序的类型。
[0046]可选的,所述根据所述已知类型的应用程序,确定所述要识别的应用程序的类型,包括:
[0047]确定每种已知类型的应用程序在所述其他应用程序中的比例;
[0048]将比例最大的类型确定为所述要识别的应用程序的类型。
[0049]例如,要识别的应用程序的包名是avm.androiddukkan.mhm,与要识别的应用程序属于同一组的已知类型的应用程序的包名分别是avm.androiddukkan.hsn,avm.androiddukkan.bsn 和 avm.androiddukkan.bsp,按照上述的划分方式,由于 avm.androiddukkan.hsn, avm.androiddukkan.bsn 和 avm.androiddukkan.bsp 的第二部分都不存在与avm.androiddukkan.mhm按序相同的字符,因此,与要识别的应用程序属于同一组的应用程序中不存在与要识别的应用程序具有相似度的应用程序,此时,可以将已知类型中比例最大的类型确定为要识别的应用程序的类型,例如,avm.androiddukkan.hsn对应的类型是第一类型,avm.androiddukkan.bsn 和 avm.androiddukkan.bsp 对应的类型是第二类型,由于第二类型的比例比第一类型的比例大,则可以确定要识别的应用程序(即avm.androiddukkan.mhm指示的应用程序)的类型是第二类型。
[0050]本实施例通过获取与要识别的应用程序属于同一组的应用程序,并根据该同一组的应用程序中的类型已知的应用程序的包名确定要识别的应用程序的类别,可以实现对应用程序类型的识别。进一步的,当识别出应用程序的类型后,可以进行相应的处理,从而可以清理更多无用数据,释放更多存储空间。
[0051]图2是本发明识别应用程序类型的方法另一实施例的流程示意图,该方法包括:
[0052]S21:读取包名-应用名-应用类型数据库中的一条数据。
[0053]其中,以手机为例,手机的存储空间中可以对应记录应用程序的包名,应用名和应用类型,该对应记录上述参数的数据库可以称为包名-应用名-应用类型数据库,从该数据库中读取的一条数据包括一个应用程序的包名,应用名和应用类型。
[0054]S22:当所述数据的类型是未知时,确定所述数据对应的应用程序是要识别的应用程序。
[0055]其中,读取的一条数据中会存在上述三个参数,当应用类型的值是空白的,则表明该包名对应的应用程序的应用类型是未知的,可以确定其为要识别的应用程序。
[0056]S23:判断要识别的应用程序的包名中是否具有标识类型的词汇,若是,执行S24,否则执行S25。
[0057]其中,标识类型的词汇是指根据该词汇可以直接确定出类型的词汇,例如,标识类型的词汇为:.mp3或者.film等。
[0058]S24:将所述词汇标识的类型确定为所述要识别的应用程序的类型。之后执行S29。
[0059]例如,当包名中包含‘.mp3’时,可以确定其类型是music类型。
[0060]S25:获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序。
[0061]例如,将包名按’切片,若切分后的段数小于或等于2,则根据切分后的第一段获取与要识别的应用程序属于同一组的应用程序,若切分后的段数小于或等于2,则根据切分后的前两段获取与要识别的应用程序属于同一组的应用程序。
[0062]具体如,读取的包名包括:appinventor.ai_fcatalar, appinventor.ai_estimccc和appinventor.ai_esethac,由于被‘.’分开的段数是2,则取第一段,也就是‘.’前的一段作为第一部分,由于上述三个包名的第一部分(即appinventor)相同,则上述三个包名是同一组的应用程序。
[0063]又例如,读取的包名包括:avm.androiddukkan.mhm, avm.androiddukkan.hsn 和avm.androiddukkan.bsn,由于被’分开的段数是3,则取第一段和第二段,也就是’前的两段作为第一部分,由于上述三个包名的第一部分(即avm.androiddukkan)相同,贝丨J上述三个包名是同一组的应用程序。
[0064]S26:判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序,若是,执行S27,否则执行S28。
[0065]其中,在包名-应用名-应用类型数据库中读取的每一条数据中,会对应记录包名、应用名和应用类型,如果一个包名对应的应用类型是已知的,则该包名指示的应用程序的类型是已知的,否则,如果包名对应的应用类型是空白的,则该包名指示的应用程序的类型是未知的。
[0066]可选的,所述与所述要识别的应用程序的包名具有相似度的应用程序,包括:
[0067]第二部分与所述要识别的应用程序的包名的第二部分具有按序相同的字符,所述第二部分是所述包名中除所述第一部分之外的部分。
[0068]例如,假设要识别的应用程序的包名是appinventor.ai_esethac,根据上述描述的划分方式,第二部分是指’后的分段,由于appinventor.ai_estimccc的第二部分(即 ai_estimccc)存在与 appinventor.ai_esethac (即 ai_esethac)的第二部分按序相同的字符,且appinventor.ai_fcatalar的第二部分(即ai_fcatalar)也存在与appinventor.ai_esethac (即ai_esethac)的第二部分按序相同的字符,因此,appinventor.ai_estimccc 指不的应用程序和 appinventor.ai_fcatalar 指不的应用程序都是与appinventor.ai_esethac指示的应用程序具有相似度的应用程序。
[0069]S27:根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。之后执打S29。
[0070]可选的,所述根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型,包括:
[0071]从所述具有相似度的应用程序中选择出第一应用程序,其中,所述第一应用程序的包名的第二部分与所述要识别的应用程序的包名的第二部分按序相同的字符的个数最多;
[0072]将所述第一应用程序的类型,确定为所述要识别的应用程序的类型。
[0073]例如,假设appinventor.ai_estimccc 和 appinventor.ai_fcatalar 对应的应用类型都是已知的,由于appinventor.ai_estimccc的第二部分与appinventor.ai_esethac的第二部分按序相同的字符的个数,比appinventor.ai_estimccc的第二部分与appinventor.ai_esethac的第二部分按序相同的字符的个数多,因此,在此种情况下,第一应用程序是指appinventor.ai_estimccc指示的应用程序,可以确定appinventor.ai_esethac指示的应用程序的应用类型是appinventor.ai_estimccc指示的应用程序的应用类型。
[0074]S28:获取所述第一组应用程序中已知类型的应用程序,根据所述已知类型的应用程序,确定所述要识别的应用程序的类型。
[0075]可选的,所述根据所述已知类型的应用程序,确定所述要识别的应用程序的类型,包括:
[0076]确定每种已知类型的应用程序在所述其他应用程序中的比例;
[0077]将比例最大的类型确定为所述要识别的应用程序的类型。
[0078]例如,要识别的应用程序的包名是avm.androiddukkan.mhm,与要识别的应用程序属于同一组的已知类型的应用程序的包名分别是avm.androiddukkan.hsn,avm.androiddukkan.bsn 和 avm.androiddukkan.bsp,按照上述的划分方式,由于 avm.androiddukkan.hsn, avm.androiddukkan.bsn 和 avm.androiddukkan.bsp 的第二部分都不存在与avm.androiddukkan.mhm按序相同的字符,因此,与要识别的应用程序属于同一组的应用程序中不存在与要识别的应用程序具有相似度的应用程序,此时,可以将已知类型中比例最大的类型确定为要识别的应用程序的类型,例如,avm.androiddukkan.hsn对应的类型是第一类型,avm.androiddukkan.bsn 和 avm.androiddukkan.bsp 对应的类型是第二类型,由于第二类型的比例比第一类型的比例大,则可以确定要识别的应用程序(即avm.androiddukkan.mhm指示的应用程序)的类型是第二类型。
[0079]S29:读取下一条数据,执行可以重复执行S22-29直至数据库中的每一条数据都被处理过。
[0080]本实施例通过获取与要识别的应用程序属于同一组的应用程序,并根据该同一组的应用程序中的类型已知的应用程序的包名确定要识别的应用程序的类别,可以实现对应用程序类型的识别。另外,当存在标识类型的词汇时,可以根据该标识类型的词汇确定类型,实现确定类型方式的多样性。进一步的,当识别出应用程序的类型后,可以进行相应的处理,例如,使用相应类型清理规则清理垃圾文件和残留文件,从而可以清理更多无用数据,释放更多存储空间。
[0081]图3是本发明识别应用程序类型的装置一实施例的结构示意图,该装置30包括第一获取模块31、第一判断模块32和第一确定模块33。
[0082]第一获取模块31用于获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序;
[0083]可选的,参见图4,所述第一获取模块31包括:
[0084]第一单元311,用于确定应用程序的包名中的第一部分,所述第一部分用于分组;
[0085]第二单元312,用于将第一部分与所述要识别的应用程序的第一部分相同的应用程序,确定为所述第一组应用程序。
[0086]可选的,所述第一单元311具体用于:
[0087]确定所述包名被分隔符分开的段数;
[0088]如果所述段数小于或等于预设阈值,选择所述包名中的被所述分隔符分开的第一段作为所述第一部分;或者,
[0089]如果所述段数大于所述预设阈值,选择所述包名中的被所述分隔符分开的第一段和第二段作为所述第一部分。
[0090]可选的,所述分隔符是点号。
[0091]可选的,所述预设阈值是2。
[0092]例如,从包名-应用名-应用类型数据库中获取每一条数据,将其中的包名按照点号(切片,若切片后的段数小于或等于2段,则选择’分开的第一段作为第一部分,若切片后的段数大于2段,则选择’分开的前两段作为第一部分。
[0093]具体如,读取的包名包括:appinventor.ai_fcatalar, appinventor.ai_estimccc和appinventor.ai_esethac,由于被‘.’分开的段数是2,则取第一段,也就是‘.’前的一段作为第一部分,由于上述三个包名的第一部分(即appinventor)相同,则上述三个包名是同一组的应用程序。
[0094]又例如,读取的包名包括:avm.androiddukkan.mhm, avm.androiddukkan.hsn 和avm.androiddukkan.bsn,由于被’分开的段数是3,则取第一段和第二段,也就是’前的两段作为第一部分,由于上述三个包名的第一部分(即avm.androiddukkan)相同,贝丨J上述三个包名是同一组的应用程序。
[0095]第一判断模块32用于判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序;
[0096]其中,在包名-应用名-应用类型数据库中读取的每一条数据中,会对应记录包名、应用名和应用类型,如果一个包名对应的应用类型是已知的,则该包名指示的应用程序的类型是已知的,否则,如果包名对应的应用类型是空白的,则该包名指示的应用程序的类型是未知的。
[0097]可选的,所述第一判断模块32具体用于将第二部分与所述要识别的应用程序的包名的第二部分具有按序相同的字符的包名对应的应用程序,确定为与所述要识别的应用程序的包名具有相似度的应用程序,所述第二部分是所述包名中除所述第一部分之外的部分。
[0098]例如,假设要识别的应用程序的包名是appinventor.ai_esethac,根据上述描述的划分方式,第二部分是指’后的分段,由于appinventor.ai_estimccc的第二部分(即 ai_estimccc)存在与 appinventor.ai_esethac (即 ai_esethac)的第二部分按序相同的字符,且appinventor.ai_fcatalar的第二部分(即ai_fcatalar)也存在与appinventor.ai_esethac (即ai_esethac)的第二部分按序相同的字符,因此,appinventor.ai_estimccc 指不的应用程序和 appinventor.ai_fcatalar 指不的应用程序都是与appinventor.ai_esethac指示的应用程序具有相似度的应用程序。
[0099]第一确定模块33用于如果所述第一判断模块得到的判断结果是存在,根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。
[0100]可选的,所述第一确定模块33具体用于:
[0101]从所述具有相似度的应用程序中选择出第一应用程序,其中,所述第一应用程序的包名的第二部分与所述要识别的应用程序的包名的第二部分按序相同的字符的个数最多;
[0102]将所述第一应用程序的类型,确定为所述要识别的应用程序的类型。
[0103]例如,假设appinventor.ai_estimccc 和 appinventor.ai_fcatalar 对应的应用类型都是已知的,由于appinventor.ai_estimccc的第二部分与appinventor.ai_esethac的第二部分按序相同的字符的个数,比appinventor.ai_estimccc的第二部分与appinventor.ai_esethac的第二部分按序相同的字符的个数多,因此,在此种情况下,第一应用程序是指appinventor.ai_estimccc指示的应用程序,可以确定appinventor.ai_esethac指示的应用程序的应用类型是appinventor.ai_estimccc指示的应用程序的应用类型。
[0104]另一实施例中,参见图4,该装置30还包括:
[0105]第二确定模块34,用于如果所述第一判断模块32得到的判断结果是不存在,获取所述第一组应用程序中已知类型的应用程序;根据所述已知类型的应用程序,确定所述要识别的应用程序的类型。
[0106]可选的,所述第二确定模块34具体用于:
[0107]确定每种已知类型的应用程序在所述其他应用程序中的比例;
[0108]将比例最大的类型确定为所述要识别的应用程序的类型。
[0109]例如,要识别的应用程序的包名是avm.androiddukkan.mhm,与要识别的应用程序属于同一组的已知类型的应用程序的包名分别是avm.androiddukkan.hsn,avm.androiddukkan.bsn 和 avm.androiddukkan.bsp,按照上述的划分方式,由于 avm.androiddukkan.hsn, avm.androiddukkan.bsn 和 avm.androiddukkan.bsp 的第二部分都不存在与avm.androiddukkan.mhm按序相同的字符,因此,与要识别的应用程序属于同一组的应用程序中不存在与要识别的应用程序具有相似度的应用程序,此时,可以将已知类型中比例最大的类型确定为要识别的应用程序的类型,例如,avm.androiddukkan.hsn对应的类型是第一类型,avm.androiddukkan.bsn 和 avm.androiddukkan.bsp 对应的类型是第二类型,由于第二类型的比例比第一类型的比例大,则可以确定要识别的应用程序(即avm.androiddukkan.mhm指示的应用程序)的类型是第二类型。
[0110]另一实施例中,参见图4,该装置30还包括:
[0111]第二获取模块35,用于获取所述要识别的应用程序的包名;
[0112]其中,以手机为例,手机的存储空间中可以对应记录应用程序的包名,应用名和应用类型,该对应记录上述参数的数据库可以称为包名-应用名-应用类型数据库,从该数据库中读取的一条数据包括一个应用程序的包名,应用名和应用类型。
[0113]第二判断模块36,用于判断所述包名中是否具有标识类型的词汇,以便在不具有时获取第一组应用程序;
[0114]其中,标识类型的词汇是指根据该词汇可以直接确定出类型的词汇,例如,标识类型的词汇为:.mp3或者.film等。
[0115]第三确定模块37,用于在所述第二判断模块36得到的判断结果是具有时,将所述词汇标识的类型确定为所述要识别的应用程序的类型。
[0116]例如,当包名中包含mp3’时,可以确定其类型是music类型。
[0117]另一实施例中,参见图4,该装置30还包括:
[0118]读取模块38,用于从数据库中读取数据,当所述数据的类型是未知时,确定所述数据对应的应用程序是要识别的应用程序,其中,所述数据库中每条数据对应记录应用程序的包名,应用名和类型。
[0119]其中,读取的一条数据中会存在上述三个参数,当应用类型的值是空白的,则表明该包名对应的应用程序的应用类型是未知的,可以确定其为要识别的应用程序。
[0120]本实施例通过获取与要识别的应用程序属于同一组的应用程序,并根据该同一组的应用程序中的类型已知的应用程序的包名确定要识别的应用程序的类别,可以实现对应用程序类型的识别。另外,当存在标识类型的词汇时,可以根据该标识类型的词汇确定类型,实现确定类型方式的多样性。进一步的,当识别出应用程序的类型后,可以进行相应的处理,例如,使用相应类型清理规则清理垃圾文件和残留文件,从而可以清理更多无用数据,释放更多存储空间。
[0121]本发明实施例还提供了一种移动设备,该移动端设备包括壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为移动设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
[0122]SlT:获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序。
[0123]其中,可以获取应用程序的包名,再确定应用程序的包名中的第一部分,将第一部分相同的应用程序确定为同一组应用程序。
[0124]可选的,所述获取第一组应用程序,包括:
[0125]确定应用程序的包名中的第一部分,所述第一部分用于分组;
[0126]将第一部分与所述要识别的应用程序的第一部分相同的应用程序,确定为所述第一组应用程序。
[0127]可选的,所述确定所述包名中的第一部分,包括:
[0128]确定所述包名被分隔符分开的段数;
[0129]如果所述段数小于或等于预设阈值,选择所述包名中的被所述分隔符分开的第一段作为所述第一部分;或者,
[0130]如果所述段数大于所述预设阈值,选择所述包名中的被所述分隔符分开的第一段和第二段作为所述第一部分。
[0131 ] 可选的,所述分隔符是点号。
[0132]可选的,所述预设阈值是2。
[0133]例如,从包名-应用名-应用类型数据库中获取每一条数据,将其中的包名按照点号(切片,若切片后的段数小于或等于2段,则选择’分开的第一段作为第一部分,若切片后的段数大于2段,则选择’分开的前两段作为第一部分。
[0134]具体如,读取的包名包括:appinventor.ai_fcatalar, appinventor.ai_estimccc和appinventor.ai_esethac,由于被‘.’分开的段数是2,则取第一段,也就是‘.’前的一段作为第一部分,由于上述三个包名的第一部分(即appinventor)相同,则上述三个包名是同一组的应用程序。
[0135]又例如,读取的包名包括:avm.androiddukkan.mhm, avm.androiddukkan.hsn 和avm.androiddukkan.bsn,由于被’分开的段数是3,则取第一段和第二段,也就是’前的两段作为第一部分,由于上述三个包名的第一部分(即avm.androiddukkan)相同,贝丨J上述三个包名是同一组的应用程序。
[0136]S12’:判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序。
[0137]其中,在包名-应用名-应用类型数据库中读取的每一条数据中,会对应记录包名、应用名和应用类型,如果一个包名对应的应用类型是已知的,则该包名指示的应用程序的类型是已知的,否则,如果包名对应的应用类型是空白的,则该包名指示的应用程序的类型是未知的。
[0138]可选的,所述与所述要识别的应用程序的包名具有相似度的应用程序,包括:
[0139]第二部分与所述要识别的应用程序的包名的第二部分具有按序相同的字符,所述第二部分是所述包名中除所述第一部分之外的部分。
[0140]例如,假设要识别的应用程序的包名是appinventor.ai_esethac,根据上述描述的划分方式,第二部分是指’后的分段,由于appinventor.ai_estimccc的第二部分(即 ai_estimccc)存在与 appinventor.ai_esethac (即 ai_esethac)的第二部分按序相同的字符,且appinventor.ai_fcatalar的第二部分(即ai_fcatalar)也存在与appinventor.ai_esethac (即ai_esethac)的第二部分按序相同的字符,因此,appinventor.ai_estimccc 指不的应用程序和 appinventor.ai_fcatalar 指不的应用程序都是与appinventor.ai_esethac指示的应用程序具有相似度的应用程序。
[0141]S13’:如果存在,根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。
[0142]可选的,所述根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型,包括:
[0143]从所述具有相似度的应用程序中选择出第一应用程序,其中,所述第一应用程序的包名的第二部分与所述要识别的应用程序的包名的第二部分按序相同的字符的个数最多;
[0144]将所述第一应用程序的类型,确定为所述要识别的应用程序的类型。
[0145]例如,假设appinventor.ai_estimccc 和 appinventor.ai_fcatalar 对应的应用类型都是已知的,由于appinventor.ai_estimccc的第二部分与appinventor.ai_esethac的第二部分按序相同的字符的个数,比appinventor.ai_estimccc的第二部分与appinventor.ai_esethac的第二部分按序相同的字符的个数多,因此,在此种情况下,第一应用程序是指appinventor.ai_estimccc指示的应用程序,可以确定appinventor.ai_esethac指示的应用程序的应用类型是appinventor.ai_estimccc指示的应用程序的应用类型。
[0146]另一方面,如果不存在所述具有相似度的应用程序,则获取所述第一组应用程序中已知类型的应用程序;
[0147]根据所述已知类型的应用程序,确定所述要识别的应用程序的类型。
[0148]可选的,所述根据所述已知类型的应用程序,确定所述要识别的应用程序的类型,包括:
[0149]确定每种已知类型的应用程序在所述其他应用程序中的比例;
[0150]将比例最大的类型确定为所述要识别的应用程序的类型。
[0151 ] 例如,要识别的应用程序的包名是avm.androiddukkan.mhm,与要识别的应用程序属于同一组的已知类型的应用程序的包名分别是avm.androiddukkan.hsn,avm.androiddukkan.bsn 和 avm.androiddukkan.bsp,按照上述的划分方式,由于 avm.androiddukkan.hsn, avm.androiddukkan.bsn 和 avm.androiddukkan.bsp 的第二部分都不存在与avm.androiddukkan.mhm按序相同的字符,因此,与要识别的应用程序属于同一组的应用程序中不存在与要识别的应用程序具有相似度的应用程序,此时,可以将已知类型中比例最大的类型确定为要识别的应用程序的类型,例如,avm.androiddukkan.hsn对应的类型是第一类型,avm.androiddukkan.bsn 和 avm.androiddukkan.bsp 对应的类型是第二类型,由于第二类型的比例比第一类型的比例大,则可以确定要识别的应用程序(即avm.androiddukkan.mhm指示的应用程序)的类型是第二类型。
[0152]本实施例通过获取与要识别的应用程序属于同一组的应用程序,并根据该同一组的应用程序中的类型已知的应用程序的包名确定要识别的应用程序的类别,可以实现对应用程序类型的识别。进一步的,当识别出应用程序的类型后,可以进行相应的处理,从而可以清理更多无用数据,释放更多存储空间。
[0153]另一实施例中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
[0154]S21’:读取包名-应用名-应用类型数据库中的一条数据。
[0155]其中,以手机为例,手机的存储空间中可以对应记录应用程序的包名,应用名和应用类型,该对应记录上述参数的数据库可以称为包名-应用名-应用类型数据库,从该数据库中读取的一条数据包括一个应用程序的包名,应用名和应用类型。
[0156]S22’:当所述数据的类型是未知时,确定所述数据对应的应用程序是要识别的应用程序。
[0157]其中,读取的一条数据中会存在上述三个参数,当应用类型的值是空白的,则表明该包名对应的应用程序的应用类型是未知的,可以确定其为要识别的应用程序。
[0158]S23’:判断要识别的应用程序的包名中是否具有标识类型的词汇,若是,执行S24’,否则执行S25’。
[0159]其中,标识类型的词汇是指根据该词汇可以直接确定出类型的词汇,例如,标识类型的词汇为:.mp3或者.film等。
[0160]S24’:将所述词汇标识的类型确定为所述要识别的应用程序的类型。之后执行S29,。
[0161]例如,当包名中包含mp3’时,可以确定其类型是music类型。
[0162]S25’:获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序。
[0163]例如,将包名按’切片,若切分后的段数小于或等于2,则根据切分后的第一段获取与要识别的应用程序属于同一组的应用程序,若切分后的段数小于或等于2,则根据切分后的前两段获取与要识别的应用程序属于同一组的应用程序。
[0164]具体如,读取的包名包括:appinventor.ai_fcatalar, appinventor.ai_estimccc和appinventor.ai_esethac,由于被‘.’分开的段数是2,则取第一段,也就是‘.’前的一段作为第一部分,由于上述三个包名的第一部分(即appinventor)相同,则上述三个包名是同一组的应用程序。
[0165]又例如,读取的包名包括:avm.androiddukkan.mhm, avm.androiddukkan.hsn 和avm.androiddukkan.bsn,由于被’分开的段数是3,则取第一段和第二段,也就是’前的两段作为第一部分,由于上述三个包名的第一部分(即avm.androiddukkan)相同,贝丨J上述三个包名是同一组的应用程序。
[0166]S26’:判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序,若是,执行S27’,否则执行S28’。
[0167]其中,在包名-应用名-应用类型数据库中读取的每一条数据中,会对应记录包名、应用名和应用类型,如果一个包名对应的应用类型是已知的,则该包名指示的应用程序的类型是已知的,否则,如果包名对应的应用类型是空白的,则该包名指示的应用程序的类型是未知的。
[0168]可选的,所述与所述要识别的应用程序的包名具有相似度的应用程序,包括:
[0169]第二部分与所述要识别的应用程序的包名的第二部分具有按序相同的字符,所述第二部分是所述包名中除所述第一部分之外的部分。
[0170]例如,假设要识别的应用程序的包名是appinventor.ai_esethac,根据上述描述的划分方式,第二部分是指’后的分段,由于appinventor.ai_estimccc的第二部分(即 ai_estimccc)存在与 appinventor.ai_esethac (即 ai_esethac)的第二部分按序相同的字符,且appinventor.ai_fcatalar的第二部分(即ai_fcatalar)也存在与appinventor.ai_esethac (即ai_esethac)的第二部分按序相同的字符,因此,appinventor.ai_estimccc 指不的应用程序和 appinventor.ai_fcatalar 指不的应用程序都是与appinventor.ai_esethac指示的应用程序具有相似度的应用程序。
[0171]S27’:根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。之后执行S29’。
[0172]可选的,所述根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型,包括:
[0173]从所述具有相似度的应用程序中选择出第一应用程序,其中,所述第一应用程序的包名的第二部分与所述要识别的应用程序的包名的第二部分按序相同的字符的个数最多;
[0174]将所述第一应用程序的类型,确定为所述要识别的应用程序的类型。
[0175]例如,假设appinventor.ai_estimccc 和 appinventor.ai_fcatalar 对应的应用类型都是已知的,由于appinventor.ai_estimccc的第二部分与appinventor.ai_esethac的第二部分按序相同的字符的个数,比appinventor.ai_estimccc的第二部分与appinventor.ai_esethac的第二部分按序相同的字符的个数多,因此,在此种情况下,第一应用程序是指appinventor.ai_estimccc指示的应用程序,可以确定appinventor.ai_esethac指示的应用程序的应用类型是appinventor.ai_estimccc指示的应用程序的应用类型。
[0176]S28’:获取所述第一组应用程序中已知类型的应用程序,根据所述已知类型的应用程序,确定所述要识别的应用程序的类型。
[0177]可选的,所述根据所述已知类型的应用程序,确定所述要识别的应用程序的类型,包括:
[0178]确定每种已知类型的应用程序在所述其他应用程序中的比例;
[0179]将比例最大的类型确定为所述要识别的应用程序的类型。
[0180]例如,要识别的应用程序的包名是avm.androiddukkan.mhm,与要识别的应用程序属于同一组的已知类型的应用程序的包名分别是avm.androiddukkan.hsn,avm.androiddukkan.bsn 和 avm.androiddukkan.bsp,按照上述的划分方式,由于 avm.androiddukkan.hsn, avm.androiddukkan.bsn 和 avm.androiddukkan.bsp 的第二部分都不存在与avm.androiddukkan.mhm按序相同的字符,因此,与要识别的应用程序属于同一组的应用程序中不存在与要识别的应用程序具有相似度的应用程序,此时,可以将已知类型中比例最大的类型确定为要识别的应用程序的类型,例如,avm.androiddukkan.hsn对应的类型是第一类型,avm.androiddukkan.bsn 和 avm.androiddukkan.bsp 对应的类型是第二类型,由于第二类型的比例比第一类型的比例大,则可以确定要识别的应用程序(即avm.androiddukkan.mhm指示的应用程序)的类型是第二类型。
[0181]S29’:读取下一条数据,执行可以重复执行S22’ -29’直至数据库中的每一条数据都被处理过。
[0182]本实施例通过获取与要识别的应用程序属于同一组的应用程序,并根据该同一组的应用程序中的类型已知的应用程序的包名确定要识别的应用程序的类别,可以实现对应用程序类型的识别。另外,当存在标识类型的词汇时,可以根据该标识类型的词汇确定类型,实现确定类型方式的多样性。进一步的,当识别出应用程序的类型后,可以进行相应的处理,例如,使用相应类型清理规则清理垃圾文件和残留文件,从而可以清理更多无用数据,释放更多存储空间。
[0183]需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0184]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0185]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0186]本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0187]此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0188]上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0189]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0190]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【权利要求】
1.一种识别应用程序类型的方法,其特征在于,包括:获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序;判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序;如果存在,根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。
2.根据权利要求1所述的方法,其特征在于,所述获取第一组应用程序,包括:确定应用程序的包名中的第一部分,所述第一部分用于分组;将第一部分与所述要识别的应用程序的第一部分相同的应用程序,确定为所述第一组应用程序。
3.根据权利要求2所述的方法,其特征在于,所述确定所述包名中的第一部分,包括:确定所述包名被分隔符分开的段数;如果所述段数小于或等于预设阈值,选择所述包名中的被所述分隔符分开的第一段作为所述第一部分;或者,如果所述段数大于所述预设阈值,选择所述包名中的被所述分隔符分开的第一段和第二段作为所述第一部分。
4.根据权利要求3所述的方法,其特征在于,所述分隔符是点号。
5.根据权利要求3所述的方法,其特征在于,所述预设阈值是2。
6.根据权利要求2所述的方法,其特征在于,所述与所述要识别的应用程序的包名具有相似度的应用程序,包括:第二部分与所述要识别的应用程序的包名的第二部分具有按序相同的字符,所述第二部分是所述包名中除所述第一部分之外的部分。
7.根据权利要求6所述的方法,其特征在于,所述根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型,包括:从所述具有相似度的应用程序中选择出第一应用程序,其中,所述第一应用程序的包名的第二部分与所述要识别的应用程序的包名的第二部分按序相同的字符的个数最多;将所述第一应用程序的类型,确定为所述要识别的应用程序的类型。
8.根据权利要求1所述的方法,其特征在于,还包括:如果不存在所述具有相似度的应用程序,则获取所述第一组应用程序中已知类型的应用程序;根据所述已知类型的应用程序,确定所述要识别的应用程序的类型。
9.根据权利要求8所述的方法,其特征在于,所述根据所述已知类型的应用程序,确定所述要识别的应用程序的类型,包括:确定每种已知类型的应用程序在所述其他应用程序中的比例;将比例最大的类型确定为所述要识别的应用程序的类型。
10.根据权利要求1所述的方法,其特征在于,还包括:获取所述要识别的应用程序的包名;判断所述包名中是否具有标识类型的词汇,以便在不具有时获取第一组应用程序;如果具有,则将所述词汇标识的类型确定为所述要识别的应用程序的类型。
11.根据权利要求1-10任一项所述的方法,其特征在于,还包括:从数据库中读取数据,当所述数据的类型是未知时,确定所述数据对应的应用程序是要识别的应用程序,其中,所述数据库中每条数据对应记录应用程序的包名,应用名和类型。
12.—种识别应用程序类型的装置,其特征在于,包括:第一获取模块,用于获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序;第一判断模块,用于判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序;第一确定模块,用于如果所述第一判断模块得到的判断结果是存在,根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。
13.根据权利要求12所述的装置,其特征在于,所述第一获取模块包括:第一单元,用于确定应用程序的包名中的第一部分,所述第一部分用于分组;第二单元,用于将第一部分与所述要识别的应用程序的第一部分相同的应用程序,确定为所述第一组应用程序。
14.根据权利要求12所述的装置,其特征在于,所述第一单元具体用于:确定所述包名被分隔符分开的段数;如果所述段数小于或等于预设阈值,选择所述包名中的被所述分隔符分开的第一段作为所述第一部分;或者,如果所述段数大于所述预设阈值,选择所述包名中的被所述分隔符分开的第一段和第二段作为所述第一部分。
15.根据权利要求14所述的装置,其特征在于,所述分隔符是点号。
16.根据权利要求14所述的装置,其特征在于,所述预设阈值是2。
17.根据权利要求13所述的装置,其特征在于,所述第一判断模块具体用于将第二部分与所述要识别的应用程序的包名的第二部分具有按序相同的字符的包名对应的应用程序,确定为与所述要识别的应用程序的包名具有相似度的应用程序,所述第二部分是所述包名中除所述第一部分之外的部分。
18.根据权利要求17所述的装置,其特征在于,所述第一确定模块具体用于:从所述具有相似度的应用程序中选择出第一应用程序,其中,所述第一应用程序的包名的第二部分与所述要识别的应用程序的包名的第二部分按序相同的字符的个数最多;将所述第一应用程序的类型,确定为所述要识别的应用程序的类型。
19.根据权利要求12所述的装置,其特征在于,还包括:第二确定模块,用于如果所述第一判断模块得到的判断结果是不存在,获取所述第一组应用程序中已知类型的应用程序;根据所述已知类型的应用程序,确定所述要识别的应用程序的类型。
20.根据权利要求19所述的装置,其特征在于,所述第二确定模块具体用于:确定每种已知类型的应用程序在所述其他应用程序中的比例;将比例最大的类型确定为所述要识别的应用程序的类型。
21.根据权利要求13所述的装置,其特征在于,还包括:第二获取模块,用于获取所述要识别的应用程序的包名;第二判断模块,用于判断所述包名中是否具有标识类型的词汇,以便在不具有时获取第一组应用程序;第三确定模块,用于在所述第二判断模块得到的判断结果是具有时,将所述词汇标识的类型确定为所述要识别的应用程序的类型。
22.根据权利要求13-21任一项所述的装置,其特征在于,还包括:读取模块,用于从数据库中读取数据,当所述数据的类型是未知时,确定所述数据对应的应用程序是要识别的应用程序,其中,所述数据库中每条数据对应记录应用程序的包名,应用名和类型。
23.—种移动设备,其特征在于,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为移动设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:获取第一组应用程序,所述第一组应用程序是与要识别的应用程序属于同一组的应用程序;判断所述第一组应用程序中是否存在类型已知的,且包名与所述要识别的应用程序的包名具有相似度的应用程序;如果存在,根据所述具有相似度的应用程序的类型,确定所述要识别的应用程序的类型。
【文档编号】G06F9/44GK104317574SQ201410522641
【公开日】2015年1月28日 申请日期:2014年9月30日 优先权日:2014年9月30日
【发明者】闫泳杉 申请人:北京金山安全软件有限公司