API compatibility issues in Android: Causes and effectiveness of data-driven detection techniques
- PDF / 3,116,090 Bytes
- 41 Pages / 439.642 x 666.49 pts Page_size
- 101 Downloads / 179 Views
API compatibility issues in Android: Causes and effectiveness of data-driven detection techniques 3· ´ Simone Scalabrino1 · Gabriele Bavota2 · Mario Linares-Vasquez 1 2 1 Valentina Piantadosi · Michele Lanza · Rocco Oliveto
© Springer Science+Business Media, LLC, part of Springer Nature 2020
Abstract Android fragmentation is a well-known issue referring to the adoption of different versions in the multitude of devices supporting such an operating system. Each Android version features a set of APIs provided to developers. These APIs are subject to changes and may cause compatibility issues. To support app developers, approaches have been proposed to automatically identify API compatibility issues. CID, the state-of-the-art approach, is a data-driven solution learning how to detect those issues by analyzing the change history of Android APIs (“API side” learning). In this paper (extension of our MSR 2019 paper), we present an alternative data-driven approach, named ACRYL. ACRYL learns from changes implemented in apps in response to API changes (“client side” learning). When comparing these two solutions on 668 apps, for a total of 11,863 snapshots, we found that there is no clear winner, since the two techniques are highly complementary, and none of them provides a comprehensive support in detecting API compatibility issues: ACRYL achieves a precision of 7.0% (28.0%, when considering only the severe warnings), while CID achieves a precision of 18.4%. This calls for more research in this field, and led us to run a second empirical study in which we manually analyze 500 pull-requests likely related to the fixing of compatibility issues, documenting the root cause behind the fixed issue. The most common causes are related to changes in the Android APIs (∼ 87%), while about 13% of the issues are related to external causes, such as build and distribution, dependencies, and the app itself. The provided empirical knowledge can inform the building of better tools for the detection of API compatibility issues. Communicated by: Yasutaka Kamei and Andy Zaidman Scalabrino and Oliveto gratefully acknowledge the financial support of the Italian Ministry of Education and Research for the PON-ARS01 00860 project on “Ambient-intelligent Tele-monitoring and Telemetry for Incepting and Catering over hUman Sustainability - ATTICUS”. Bavota gratefully acknowledges the financial support of the Swiss National Science Foundation for the CCQR project (SNF Project No. 175513). Lanza gratefully acknowledges the financial support of the Swiss National Science Foundation for the SNF-NRP 75 project on “Exploratory Visual Analytics for Interaction Graphs”. This article belongs to the Topical Collection: Mining Software Repositories (MSR) Simone Scalabrino
[email protected]
Extended author information available on the last page of the article.
Empirical Software Engineering
Keywords Android · API compatibility issues · Empirical study · Taxonomy
1 Introduction The fragmentation of the Android ecosystem is well documented in the l
Data Loading...