Automated deprecated-API usage update for Android apps: How far are we?
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...
Saved in:
Main Authors: | , , , , , , |
---|---|
Format: | text |
Language: | English |
Published: |
Institutional Knowledge at Singapore Management University
2020
|
Subjects: | |
Online Access: | https://ink.library.smu.edu.sg/sis_research/5502 https://ink.library.smu.edu.sg/context/sis_research/article/6505/viewcontent/saner20apiupdates.pdf |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Singapore Management University |
Language: | English |
id |
sg-smu-ink.sis_research-6505 |
---|---|
record_format |
dspace |
spelling |
sg-smu-ink.sis_research-65052021-05-12T02:57:01Z Automated deprecated-API usage update for Android apps: How far are we? THUNG, Ferdian AGUS HARYONO, Stefanus SERRANO, Lucas MULLER, Gilles LAWALL, Julia LO, David JIANG, Lingxiao 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. 2020-02-01T08:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/5502 info:doi/10.1109/SANER48275.2020.9054860 https://ink.library.smu.edu.sg/context/sis_research/article/6505/viewcontent/saner20apiupdates.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Android API usage mobile apps program transformation Software Engineering |
institution |
Singapore Management University |
building |
SMU Libraries |
continent |
Asia |
country |
Singapore Singapore |
content_provider |
SMU Libraries |
collection |
InK@SMU |
language |
English |
topic |
Android API usage mobile apps program transformation Software Engineering |
spellingShingle |
Android API usage mobile apps program transformation Software Engineering THUNG, Ferdian AGUS HARYONO, Stefanus SERRANO, Lucas MULLER, Gilles LAWALL, Julia LO, David JIANG, Lingxiao Automated deprecated-API usage update for Android apps: How far are we? |
description |
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. |
format |
text |
author |
THUNG, Ferdian AGUS HARYONO, Stefanus SERRANO, Lucas MULLER, Gilles LAWALL, Julia LO, David JIANG, Lingxiao |
author_facet |
THUNG, Ferdian AGUS HARYONO, Stefanus SERRANO, Lucas MULLER, Gilles LAWALL, Julia LO, David JIANG, Lingxiao |
author_sort |
THUNG, Ferdian |
title |
Automated deprecated-API usage update for Android apps: How far are we? |
title_short |
Automated deprecated-API usage update for Android apps: How far are we? |
title_full |
Automated deprecated-API usage update for Android apps: How far are we? |
title_fullStr |
Automated deprecated-API usage update for Android apps: How far are we? |
title_full_unstemmed |
Automated deprecated-API usage update for Android apps: How far are we? |
title_sort |
automated deprecated-api usage update for android apps: how far are we? |
publisher |
Institutional Knowledge at Singapore Management University |
publishDate |
2020 |
url |
https://ink.library.smu.edu.sg/sis_research/5502 https://ink.library.smu.edu.sg/context/sis_research/article/6505/viewcontent/saner20apiupdates.pdf |
_version_ |
1770575481692749824 |