Energy leaks occur when applications use energy to perform useless tasks, a surprisingly common occurrence. They are particularly important for mobile applications running on smartphones due to their energy constraints. Energy leaks are difficult to detect and isolate because their negative consequences are often far removed from their causes. Few tools are available for addressing this problem. We have therefore developed ADEL (Automatic Detector of Energy Leaks). ADEL consists of taint-tracking enhancements to the Android platform. It detects and isolates energy leaks resulting from unnecessary network communication by tracing the direct and indirect use of received data to determine whether it ever affects the user. We profiled 15 applications using ADEL. In 6 of them, energy leaks detected by ADEL and verified by us account for approximately 40% of the energy consumed in communication. We identified four common causes of energy leaks in these applications: misinterpretation of callback API semantics, poorly designed downloading schemes, repetitive downloads, and overly aggressive prefetching.
This is an ongoing project. Thus far, it has been difficult to develop a version of the tracing infrastructure that supports many smartphones, partially due to TaintDroid hardware and OS dependencies. More information would be provided as the project updates.