Android Code Smells: From Introduction to Refactoring
Sarra Habchi, Naouel Moha, and Romain Rouvoy

TL;DR
This paper presents a large-scale empirical study on Android code smells, analyzing their introduction, evolution, and removal, revealing insights into developer practices and the nature of mobile-specific code smells.
Contribution
It provides the first comprehensive empirical analysis of Android code smells, including their lifecycle and developer behaviors, based on data from 324 apps and developer discussions.
Findings
Mobile-specific code smells are widespread and not solely due to release pressure.
Developers often remove code smells as a side effect of maintenance, not targeted refactoring.
Many code smells persist despite developer awareness, indicating challenges in refactoring.
Abstract
Object-oriented code smells are well-known concepts in software engineering that refer to bad design and development practices commonly observed in software systems. With the emergence of mobile apps, new classes of code smells have been identified by the research community as mobile-specific code smells. These code smells are presented as symptoms of important performance issues or bottlenecks. Despite the multiple empirical studies about these new code smells, their diffuseness and evolution along change histories remains unclear. We present in this article a large-scale empirical study that inspects the introduction, evolution, and removal of Android code smells. This study relies on data extracted from 324 apps, a manual analysis of 561 smell-removing commits, and discussions with 25 Android developers. Our findings reveal that the high diffuseness of mobile-specific code smells is…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
