首页> 外文会议>IEEE/ACM International Conference on Software Engineering >How Android Developers Handle Evolution-induced API Compatibility Issues: A Large-scale Study
【24h】

How Android Developers Handle Evolution-induced API Compatibility Issues: A Large-scale Study

机译:Android开发人员如何处理进化诱导的API兼容性问题:大规模研究

获取原文

摘要

As Android platform evolves in a fast pace, API-related compatibility issues become a significant challenge for developers. To handle an incompatible API invocation, developers mainly have two choices: merely performing sufficient checks to avoid invoking incompatible APIs on platforms that do not support them, or gracefully providing replacement implementations on those incompatible platforms. As providing more consistent app behaviors, the latter one is more recommended and more challenging to adopt. However, it is still unknown how these issues are handled in the real world, do developers meet difficulties and what can we do to help them. In light of this, this paper performs the first large-scale study on the current practice of handling evolution-induced API compatibility issues in about 300,000 Android market apps, and more importantly, their solutions (if exist). Actually, it is in general very challenging to determine if developers have put in countermeasure for a compatibility issue, as different APIs have diverse behaviors, rendering various repair. To facilitate a large-scale study, this paper proposes RAPID, an automated tool to determine whether a compatibility issue has been addressed or not, by incorporating both static analysis and machine learning techniques. Results show that our trained classifier is quite effective by achieving a F1-score of 95.21% and 91.96% in the training stage and the validation stage respectively. With the help of RAPID, our study yields many interesting findings, e.g. developers are not willing to provide alternative implementations when handling incompatible API invocations (only 38.4%); for those incompatible APIs that Google gives replacement recommendations, the ratio of providing alternative implementations is significantly higher than those without recommendations; developers find more ways to repair compatibility issues than Google's recommendations and the knowledge acquired from these experienced developers would be extremely useful to novice developers and may significantly improve the current status of compatibility issue handling.
机译:随着Android平台以快速发展的发展,相关的API相关的兼容性问题成为开发人员的重大挑战。为了处理不兼容的API调用,开发人员主要有两种选择:仅仅执行足够的检查,以避免在不支持它们的平台上调用不兼容的API,或者优雅地在这些不兼容的平台上提供替换实现。作为提供更一致的应用行为,后者是更多的推荐和更具挑战性的采用。但是,它仍然是如何在现实世界中处理这些问题的若干问题,开发人员会遇到困难,我们可以做些什么来帮助他们。鉴于此,本文对处理进化诱导的API兼容性问题的目前实践进行了第一个大规模研究,在约300,000个Android市场应用程序中,更重要的是,他们的解决方案(如果存在)。实际上,一般来说,确定开发人员是否对兼容性问题的对策进行了非常挑份,因为不同的API具有不同的行为,渲染各种维修。为方便大规模研究,本文通过结合静态分析和机器学习技术来确定是否已经解决了兼容性问题的自动化工具。结果表明,我们的训练有素的分类器分别通过分别在培训阶段和验证阶段获得95.21%和91.96%的F1分数。在快速的帮助下,我们的研究产生了许多有趣的发现,例如,开发人员不愿意在处理不兼容的API调用时提供替代实施(仅38.4%);对于谷歌提供替代建议的那些不兼容的API,提供替代实施的比率明显高于未经建议的比率;开发人员可以找到多种方法来修复兼容性问题,而不是谷歌的建议,这些经验丰富的开发人员收购的知识对于新手开发人员来说非常有用,并且可能会显着提高兼容性问题处理的现状。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号