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 widely known Android API, which facilitates the development of 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 (i.e their apps do not work as expected when running on the new version 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 runtime issues in the apps using these methods. To fill this gap, we conducted a large-scale empirical study in which we identified and characterized SEMs across 10 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 framework, 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 silently-evolved methods, especially those involving semantic changes. This situation highlights the need for automated techniques and tools to help Android practitioners in this task.
|Original language||English (US)|
|Title of host publication||Proceedings - 2021 IEEE/ACM 43rd International Conference on Software Engineering|
|Subtitle of host publication||Software Engineering in Practice, ICSE-SEIP 2021|
|Publisher||IEEE Computer Society|
|Number of pages||10|
|State||Published - May 2021|
|Event||43rd IEEE/ACM International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2021 - Virtual, Online, Spain|
Duration: May 25 2021 → May 28 2021
|Name||Proceedings - International Conference on Software Engineering|
|Conference||43rd IEEE/ACM International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2021|
|Period||5/25/21 → 5/28/21|
Bibliographical noteFunding Information:
This work was partially supported by the Australian Research Council (ARC) under a Laureate Fellowship project FL190100035, a Discovery Early Career Researcher Award (DECRA) project DE200100016, a Discovery project DP200100020, and a gift from Facebook.
© 2021 IEEE.