Abstract

Android apps are developed using a Software Development Kit (SDK), where the Android application programming interface (API) enables app developers to harness the functionalities of Android devices by interacting with services and hardware. However, API frequently evolves together with its associated SDK. The mismatch between the API level supported by the device where apps are installed and the API level targeted by app developers can induce compatibility issues. These issues can manifest themselves as unexpected behaviors, including runtime crashes, creating a poor user experience. In this paper, we propose ACID, a novel approach to detecting compatibility issues caused by API evolution. We leverage API differences and static analysis of the source code of Android apps to detect both API invocation compatibility issues and API callback compatibility issues. Experiments on 20 benchmark apps from previous studies show that ACID is more accurate and faster in detecting compatibility issues than state-of-the-art. We also analyzed 35 more real-world apps to show the practical applicability of our approach.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call