Energy drain in mobile devices is well recognized to be a serious problem. Most
mobile operating systems provide facilities to mitigate energy drain, but
they are usually heavy handed and often require shutting down an offending
application or uninstalling it. In this paper, we describe an alternative
that controls the behavior of an energy hungry application rather than kill it.
Our system offers a finer-grained approach to energy drain and is cognizant
of specific application energy characteristics as well as interactions
amongst multiple applications that can affect energy drain in
unexpected ways. Using our system, we believe
users can avoid the annoyance of sudden and unexpected battery loss,
particularly when operating in standby mode.
Our system, called E-Loupe, consists of components running on each
device as well as in a centralized data center. E-Loupe gathers
per-device data, analyzes this data, and implements energy sandboxing in the device kernel to control how often an energy hungry application is run and what resources it is allowed to
consume. Our experimental results on data from over 73,000 users shows
that we can identify the cause of more than 85% of the energy spikes,
and upper bound the energy drain in nearly all of these cases.