《表3 实验对象及结果:安卓应用的回调序列与模型检测应用》
被评估的应用数据集包含已有工作中出现的9个开源应用[4,10,11]。本文从不同的应用市场和开源平台中下载了这些应用程序。表3列出了这些应用程序及其相关信息,包括大小和关键组件的数量。利用本文方法检测出了MyTracks和Music两个应用中的数据竞争缺陷。通过人工验证,这两个数据竞争都是真实存在的。在MyTracks中,全局变量providerUtils在onLocationChangedAsync中被定义,但是在onDestroy中被赋值为NULL。当onDestroy回调发生在onLocationChangedAsync之前时,会造成引用空值的异常。其原因是因为这两个回调可以发生在不同的子线程中,造成数据竞争。另外4个数据竞争异常发生在Music应用中,全局对象mAdapter在onRetainNonConfigurationInstance以及onDestroy中被操作,其发生异常原理与MyTracks相同。
图表编号 | XD0040522200 严禁用于非法目的 |
---|---|
绘制时间 | 2019.01.16 |
作者 | 崔洁、陈亮、康介恢、吴彦峰、于家伟 |
绘制单位 | 国网天津市电力公司电力科学研究院、国网天津市电力公司电力科学研究院、南开大学计算机与控制工程学院、南开大学计算机与控制工程学院、南开大学计算机与控制工程学院 |
更多格式 | 高清、无水印(增值服务) |