Understanding the quality and evolution of Android app build systems

Pei Liu, Li Li, Kui Liu, Shane McIntosh, John Grundy

Research output: Contribution to journalArticleResearchpeer-review

1 Citation (Scopus)

Abstract

Build systems are used to transform static source code into executable software. They play a crucial role in modern software development and maintenance. As such, much research effort has been invested in understanding the quality and evolution of build systems, including Apache ANT, Apache Maven, and Make-based ones. However, the quality and evolution of build systems for mobile apps, such as on the Android platform, have not as yet been investigated in detail. Mobile app development, and the Android development context in particular, impose unique constrains, such as different device conditions and capabilities. It presents unique challenges, such as frequently upgraded Android frameworks, which those who implement and maintain build systems must tackle. In this paper, we present an exploratory empirical study of the build systems of 5222 Android projects to better understand their quality and evolution. We (a) study the build technology choices that Android developers make (Gradle being recommended and the most popular choice), (b) explore the sustainability of the official Gradle build system (parts of build files are updated more frequent that others and the update of the special Gradle plugin would induce unrecommended configurations), and (c) analyze the quality of Gradle scripts for Android apps—more than a half of the open-source Android apps cannot be successfully built due to five common root causes.

Original languageEnglish
Article numbere2602
Number of pages20
JournalJournal of Software: Evolution and Process
Volume36
Issue number5
DOIs
Publication statusPublished - May 2024

Keywords

  • Android
  • Apache ANT
  • Apache Maven
  • build systems
  • Gradle
  • open source

Cite this