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.
翻译:AndroEvollve(OS)经常更新,每个新版本都可能涉及 API 的折旧。 AndroEvollve 使用数据流分析来解决在防疫性变异以及变异性变异性以去除CocciEvolve(CocciEvollve)引入的临时变异性的问题,我们建议AndroEvollve(AndroEvollve)使用360个目标文件和20个脱节性变异性API(AndroEvolve)的数据集来更新脱节性变异性变异性(AndroEvolve ) 。我们用手动和自动变异性变异性变异性(CoccialEvolution) 来消除这些变异性变异性(AndroEvoluve) 。我们用一个自动变异性(AndroEvolution)的数据集来评估AndroEvolutionEvolable(AVI) 和ADVLVLO(AVLO)的可读性(O) 和可读性(AVI)评估。