论文部分内容阅读
在当前信息化时代中,手机已成为人们生活中不可缺少的部分。Android手机占领了大半个市场,手机应用软件的数量一直在疯狂增长。由于市场的监管不力让“问题软件”有机可趁,其中性能和安全问题尤为突出。如何有效检测“问题软件”,对提升用户的体验和保障用户的信息财产安全具有重要意义。本文结合Android系统原理和机器学习理论,对应用软件的性能检测和安全检测进行了研究,设计并实现了一个对Android应用软件性能及安全进行检测的系统。本论文主要研究内容如下:(1)在对现有应用软件的性能检测和安全检测方法进行分析的基础上,结合用户的需求,设计了Android应用软件性能及安全检测系统的总体框架结构,并将系统整体结构分为应用软件性能检测和安全检测两大模块。(2)在应用软件性能检测模块中,设计了各项性能指标检测方法。其中,性能指标包括流畅度、CPU占用率、内存使用、电量和网络流量。通过研究Android系统UI绘制机制,提出了一种新的流畅度评估标准;基于对Linux系统文件和Android系统进程与内存关系的分析,本文对CPU占用率、内存使用等其他性能指标的计算方法进行了研究。(3)在应用软件安全检测模块中,提取应用软件特征并利用机器学习算法学习、建立安全检测模型,实现对应用软件的安全检测。首先,通过分析Android系统安全机制,并结合安全应用软件与恶意应用软件在行为上的差异性,提取应用软件中跟安全相关的特征信息。其次,针对提取的特征维数过高和特征之间相关性大的问题,采用了特征选择算法进行处理。最后,在使用机器学习算法训练检测模型时,针对单一SVM算法训练的模型检测精度不高的问题,本文结合集成学习的方法,采用AdaBoost-SVM算法构建检测模型。(4)研究应用软件的性能检测方法后,在构建安全检测模型的基础上,本文采用模块化的方法设计并实现了一个检测应用软件性能和安全的APP工具Androidet。本文创新点如下:(1)在应用软件性能检测中,针对传统的FPS值衡量Android应用界面流畅度方法存在的不足,本文提出一种新的流畅度评估参数FD,并依据FD设计了一套流畅度的评分模型。(2)在建立安全检测模型的特征选择阶段,结合应用软件样本集不平衡、特征之间存在相关性的特点,本文改进了用于特征权重排序的Relief算法,采用改进后的算法进行特征选择,有效地提高了安全检测模型的检测精度。