Publication Type

Conference Proceeding Article

Version

acceptedVersion

Publication Date

5-2021

Abstract

The 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 the 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.

Keywords

Program transformation, Android, data flow analysis, readability, API deprecation, API update

Discipline

Software Engineering

Research Areas

Software and Cyber-Physical Systems

Publication

2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE): Companion Proceedings: May 25-28, Madrid, Virtual

First Page

1

Last Page

4

ISBN

9781665412193

Identifier

10.1109/ICSE-Companion52605.2021.00021

Publisher

IEEE

City or Country

Piscataway, NJ

Embargo Period

7-11-2021

Copyright Owner and License

Authors

Additional URL

https://doi.org/10.1109/ICSE-Companion52605.2021.00021

Share

COinS