当前位置: X-MOL 学术Empir. Software Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
CDA: Characterising Deprecated Android APIs
Empirical Software Engineering ( IF 3.5 ) Pub Date : 2020-01-11 , DOI: 10.1007/s10664-019-09764-z
Li Li , Jun Gao , Tegawendé F. Bissyandé , Lei Ma , Xin Xia , Jacques Klein

Because of functionality evolution, or security and performance-related changes, some APIs eventually become unnecessary in a software system and thus need to be cleaned to ensure proper maintainability. Those APIs are typically marked first as deprecated APIs and, as recommended, follow through a deprecated-replace-remove cycle, giving an opportunity to client application developers to smoothly adapt their code in next updates. Such a mechanism is adopted in the Android framework development where thousands of reusable APIs are made available to Android app developers. In this work, we present a research-based prototype tool called CDA and apply it to different revisions (i.e., releases or tags) of the Android framework code for characterising deprecated APIs. Based on the data mined by CDA, we then perform an empirical study on API deprecation in the Android ecosystem and the associated challenges for maintaining quality apps. In particular, we investigate the prevalence of deprecated APIs, their annotations and documentation, their removal and consequences, their replacement messages, developer reactions to API deprecation, as well as the evolution of the usage of deprecated APIs. Experimental results reveal several findings that further provide promising insights related to deprecated Android APIs. Notably, by mining the source code of the Android framework base, we have identified three bugs related to deprecated APIs. These bugs have been quickly assigned and positively appreciated by the framework maintainers, who claim that these issues will be updated in future releases.

中文翻译:

CDA:表征已弃用的 Android API

由于功能演进,或与安全和性能相关的变化,一些 API 最终在软件系统中变得不必要,因此需要清理以确保适当的可维护性。这些 API 通常首先被标记为已弃用的 API,并按照建议遵循弃用-替换-删除循环,为客户端应用程序开发人员提供了在下一次更新中顺利调整其代码的机会。在 Android 框架开发中采用了这种机制,其中为 Android 应用程序开发人员提供了数以千计的可重用 API。在这项工作中,我们提出了一个名为 CDA 的基于研究的原型工具,并将其应用于 Android 框架代码的不同修订版(即版本或标签),以表征已弃用的 API。根据 CDA 挖掘的数据,然后,我们对 Android 生态系统中的 API 弃用以及维护优质应用程序的相关挑战进行了实证研究。特别是,我们调查了弃用 API 的流行、它们的注释和文档、它们的删除和后果、它们的替换消息、开发人员对 API 弃用的反应,以及弃用 API 使用的演变。实验结果揭示了一些发现,这些发现进一步提供了与弃用的 Android API 相关的有希望的见解。值得注意的是,通过挖掘 Android 框架库的源代码,我们发现了三个与弃用 API 相关的错误。这些错误已被框架维护人员迅速分配并积极赞赏,他们声称这些问题将在未来版本中更新。
更新日期:2020-01-11
down
wechat
bug