一种apk的快速检测及提高单位资源利用率的方法

文档序号:9646516阅读:290来源:国知局
一种apk的快速检测及提高单位资源利用率的方法
【技术领域】
[0001] 本发明属于信息安全技术领域,尤其涉及一种Android移动应用程序(Android applicationpackage,APK)的快速检测及提高检测系统单位资源利用率的方法。
【背景技术】
[0002] 随着移动互联网的高速发展,基于Android系统的各类应用被大量开发。与此同 时,出现了众多垃圾应用、恶意应用等,使得移动终端面临的安全问题也随之增多,导致开 发者和用户利益受损。因此需要对Android的应用程序进行安全检测。
[0003] 现有的检测方法大致包括:静态检测、动态检测以及病毒检测。静态检测是在APK 执行前进行检测;动态检测是在APK运行时进行检测;病毒检测是针对APK进行病毒样本 识别杀毒。不同检测方法所需的检测速率及消耗检测系统资源的能力不尽相同。
[0004]目前基于云计算的APK检测,其步骤主要是:首先,上传待测APK文件;其次,根据 上传APK的先后次序,依次分配到指定的虚拟机中进行检测。面对大量不同大小、类型、不 同检测需求的待测APK时,由于没有考虑到合理分配系统的检测资源,必然会存在一定的 检测效率低以及资源利用率低等问题。
[0005] 因此需要一种Android移动应用程序的快速检测及提高检测系统单位资源利用 率的方法来解决现有技术存在的问题。

【发明内容】

