AndroEvolve:基于数据流分析与变量反规范化的自动化 Android API 更新
软件工程
2020-11-11 v1
摘要
Android 操作系统频繁更新,每个版本都带来一组新的 API。新版本可能涉及 API 弃用;使用弃用 API 的 Android 应用需要更新以确保应用与新旧版本 Android 的兼容性。更新弃用 API 是一项耗时的工作。因此,自动化 Android API 的更新对开发者有益。CocciEvolve 是此自动化的最先进方法。然而,它存在若干局限,包括无法解析方法边界外的变量,以及因添加临时变量导致其更新代码可读性低。为进一步提升自动化 Android API 更新的性能,我们提出一种名为 AndroEvolve 的方法,通过增加数据流分析与变量名反规范化来解决 CocciEvolve 的局限。数据流分析使 AndroEvolve 能解析文件作用域内任意变量的值。变量名反规范化将 CocciEvolve 更新中可能出现的目标文件里的临时变量替换为适当的值。我们在 360 个目标文件上评估了 AndroEvolve 的性能及其更新的可读性。AndroEvolve 相比 CocciEvolve 多产生 26.90% 的正确更新实例。此外,我们的人工与自动评估显示 AndroEvolve 的更新比 CocciEvolve 的更新更具可读性。
引用
@article{arxiv.2011.05020,
title = {AndroEvolve: Automated Android API Update with Data Flow Analysis and Variable Denormalization},
author = {Stefanus A. 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:2011.05020},
year = {2020}
}