《表3 实验对象及结果:安卓应用的回调序列与模型检测应用》

《表3 实验对象及结果:安卓应用的回调序列与模型检测应用》   提示:宽带有限、当前游客访问压缩模式
本系列图表出处文件名:随高清版一同展现
《安卓应用的回调序列与模型检测应用》


  1. 获取 高清版本忘记账户?点击这里登录
  1. 下载图表忘记账户?点击这里登录

被评估的应用数据集包含已有工作中出现的9个开源应用[4,10,11]。本文从不同的应用市场和开源平台中下载了这些应用程序。表3列出了这些应用程序及其相关信息,包括大小和关键组件的数量。利用本文方法检测出了MyTracks和Music两个应用中的数据竞争缺陷。通过人工验证,这两个数据竞争都是真实存在的。在MyTracks中,全局变量providerUtils在onLocationChangedAsync中被定义,但是在onDestroy中被赋值为NULL。当onDestroy回调发生在onLocationChangedAsync之前时,会造成引用空值的异常。其原因是因为这两个回调可以发生在不同的子线程中,造成数据竞争。另外4个数据竞争异常发生在Music应用中,全局对象mAdapter在onRetainNonConfigurationInstance以及onDestroy中被操作,其发生异常原理与MyTracks相同。