I. Research Problem and Motivation
Worldwide mobile device sales will reach 821 Million units in 2012 and will rise to 1.2 Billion in 2013 [1]. Inevitably the paradigm for accessing information and Internet services is increasingly migrating to mobiles. Despite the improvements in terms of hardware, the main issue that affects these handsets is their limited battery life. The computational capabilities of these devices are growing rapidly, while their size is decreasing and they are increasingly becoming part of our daily life by providing us a wide range of functions. However, the use of these tools significantly affects the energy consumption of the portable device and the advances in the development of battery technologies cannot keep pace with this rapid growth of energy demand. The applications, or apps, typically available on various marketplaces, focus on content, usability, and originality, to gain the maximum number of users. On the other hand, developers typically do not consider how much energy their app will consume because hardware is responsible for energy consumption. When developers include ads in their application to obtain revenues, they do not take into account the negative implications of this choice in terms of energy efficiency [2]. Even if software does not consume energy directly, it has a direct influence on the energy consumption of the underlying hardware. As a matter of fact, applications and operating systems indicate how the information is processed and consequently drive the hardware behaviour. In recent works, we set up and published some lab experiments [3] [4] [5] to understand the impact of software in energy consumption. Results showed software applications could actually increment the energy consumption of a device from 10% up to 85% but these values depend on the specific device and context in which the experiment is conducted. The main issue is the lack of metrics and tools that allow software developers to easily measure and optimize [6] the energy efficiency of their code.