论文标题

在Android API中识别和表征默默发展的方法

Identifying and Characterizing Silently-Evolved Methods in the Android API

论文作者

Liu, Pei, Li, Li, Yan, Yichun, Fazzini, Mattia, Grundy, John

论文摘要

Android平台无疑是最大的工业规模软件项目之一,拥有超过500,000名的投入和700多名贡献者。该项目提供了Android API,开发人员在很大程度上依靠此API来开发其Android应用程序。不幸的是,由于Android平台及其API以极快的速度发展,因此应用程序开发人员需要连续监视API更改,以避免其应用程序中的兼容性问题(\ ie问题阻止应用程序在使用API​​的较新版本时,应用程序无法按预期工作)。尽管有关Android API中兼容性问题的大量研究,研究界尚未研究与默默发展方法(SEM)有关的问题。这些方法是其行为可能已经改变的函数,但相应的文档没有相应地改变。由于应用程序开发人员依靠提供的文档来发展其应用程序,因此对未正确记录的方法的更改可能会导致使用这些方法在应用程序中发生意外的故障。 为了阐明这类问题,我们进行了一项大规模的经验研究,在该研究中,我们确定并表征了十个Android API版本的SEMS。在研究中,我们确定了SEMS,表征了变化的性质,并分析了SEMS对1,000个现实世界Android应用程序的影响。我们的实验结果表明,SEMS确实存在于Android API中,并且我们认为使用至少一个SEM的应用程序中确实存在957个应用程序。基于这些结果,我们认为Android平台开发人员应采取行动避免引入SEM,尤其是涉及语义变化的SEM。这种情况强调了对自动化技术和工具的需求,以帮助Android从业人员执行此任务。

With over 500,000 commits and more than 700 contributors, the Android platform is undoubtedly one of the largest industrial-scale software projects. This project provides the Android API, and developers heavily rely on this API to develop their Android apps. Unfortunately, because the Android platform and its API evolve at an extremely rapid pace, app developers need to continually monitor API changes to avoid compatibility issues in their apps (\ie issues that prevent apps from working as expected when running on newer versions of the API). Despite a large number of studies on compatibility issues in the Android API, the research community has not yet investigated issues related to silently-evolved methods (SEMs). These methods are functions whose behavior might have changed but the corresponding documentation did not change accordingly. Because app developers rely on the provided documentation to evolve their apps, changes to methods that are not suitably documented may lead to unexpected failures in the apps using these methods. To shed light on this type of issue, we conducted a large-scale empirical study in which we identified and characterized SEMs across ten versions of the Android API. In the study, we identified SEMs, characterized the nature of the changes, and analyzed the impact of SEMs on a set of 1,000 real-world Android apps. Our experimental results show that SEMs do exist in the Android API, and that 957 of the apps we considered use at least one SEM. Based on these results, we argue that the Android platform developers should take actions to avoid introducing SEMs, especially those involving semantic changes. This situation highlights the need for automated techniques and tools to help Android practitioners in this task.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源