Detecting and Diagnosing Energy Issues for Mobile Applications
Energy efficiency is an important criterion to judge the quality of mobile apps, but one third of our randomly sampled apps are suffering from energy issues that can quickly drain battery. To understand these issues, we conducted an empirical study on 27 well-maintained apps (e.g., Chrome and Firefox), whose issue tracking systems are publicly accessible. Our study revealed that the main causes of energy issues are unnecessary workload, excessively frequent operations, etc. Surprisingly, these issues are beyond the application of the cutting-edge technology on energy issue detection. We also found 20.7 issues can only be manifested under special context such as bad performance of network, but its influence was totally neglected before. Motivated by these findings, we proposed a novel testing framework for detecting energy issues in real-world. We will see that assessing the necessity of workload is critical for identifying the issues of main causes. We hence employed machine learning algorithm to cluster the workloads and further evaluate their necessity. Besides, we also devised a set of artificial running contexts to productively uncover the neglected issues. More importantly, we developed a suit of practical technology to achieve high accuracy and efficacy of our testing framework. A large-scale evaluation shows that 91.6 test were heretofore unknown to developers. Averagely, these issues double the energy cost of apps. And our test achieves a low number of false positives. At last, we present how our test reports can help developers fix the issues.
READ FULL TEXT