[0006] 本发明的目的是针对现有技术的不足,提出一种Android移动应用程序的快速检 测及提高单位资源利用率的方法,该方法有效提高APK的检测速度以及检测资源利用率。
[0007] 本发明所述技术方案关注的不是将哪些待检测APK分配到某个虚拟机中最优,而 是如何将所有待检测APK分配到不同的虚拟机中,使得检测系统以最优的方式快速检测 APK〇
[0008] 本发明所述技术方案的技术思路为:运行虚拟机的计算机确定待检测APK占用每 台虚拟机资源的最小值①:以及确定当前时间段未被检测APK优先级属性之和与被检测 APK优先级属性之和的比值Φ2,并利用拉格朗日加权法对(^和Φ2进行加权处理形成Φ 值;然后利用遗传算法确定待检测ΑΡΚ最优分配方案,即通过在遗传算法中通过加入适应 度Ρ来实现,所述适应度Ρ为所有虚拟机的Φ之和,由此实现关注整个检测系统的最优; 另外,在本发明使用的遗传算法中,通过交叉、选择等操作实现对整个检测系统实现最优分 配,从而达到提高检测资源利用率以实现快速检测ΑΡΚ的目的。
[0009] 实现本发明所述技术效果的具体如下: 一种ΑΡΚ的快速检测及提高单位资源利用率的方法: 包括一台运行虚拟机的计算机; 所述运行虚拟机的计算机从检测队列中批量获取待检测ΑΡΚ; 所述运行虚拟机的计算机获取待检测ΑΡΚ属性和虚拟机资源属性; 所述运行虚拟机的计算机检测并确定待检测APK属性值及虚拟机资源属性值; 所述运行虚拟机的计算机确定ΑΡΚ的属性对应的虚拟机资源的权重,所述权重用于标 识ΑΡΚ的属性对虚拟机资源的影响程度; 所述运行虚拟机的计算机建立并计算待检测ΑΡΚ属性值与虚拟机资源属性值函数; 所述运行虚拟机的计算机利用遗传算法确定最优ΑΡΚ分配方案; 所述运行虚拟机的计算机根据最优ΑΡΚ分配方案将待检测ΑΡΚ分配给虚拟机。
[0010] 进一步的,所述ΑΡΚ属性包括:ΑΡΚ文件的大小、DEX文件的大小、ΑΡΚ文件中代码 复杂度、ΑΡΚ文件中界面复杂度、ΑΡΚ文件中资源文件复杂度和ΑΡΚ检测优先级,其中, 所述ΑΡΚ文件的大小是指ΑΡΚ文件本身占用存储空间的大小,单位为Mb; 所述DEX文件的大小是指ΑΡΚ文件中的扩展名为.dex文件的大小,单位Mb; 所述ΑΡΚ文件中代码复杂度是指dex文件中代码的目录深度与文件数的关系,代码复 杂度设置范围为(1,100),APK文件目录深度为(1,10],超过10的以10计,APK的文件数 (1,1000],超过 1000 的以 1000 计; 所述APK文件中界面复杂度是指APK在运行过程中的界面数与界面中所使用控件的关 系,界面复杂度指设置范围为(1,100),APK界面总数为(1,100],超过100的以100计,单 个界面的控件总数(1,10],超过10的以10计; 所述APK文件中资源文件复杂度是指APK中res目录下目录的层级与下面目录和文件 数之间的关系,所述资源文件的复杂度设置范围为(1,1〇〇),目录深度为(1,5],每级最大 目录数(1,10],每个目录的最大文件数(1,100]; 所述APK检测优先级是指APK所要满足的最晚检测开始时间,所需资源的最大数等条 件,包括但不限于上述条件,可根据实际情况动态调整; 所述虚拟机资源属性包括CPU指数、内存指数和线程指数,其中, 所述CPU指数指的是CPU当前可被使用的资源与CPU原始可使用资源的比率; 所述内存指数指的是内存当前空闲资源与内存原始可使用资源的比率, 所述线程指数指的是当前超线程中线程空闲数与原始线程数。
[0011] 进一步的,所述APK属性值包括APK文件的大小属性值、DEX文件的大小属性值、 APK文件中代码复杂度属性值、APK文件中界面复杂度属性值、APK文件中资源文件复杂度 属性值和APK检测优先级属性值,其中, APK文件的大小属性值,具体为APK实际大小与可检测APK文件最大值之比乘以100 ;APK文件中DEX文件的大小属性值,具体为APK中DEX的实际大小与可检测DEX文件的 最大值之比乘以100 ; APK文件中代码复杂度属性值,具体为DEX文件中代码的目录深度乘以可检测DEX文件 的最大值30后除以最大目录深度10并加上DEX文件中文件总数乘以70后除以文件最大 数1000得到; APK文件中界面复杂度属性值,具体为APK文件的总界面数乘以单个界面控件的最多 数除以设定的界面最大数与界面中控件的最大数的积,然后再乘100得到APK文件中界面 复杂度属性值; APK文件中资源文件复杂度属性值,具体为APK文件中Res文件下实际目录深度与实际 目录最大数及实际目录文件的最大数之积除以设定的Res文件下的目录深度最大值与目 录数最大值及目录中最大文件数的积,然后再乘以100得到PK文件中资源文件复杂度属性 值; ΑΡΚ检测优先级属性值,具体为最晚待检时间10减去最晚设定检测时间除以10后乘以 100确定; 所述虚拟机资源属性值包括CPU指数值、内存指数值和线程指数值,其中, 所述CPU指数值具体为CPU核心数与CPU主频及当前CPU未被使用率的乘积; 所述内存指数值具体为CPU内存大小与当前内存未被使用率的乘积; 所述线程指数值具体为线程数与当前线程未被使用率的乘积。
[0012] 所述APK属性对应的虚拟机资源的权重确定方式为: 每个APK具有某些属性,而每个虚拟机拥有有限的资源,APK的属性决定了其在虚拟机 中的分配结果; 设影响APK分配的属性如下: 每个虚拟机的剩余资源种类如下: 由于虚拟机的某种资源与ΑΡΚ的某些属性相关联,从而决定ΑΡΚ的分配方式,所述关联 的表达式为:
其中, s=l, 2, 3, 4, 5, 6t=l, 2, 3, 4, 5, 6 表示资源s与属性t之间关系,需同时满足〇 ??和% +? +…+^? =1 两个条件;&表示某个APK分配到虚拟机后所占用的虚拟机S类资源。
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1