论文标题

Androevolve:Android弃用API使用的自动更新

AndroEvolve: Automated Update for Android Deprecated-API Usages

论文作者

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

论文摘要

经常更新Android操作系统(OS),每个新版本都可能涉及API贬值。需要更新在Android应用中使用的API使用,以确保应用程序与Android OS的旧版本和新版本的兼容性。在这项工作中,我们提出了Androevolve,这是一种自动化的工具,以更新不推荐使用的Android API,以解决最新工具Coccievolve的局限性。 Androevolve利用数据流量分析来解决未能实体变量的问题,以及可变的不合规来删除Coccievolve引入的临时变量。我们使用360个目标文件和20个不推荐使用的Android API的数据集评估了Androevolve的准确性,与仅产生249个正确更新的Coccievolve相比,Androev Verne androev vance可以产生319个正确的更新。我们还使用手册和自动评估评估了Androevolve更新结果的可读性。两项评估都表明,Androevolve产生的代码的可读性高于Coccievolve的代码。可以在https://youtu.be/siu0tumitxi上获得Androevolve的视频演示。

Android operating system (OS) is often updated, where each new version may involve API deprecation. Usages of deprecated APIs in Android apps need to be updated to ensure the apps' compatibility with the old and new versions of Android OS. In this work, we propose AndroEvolve, an automated tool to update usages of deprecated Android APIs, that addresses the limitations of the state-of-the-art tool, CocciEvolve. AndroEvolve utilizes data flow analysis to solve the problem of out-of-method-boundary variables, and variable denormalization to remove the temporary variables introduced by CocciEvolve. We evaluated the accuracy of AndroEvolve using a dataset of 360 target files and 20 deprecated Android APIs, where AndroEvolve is able to produce 319 correct updates, compared to CocciEvolve which only produces 249 correct updates. We also evaluated the readability of AndroEvolve's update results using a manual and an automatic evaluation. Both evaluations demonstrated that the code produced by AndroEvolve has higher readability than CocciEvolve's. A video demonstration of AndroEvolve is available at https://youtu.be/siU0tuMITXI.

扫码加入交流群

加入微信交流群

微信交流群二维码

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