摘要
缓慢循环是一种Android特有代码异味,对Android应用程序的可维护性产生负面影响。针对传统基于静态程序分析方法误检率较高的问题,本文提出基于深度学习的检测方法。首先,使用代码文本信息作为模型输入的特征集。然后,使用两种深度学习模型进行异味检测。此外,为了快速、准确获得模型所需的大量样本数据,提出了一种基于开源Android项目构造正负样本的方法并实现工具ASSD。最后,使用开源Android数据集对提出的方法进行实验验证。实验结果表明,本文方法优于现有基于程序静态分析的检测方法,其中检测效果最好的是CNN模型,其F1值平均提高了28.7%。此外,本文方法优于基于机器学习的检测方法,相对于检测效果最好的随机森林模型,CNN模型的F1值平均提高了9.43%。
- 单位