计算机科学
Android(操作系统)
相容性(地球化学)
应用程序编程接口
向后兼容性
操作系统
回调函数
一套
Java
接口
假阳性悖论
测试套件
嵌入式系统
软件工程
程序设计语言
测试用例
计算机硬件
人工智能
考古
回归分析
地质学
机器学习
历史
地球化学
作者
Tarek Mahmud,Meiru Che,Guowei Yang
标识
DOI:10.1109/tse.2023.3274153
摘要
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.
科研通智能强力驱动
Strongly Powered by AbleSci AI