{"title":"An empirical study on compatibility issues in Android API field evolution","authors":"Tarek Mahmud , Meiru Che , Guowei Yang","doi":"10.1016/j.infsof.2024.107530","DOIUrl":null,"url":null,"abstract":"<div><h3>Context:</h3><p>The continuous evolution of the Android operating system requires regular API updates, which may affect the functionality of Android apps. This is becoming increasingly common due to the frequent evolution of the Android platform, which introduces new APIs and deprecates existing ones. Recent studies investigated API evolution to ensure the reliability of Android apps; however, they focused on API methods alone.</p></div><div><h3>Objectives:</h3><p>This study aims to understand how API fields evolve and how this affects API compatibility in real-world Android apps and their development.</p></div><div><h3>Method:</h3><p>We perform an empirical study on compatibility issues in Android API field evolution by analyzing the nature and resolution of these issues across 681 open-source Android apps.</p></div><div><h3>Results:</h3><p>Our experimental results yield interesting findings: (1) On average two API field compatibility issues exist per app in each tag; (2) Although API method evolution and API field evolution are related, current API method-level analysis techniques may fail to detect numerous API field compatibility issues; (3) Different types of checks are preferred when addressing different types of compatibility issues; (4) It takes on average three and a half months for an API field compatibility issue to get fixed since when it is introduced; (5) Developers pay proper attention to API field compatibility issues and address them soon after becoming aware of them in the apps.</p></div><div><h3>Conclusion:</h3><p>These findings highlight the significance of including API fields in future research on API evolution and can assist developers and researchers in understanding, detecting, and handling compatibility issues in API field evolution.</p></div>","PeriodicalId":54983,"journal":{"name":"Information and Software Technology","volume":"175 ","pages":"Article 107530"},"PeriodicalIF":3.8000,"publicationDate":"2024-07-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Information and Software Technology","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0950584924001356","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, INFORMATION SYSTEMS","Score":null,"Total":0}
引用次数: 0
Abstract
Context:
The continuous evolution of the Android operating system requires regular API updates, which may affect the functionality of Android apps. This is becoming increasingly common due to the frequent evolution of the Android platform, which introduces new APIs and deprecates existing ones. Recent studies investigated API evolution to ensure the reliability of Android apps; however, they focused on API methods alone.
Objectives:
This study aims to understand how API fields evolve and how this affects API compatibility in real-world Android apps and their development.
Method:
We perform an empirical study on compatibility issues in Android API field evolution by analyzing the nature and resolution of these issues across 681 open-source Android apps.
Results:
Our experimental results yield interesting findings: (1) On average two API field compatibility issues exist per app in each tag; (2) Although API method evolution and API field evolution are related, current API method-level analysis techniques may fail to detect numerous API field compatibility issues; (3) Different types of checks are preferred when addressing different types of compatibility issues; (4) It takes on average three and a half months for an API field compatibility issue to get fixed since when it is introduced; (5) Developers pay proper attention to API field compatibility issues and address them soon after becoming aware of them in the apps.
Conclusion:
These findings highlight the significance of including API fields in future research on API evolution and can assist developers and researchers in understanding, detecting, and handling compatibility issues in API field evolution.
背景:Android 操作系统的不断演进要求定期更新 API,这可能会影响 Android 应用程序的功能。由于安卓平台的频繁演进,引入了新的应用程序接口并淘汰了现有的应用程序接口,这种情况变得越来越普遍。本研究旨在了解API字段是如何演变的,以及这对现实世界中Android应用程序及其开发中的API兼容性有何影响。方法:我们通过分析681个开源Android应用程序中这些问题的性质和解决方案,对Android API字段演变中的兼容性问题进行了实证研究。结果:我们的实验结果得出了有趣的发现:(1)每个应用程序的每个标签中平均存在两个API字段兼容性问题;(2)虽然API方法演进和API字段演进是相关的,但当前的API方法级分析技术可能无法检测到大量的API字段兼容性问题;(3)在解决不同类型的兼容性问题时,不同类型的检查是首选;(4)一个API字段兼容性问题从出现到得到解决平均需要三个半月的时间;(5)开发人员会适当关注API字段兼容性问题,并在意识到应用程序中存在这些问题后尽快解决它们。结论:这些发现凸显了将 API 字段纳入未来 API 演进研究的重要性,有助于开发人员和研究人员了解、检测和处理 API 字段演进中的兼容性问题。
期刊介绍:
Information and Software Technology is the international archival journal focusing on research and experience that contributes to the improvement of software development practices. The journal''s scope includes methods and techniques to better engineer software and manage its development. Articles submitted for review should have a clear component of software engineering or address ways to improve the engineering and management of software development. Areas covered by the journal include:
• Software management, quality and metrics,
• Software processes,
• Software architecture, modelling, specification, design and programming
• Functional and non-functional software requirements
• Software testing and verification & validation
• Empirical studies of all aspects of engineering and managing software development
Short Communications is a new section dedicated to short papers addressing new ideas, controversial opinions, "Negative" results and much more. Read the Guide for authors for more information.
The journal encourages and welcomes submissions of systematic literature studies (reviews and maps) within the scope of the journal. Information and Software Technology is the premiere outlet for systematic literature studies in software engineering.