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?

RUNNERUP

ANDROID ACTIVITY TRACKER

CALENDULA

CYCLE STREETS

TRAVEL-MATE

STEPTASTIC

FORECASTIE

PEDOMETER

NOISE APP

Data of our Experiments

We available the data of our experiments from 9 Android apps in a unique package .zip for download Download