🤖 AI Summary
This study investigates the impact of code smell refactoring on energy consumption in Android applications. To address this problem, we conduct a controlled experiment to systematically evaluate the individual and combined effects of representative refactorings—specifically, *duplicate code elimination* and *type-check optimization*—and analyze how their execution order influences both energy consumption and performance. Results show that each refactoring independently reduces runtime energy consumption by up to 10.8%, yet energy savings exhibit no statistically significant correlation with execution time. Moreover, refactoring order induces non-monotonic energy effects: certain sequences unexpectedly increase energy usage. This work is the first to empirically reveal a nonlinear relationship between code quality improvement and mobile device energy efficiency. It provides foundational evidence and methodological guidance for energy-aware software refactoring, advancing sustainable mobile software engineering.
📝 Abstract
Energy consumption of mobile apps is a domain that is receiving a lot of attention from researchers. Recent studies indicate that the energy consumption of mobile devices could be improved by improving the quality of mobile apps. Frequent refactoring is one way of achieving this goal. In this paper, we explore the performance and energy impact of several common code refactorings in Android apps. Experimental results indicate that some code smell refactorings positively impact the energy consumption of Android apps. Refactoring of the code smells "Duplicated code" and "Type checking" reduce energy consumption by up to 10.8%. Significant reduction in energy consumption, however, does not seem to be directly related to the increase or decrease of execution time. In addition, the energy impact over permutations of code smell refactorings in the selected Android apps was small. When analyzing the order in which refactorings were made across code smell types, it turned out that some permutations resulted in a reduction and some in an increase of energy consumption for the analyzed apps. More research needs to be done to investigate how factors like size and age of software apps, experience, and number of contributors to app development correlate with (a) the number and type of code smells found and (b) the impact of energy consumption and performance after refactoring.