Publication Type

Conference Proceeding Article

Version

acceptedVersion

Publication Date

2-2020

Abstract

As the Android API evolves, some API methods may be deprecated, to be eventually removed. App developers face the challenge of keeping their apps up-to-date, to ensure that the apps work in both older and newer Android versions. Currently, AppEvolve is the state-of-the-art approach to automate such updates, and it has been shown to be quite effective. Still, the number of experiments reported is moderate, involving only API usage updates in 41 usage locations. In this work, we replicate the evaluation of AppEvolve and assess whether its effectiveness is generalizable. Given the set of APIs on which AppEvolve has been evaluated, we test AppEvolve on other mobile apps that use the same APIs. Our experiments show that AppEvolve fails to generate applicable updates for 81% of our dataset, even though the relevant knowledge for correct API updates is available in the examples. We first categorize the limitations of AppEvolve that lead to these failures. We then propose a mitigation strategy that solves 86% of these failures by a simple refactoring of the app code to better resemble the code in the examples. The refactoring usually involves assigning the target API method invocation and the arguments of the target API method into variables. Indeed, we have also seen such transformations in the dataset distributed with the AppEvolve replication package, as compared to the original source code from which this dataset is derived. Based on these findings, we propose some promising future directions.

Keywords

Android, API usage, mobile apps, program transformation

Discipline

Software Engineering

Research Areas

Software and Cyber-Physical Systems

Publication

2020 27th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER): 18-21 February, Ontario, Canada: Proceedings

First Page

602

Last Page

611

ISBN

9781728151434

Identifier

10.1109/SANER48275.2020.9054860

Publisher

IEEE

City or Country

Piscataway, NJ

Copyright Owner and License

Authors

Additional URL

https://doi.org/10.1109/SANER48275.2020.9054860

Share

COinS