Detecting android API compatibility issues with API differences
journal contribution
posted on 2024-05-29, 01:44authored byT Mahmud, Meiru Che, G Yang
Android application programming interface (API) enables app developers to harness the functionalities of Android devices by interfacing with services and hardware using a Software Development Kit (SDK). However, API frequently evolves together with its associated SDK, and compatibility issues may arise when the API level supported by the underlying device differs from the API level targeted by app developers. These issues can lead to unexpected behaviors, resulting in a bad user experience. This article presents ACID, a novel approach to detecting Android API compatibility issues induced by API evolution. It detects both API invocation compatibility issues and API callback compatibility issues using API differences and static analysis of the app code. Experiments with 20 benchmark apps show that ACID is more accurate and faster than the state-of-the-art techniques in detecting API compatibility issues. The application of ACID on 2965 real-world apps further demonstrates its practical applicability. To eliminate the false positives reported by ACID, this article also presents a simple yet effective method to quickly verify the compatibility issues by selecting and executing the relevant tests from app's test suite, and experimental results demonstrate the verification method can eliminate most false positives when app's test suite has good coverage of the API usages.
Funding
Category 3 - Industry and Other Research Income
History
Volume
49
Issue
7
Start Page
3857
End Page
3871
Number of Pages
15
eISSN
1939-3520
ISSN
0098-5589
Publisher
Institute of Electrical and Electronics Engineers (IEEE)