论文标题

Androevolve:具有数据流分析和可变贬值的自动化Android API更新

AndroEvolve: Automated Android API Update with Data Flow Analysis and Variable Denormalization

论文作者

Haryono, Stefanus A., Thung, Ferdian, Lo, David, Jiang, Lingxiao, Lawall, Julia, Kang, Hong Jin, Serrano, Lucas, Muller, Gilles

论文摘要

经常更新Android操作系统,每个版本都带来一套新的API。新版本可能涉及API贬值;需要更新使用弃用API的Android应用程序,以确保应用程序与Android的新版本的兼容性。更新弃用的API是一项耗时的努力。因此,自动化Android API的更新可能对开发人员有益。 Coccievolve是这种自动化的最新方法。但是,它有几个局限性,包括由于添加临时变量而无法解决距离范围内的变量和更新的低代码可读性。为了进一步提高自动化Android API更新的性能,我们提出了一种名为Androevolve的方法,该方法通过添加数据流分析和可变名称否定化来解决Coccievolve的局限性。数据流分析使Androevolve可以解决文件范围内任何变量的值。变量名称典型化替代了Coccievolve更新中可能存在的临时变量,并在目标文件中使用适当的值。我们已经评估了Androevolve的性能及其在360个目标文件上更新的可读性。与Coccievolve相比,Androevolve的正确更新实例多26.90%。此外,我们的手册和自动化评估表明,Androevolve更新比Coccievolve更新更可读。

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.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源