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.
翻译:Android平台有超过500,000个承诺和700多个贡献者,毫无疑问,Android平台是最大的工业规模软件项目之一。该项目提供了Android API, 开发者严重依赖这个API开发其安的应用程序。 不幸的是,由于安的罗尔德平台及其API以极快的速度演变,应用程序开发者需要持续监测API变化,以避免应用程序中的兼容性问题(在使用更新版的API时,这些问题使应用程序无法如预期的那样发挥作用)。尽管对Android API的兼容性问题进行了大量研究,但研究界尚未调查与静态变化方法(SEMs)有关的问题。这些方法可能已经改变,但相应的文件并没有相应改变。由于应用程序开发者依赖所提供的文件来演变其应用程序,因此对应用程序中的兼容性变化进行持续监测(这些问题使应用程序无法像预期的那样运行在使用新的API版本时发生操作 ) 。我们进行了大规模的经验研究, 确定并描述亚的SEMs在考虑的10个版本的ADI(SEMs)中, 以及这些SEMServiews 都特别需要分析。