AndroEvolve: Automated Android API update with data flow analysis and variable denormalization

The Android operating system is frequently updated, with each version bringing a new set of APIs. New versions may involve API deprecation; Android apps using deprecated APIs need to be updated to ensure the apps’ compatibility with old and new Android versions. Updating deprecated APIs is a time-co...

Full description

Saved in:
Bibliographic Details
Main Authors: HARYONO, Stefanus A., THUNG, Ferdian, LO, David, JIANG, Lingxiao, LAWALL, Julia, KANG, Hong Jin, SERRANO, Lucas, MULLER, Gilles
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2022
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/7092
https://ink.library.smu.edu.sg/context/sis_research/article/8095/viewcontent/EMSE21AndroEvolve_av.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-8095
record_format dspace
spelling sg-smu-ink.sis_research-80952022-04-21T05:11:56Z AndroEvolve: Automated Android API update with data flow analysis and variable denormalization HARYONO, Stefanus A. THUNG, Ferdian LO, David JIANG, Lingxiao LAWALL, Julia KANG, Hong Jin SERRANO, Lucas MULLER, Gilles The Android operating system is frequently updated, with each version bringing a new set of APIs. New versions may involve API deprecation; Android apps using deprecated APIs need to be updated to ensure the apps’ compatibility with old and new Android versions. Updating deprecated APIs is a time-consuming endeavor. Hence, automating the updates of Android APIs can be beneficial for developers. CocciEvolve is the state-of-the-art approach for this automation. However, it has several limitations, including its inability to resolve out-of-method variables and the low code readability of its updates due to the addition of temporary variables. In an attempt to further improve the performance of automated Android API update, we propose an approach named AndroEvolve, that addresses the limitations of CocciEvolve through the addition of data flow analysis and variable name denormalization. Data flow analysis enables AndroEvolve to resolve the value of any variable within the file scope. Variable name denormalization replaces temporary variables that may present in the CocciEvolve update with appropriate values in the target file. We have evaluated the performance of AndroEvolve and the readability of its updates on 372 target files containing 565 deprecated API usages. Each target file represents a file from an Android application that uses a deprecated API in its code. AndroEvolve successfully updates 481 out of 565 deprecated API invocations correctly, achieving an accuracy of 85.1%. Compared to CocciEvolve, AndroEvolve produces 32.9% more instances of correct updates. Moreover, our manual and automated evaluation shows that AndroEvolve updates are more readable than CocciEvolve updates. 2022-03-01T08:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/7092 info:doi/10.1007/s10664-021-10096-0 https://ink.library.smu.edu.sg/context/sis_research/article/8095/viewcontent/EMSE21AndroEvolve_av.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 deprecation API update Data flow analysis Program transformation Readability 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 deprecation
API update
Data flow analysis
Program transformation
Readability
Software Engineering
spellingShingle Android
API deprecation
API update
Data flow analysis
Program transformation
Readability
Software Engineering
HARYONO, Stefanus A.
THUNG, Ferdian
LO, David
JIANG, Lingxiao
LAWALL, Julia
KANG, Hong Jin
SERRANO, Lucas
MULLER, Gilles
AndroEvolve: Automated Android API update with data flow analysis and variable denormalization
description The Android operating system is frequently updated, with each version bringing a new set of APIs. New versions may involve API deprecation; Android apps using deprecated APIs need to be updated to ensure the apps’ compatibility with old and new Android versions. Updating deprecated APIs is a time-consuming endeavor. Hence, automating the updates of Android APIs can be beneficial for developers. CocciEvolve is the state-of-the-art approach for this automation. However, it has several limitations, including its inability to resolve out-of-method variables and the low code readability of its updates due to the addition of temporary variables. In an attempt to further improve the performance of automated Android API update, we propose an approach named AndroEvolve, that addresses the limitations of CocciEvolve through the addition of data flow analysis and variable name denormalization. Data flow analysis enables AndroEvolve to resolve the value of any variable within the file scope. Variable name denormalization replaces temporary variables that may present in the CocciEvolve update with appropriate values in the target file. We have evaluated the performance of AndroEvolve and the readability of its updates on 372 target files containing 565 deprecated API usages. Each target file represents a file from an Android application that uses a deprecated API in its code. AndroEvolve successfully updates 481 out of 565 deprecated API invocations correctly, achieving an accuracy of 85.1%. Compared to CocciEvolve, AndroEvolve produces 32.9% more instances of correct updates. Moreover, our manual and automated evaluation shows that AndroEvolve updates are more readable than CocciEvolve updates.
format text
author HARYONO, Stefanus A.
THUNG, Ferdian
LO, David
JIANG, Lingxiao
LAWALL, Julia
KANG, Hong Jin
SERRANO, Lucas
MULLER, Gilles
author_facet HARYONO, Stefanus A.
THUNG, Ferdian
LO, David
JIANG, Lingxiao
LAWALL, Julia
KANG, Hong Jin
SERRANO, Lucas
MULLER, Gilles
author_sort HARYONO, Stefanus A.
title AndroEvolve: Automated Android API update with data flow analysis and variable denormalization
title_short AndroEvolve: Automated Android API update with data flow analysis and variable denormalization
title_full AndroEvolve: Automated Android API update with data flow analysis and variable denormalization
title_fullStr AndroEvolve: Automated Android API update with data flow analysis and variable denormalization
title_full_unstemmed AndroEvolve: Automated Android API update with data flow analysis and variable denormalization
title_sort androevolve: automated android api update with data flow analysis and variable denormalization
publisher Institutional Knowledge at Singapore Management University
publishDate 2022
url https://ink.library.smu.edu.sg/sis_research/7092
https://ink.library.smu.edu.sg/context/sis_research/article/8095/viewcontent/EMSE21AndroEvolve_av.pdf
_version_ 1770576210634473472