AndroEvolve: automated Android API update with data flow analysis and variable denormalization - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Article Dans Une Revue Empirical Software Engineering Année : 2022

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

Résumé

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.
Fichier principal
Vignette du fichier
template.pdf (377.21 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-03921758 , version 1 (04-01-2023)

Identifiants

Citer

Stefanus Haryono, Ferdian Thung, David Lo, Lingxiao Jiang, Julia Lawall, et al.. AndroEvolve: automated Android API update with data flow analysis and variable denormalization. Empirical Software Engineering, 2022, 27 (3), pp.73. ⟨10.1007/s10664-021-10096-0⟩. ⟨hal-03921758⟩

Collections

INRIA INRIA2 ANR
48 Consultations
38 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More