中文

Android应用中导致兼容性问题的语义不兼容API的大规模研究

软件工程 2024-06-27 v2

摘要

应用程序编程接口(API)不兼容是Android应用开发中长期存在的问题。Android API的快速演进导致相邻版本之间存在大量的API添加、移除和更改。不幸的是,这种高频次的变更可能导致兼容性问题,而开发者往往未能得到关于这些变更的充分通知。尽管研究人员已经提出了一些用于检测由API签名变更引起的兼容性问题的工作,但他们常常忽略了由复杂的语义变更引起的兼容性问题。为应对这一挑战,我们通过利用静态分析和预训练大型语言模型(LLM),在Android开源项目(AOSP)中跨相邻版本进行了大规模的不兼容API发现。我们系统地阐述了该问题,并提出了一个统一的框架来检测不兼容API,特别是针对语义变更。值得强调的是,我们的方法在识别Android框架中的语义不兼容API方面达到了0.83的F1分数。最终,我们的方法检测到了从版本4到版本33的5,481个不兼容API。我们进一步证明了其在补充现有最先进方法以检测更广泛兼容性问题(+92.3%)方面的有效性,这些问题此前被忽视了。

关键词

引用

@article{arxiv.2406.17431,
  title  = {A Large-scale Investigation of Semantically Incompatible APIs behind Compatibility Issues in Android Apps},
  author = {Shidong Pan and Tianchen Guo and Lihong Zhang and Pei Liu and Zhenchang Xing and Xiaoyu Sun},
  journal= {arXiv preprint arXiv:2406.17431},
  year   = {2024}
}