AndroEvolve:面向 Android 废弃 API 用法的自动化更新工具
软件工程
2021-02-12 v2
摘要
Android 操作系统(OS)经常更新,其中每个新版本都可能涉及 API 废弃。Android 应用中废弃 API 的用法需要被更新,以确保应用与新旧版本 Android OS 的兼容性。在这项工作中,我们提出 AndroEvolve,一种用于更新废弃 Android API 用法的自动化工具,它解决了最先进工具 CocciEvolve 的局限性。AndroEvolve 利用数据流分析来解决方法边界外变量的问题,并利用变量反规范化来移除 CocciEvolve 引入的临时变量。我们使用包含 360 个目标文件和 20 个废弃 Android API 的数据集评估了 AndroEvolve 的准确性,其中 AndroEvolve 能够产生 319 个正确更新,而 CocciEvolve 仅产生 249 个正确更新。我们还通过人工和自动评估评价了 AndroEvolve 更新结果的可读性。两项评估均表明,AndroEvolve 生成的代码比 CocciEvolve 具有更高的可读性。AndroEvolve 的视频演示可在 https://youtu.be/siU0tuMITXI 获取。
引用
@article{arxiv.2012.07259,
title = {AndroEvolve: Automated Update for Android Deprecated-API Usages},
author = {Stefanus Agus Haryono and Ferdian Thung and David Lo and Lingxiao Jiang and Julia Lawall and Hong Jin Kang and Lucas Serrano and Gilles Muller},
journal= {arXiv preprint arXiv:2012.07259},
year = {2021}
}