About Paper
Android code smells are symptoms that something may be wrong in the Android application design or code. Refactoring is a significant activity to address Android code smells to improve the maintainability and performance of mobile applications. For this purpose, we present an empirical study to evaluate the effects caused by refactoring technique in 3 classic code smells: God Class, God Method and Feature Envy.
Goal and Research Questions
The main goal of this study is to evaluate if refactoring technique in Android improve the quality of the source-code. In addition, aim if this technique can reduce consumption of CPU and memory. We also conceived the following research questions (RQs) to guide our study.
RQ1 Does the refactoring of Android code smells improve the CPU consumption of the Smartphone ?
RQ2 Does the refactoring of Android code smells improve the memory consumption of the Smartphone?
Corpus of Android Apps
To investigate the impacts caused by Android smells and refactoring techniques on resource consumption, we chose only apps from the context-aware domain.
APPLICATION (Link) | LOC | NOC | NOM | COMMITS | CONTRIBUTORS | RELEASES | DESCRIPTION |
---|---|---|---|---|---|---|---|
RUNNERUP | 39,401 | 187 | 2,534 | 2,075 | 28 | 56 | An open source run tracker inspired by Garmin 410, RunKeeper and Every Where Run. |
ANDROID ACTIVITY TRACKER | 30,670 | 551 | 4,336 | 338 | 2 | 16 | Android Activity Tracker is a GPS-tracking application for tracking sportive activities, with emphasis on cycling. It uses Maps Forge to display map tiles and offline maps from the Open Street Map project. |
CALENDULA | 21,224 | 133 | 1,382 | 428 | 6 | 15 | Calendula is an Android assistant for personal medication management, aimed at those who have trouble following their medication regimen, forget to take their drugs or have complex schedules that are difficult to remember |
CYCLE STREETS | 18,936 | 198 | 1,995 | 1,439 | 15 | 37 | Cycle Streets is a UK-wide cycle journey planner system, which lets you plan routes from A to B to C by bike. It is designed by cyclists, for cyclists, and caters for the needs of both confident and less confident cyclists |
TRAVEL-MATE | 8,028 | 52 | 451 | 155 | 5 | 1 | The app provides them with everything from choosing the correct destination to making all the bookings and to easily organizing the trip |
STEPTASTIC | 3,885 | 27 | 322 | 40 | 1 | 1 | Steptastic is a step-counter for Android |
FORECASTIE | 2,907 | 23 | 19 | 451 | 33 | 17 | An open-source weather app for Android |
PEDOMETER | 2,509 | 21 | 87 | 434 | 1 | 23 | Lightweight pedometer app using the hardware stepsensor for minimal battery consumption. This app is designed to be kept running all the time without having any impact battery life. |
NOISE APP | 1,821 | 12 | 81 | 98 | 3 | 1 | The goal of the app is to have a noise map of the city, in order to achieve better booking for tourist based on their preferences: for example, young tourist may like to be near a zone with high nightlife activities(so with a higher noise of level) and vice-versa, for instance, a family maybe want to avoid such places |
Results
RQ1. Does the refactoring technique in Android code smells improve the CPU consumption of the smartphone?
RUNNERUP
ANDROID ACTIVITY TRACKER
CALENDULA
CYCLE STREETS
TRAVEL-MATE
STEPTASTIC
FORECASTIE
PEDOMETER
NOISE APP
RQ2. Does the refactoring technique in Android code smells improve the memory of the smartphone?