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

Full description

Saved in:
Bibliographic Details
Main Authors: THUNG, Ferdian, AGUS HARYONO, Stefanus, SERRANO, Lucas, MULLER, Gilles, LAWALL, Julia, LO, David, JIANG, Lingxiao
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