  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.
