Android应用中声明SDK版本及其与API调用一致性的测量
软件工程
2017-03-20 v2
摘要
Android一直是最受欢迎的智能手机系统,市场上有多个平台版本(如KITKAT和Lollipop)活跃。为管理应用与一个或多个平台版本的兼容性,Android允许应用在清单文件中声明所支持的平台SDK版本。本文首次尝试研究这一现代软件机制。我们的目标是度量真实应用中声明SDK版本(此后简称为DSDK版本)的当前实践,以及DSDK版本与其应用API调用之间的一致性。为此,我们执行了三维分析。首先,我们解析Android文档以获得每个API与其对应平台版本之间的映射。然后,我们分析了超过24K个应用的DSDK-API一致性,其中通过Google Play分析预先排除了1.3K个为不同Android版本提供不同应用二进制文件的应用。除了阐明当前DSDK实践外,我们的研究定量度量了不恰当DSDK版本的两个副作用:(i)约1.8K个应用具有在某些声明SDK版本中不存在的API调用,这导致那些平台版本上的运行时崩溃缺陷;(ii)超过400个应用由于声称过时的目标DSDK版本,可能被远程代码执行利用。这些结果表明声明正确DSDK的重要性和难度,我们的工作可帮助开发者实现该目标。
引用
@article{arxiv.1702.04872,
title = {Measuring the Declared SDK Versions and Their Consistency with API Calls in Android Apps},
author = {Daoyuan Wu and Ximing Liu and Jiayun Xu and David Lo and Debin Gao},
journal= {arXiv preprint arXiv:1702.04872},
year = {2017}
}
备注
This paper has been accepted by WASA 2017 (http://wasa-conference.org/WASA2017/). It is originally a course project paper done by the first three authors in April 2016