当前位置:
X-MOL 学术
›
arXiv.cs.SE
›
论文详情
Our official English website, www.x-mol.net, welcomes your
feedback! (Note: you will need to create a separate account there.)
AndroEvolve: Automated Android API Update with Data Flow Analysis and Variable Denormalization
arXiv - CS - Software Engineering Pub Date : 2020-11-10 , DOI: arxiv-2011.05020 Stefanus A. Haryono, Ferdian Thung, David Lo, Lingxiao Jiang, Julia Lawall, Hong Jin Kang, Lucas Serrano, Gilles Muller
arXiv - CS - Software Engineering Pub Date : 2020-11-10 , DOI: arxiv-2011.05020 Stefanus A. Haryono, Ferdian Thung, David Lo, Lingxiao Jiang, Julia Lawall, Hong Jin Kang, Lucas Serrano, Gilles Muller
The Android operating system is frequently updated, with each version
bringing a new set of APIs. New versions may involve API deprecation; Android
apps using deprecated APIs need to be updated to ensure the apps' compatibility
withold and new versions of Android. Updating deprecated APIs is a
time-consuming endeavor. Hence, automating the updates of Android APIs can be
beneficial for developers. CocciEvolve is the state-of-the-art approach for
this automation. However, it has several limitations, including its inability
to resolve out-of-method-boundary variables and the low code readability of its
update due to the addition of temporary variables. In an attempt to further
improve the performance of automated Android API update, we propose an approach
named AndroEvolve, which addresses the limitations of CocciEvolve through the
addition of data flow analysis and variable name denormalization. Data flow
analysis enables AndroEvolve to resolve the value of any variable within the
file scope. Variable name denormalization replaces temporary variables that may
present in the CocciEvolve update with appropriate values in the target file.
We have evaluated the performance of AndroEvolve and the readability of its
updates on 360 target files. AndroEvolve produces 26.90% more instances of
correct updates compared to CocciEvolve. Moreover, our manual and automated
evaluation shows that AndroEvolve updates are more readable than CocciEvolve
updates.
中文翻译:
AndroEvolve:具有数据流分析和变量非规范化的自动化 Android API 更新
Android 操作系统经常更新,每个版本都会带来一组新的 API。新版本可能涉及 API 弃用;使用已弃用 API 的 Android 应用需要更新,以确保应用与新旧版本的 Android 兼容。更新已弃用的 API 是一项耗时的工作。因此,自动化 Android API 的更新对开发人员来说是有益的。CocciEvolve 是这种自动化的最先进方法。但是,它有几个局限性,包括无法解析方法边界外的变量以及由于添加了临时变量而导致其更新的代码可读性低。为了进一步提高自动 Android API 更新的性能,我们提出了一种名为 AndroEvolve 的方法,它通过添加数据流分析和变量名称非规范化来解决 CocciEvolve 的局限性。数据流分析使 AndroEvolve 能够解析文件范围内的任何变量的值。变量名称非规范化将 CocciEvolve 更新中可能出现的临时变量替换为目标文件中的适当值。我们评估了 AndroEvolve 的性能及其更新在 360 目标文件上的可读性。与 CocciEvolve 相比,AndroEvolve 产生的正确更新实例多 26.90%。此外,我们的手动和自动评估表明 AndroEvolve 更新比 CocciEvolve 更新更具可读性。变量名称非规范化将 CocciEvolve 更新中可能出现的临时变量替换为目标文件中的适当值。我们评估了 AndroEvolve 的性能及其更新在 360 目标文件上的可读性。与 CocciEvolve 相比,AndroEvolve 产生的正确更新实例多 26.90%。此外,我们的手动和自动评估表明 AndroEvolve 更新比 CocciEvolve 更新更具可读性。变量名称非规范化将 CocciEvolve 更新中可能出现的临时变量替换为目标文件中的适当值。我们评估了 AndroEvolve 的性能及其更新在 360 目标文件上的可读性。与 CocciEvolve 相比,AndroEvolve 产生的正确更新实例多 26.90%。此外,我们的手动和自动评估表明 AndroEvolve 更新比 CocciEvolve 更新更具可读性。
更新日期:2020-11-11
中文翻译:
AndroEvolve:具有数据流分析和变量非规范化的自动化 Android API 更新
Android 操作系统经常更新,每个版本都会带来一组新的 API。新版本可能涉及 API 弃用;使用已弃用 API 的 Android 应用需要更新,以确保应用与新旧版本的 Android 兼容。更新已弃用的 API 是一项耗时的工作。因此,自动化 Android API 的更新对开发人员来说是有益的。CocciEvolve 是这种自动化的最先进方法。但是,它有几个局限性,包括无法解析方法边界外的变量以及由于添加了临时变量而导致其更新的代码可读性低。为了进一步提高自动 Android API 更新的性能,我们提出了一种名为 AndroEvolve 的方法,它通过添加数据流分析和变量名称非规范化来解决 CocciEvolve 的局限性。数据流分析使 AndroEvolve 能够解析文件范围内的任何变量的值。变量名称非规范化将 CocciEvolve 更新中可能出现的临时变量替换为目标文件中的适当值。我们评估了 AndroEvolve 的性能及其更新在 360 目标文件上的可读性。与 CocciEvolve 相比,AndroEvolve 产生的正确更新实例多 26.90%。此外,我们的手动和自动评估表明 AndroEvolve 更新比 CocciEvolve 更新更具可读性。变量名称非规范化将 CocciEvolve 更新中可能出现的临时变量替换为目标文件中的适当值。我们评估了 AndroEvolve 的性能及其更新在 360 目标文件上的可读性。与 CocciEvolve 相比,AndroEvolve 产生的正确更新实例多 26.90%。此外,我们的手动和自动评估表明 AndroEvolve 更新比 CocciEvolve 更新更具可读性。变量名称非规范化将 CocciEvolve 更新中可能出现的临时变量替换为目标文件中的适当值。我们评估了 AndroEvolve 的性能及其更新在 360 目标文件上的可读性。与 CocciEvolve 相比,AndroEvolve 产生的正确更新实例多 26.90%。此外,我们的手动和自动评估表明 AndroEvolve 更新比 CocciEvolve 更新更具可读性。