Towards Automated Energy Debugging on Smartphones
With over two billion users worldwide and over two million apps each in Google and Apple’s digital marketplaces, smartphones have permanently advanced human society into the mobile era. Despite the far-reaching societal impact of smartphones, the user experience has been severely limited by phone battery life. The obvious idea of extending smartphone battery life is to improve the battery technology which however has stagnated in the past 15 years, and battery capacity is generally viewed as nearing the limits of physics. ^ Instead, this dissertation takes the first steps to build automated energy debugging tools that can significantly extend smartphone battery life by exposing energy inefficiencies in various software running on the smartphone. As a first step, we build a taxonomy of the most prevalent type of energy bugs, sleep disorder bugs, and then build per-category compile-time and runtime automated tools to detect sleep disorder bugs. We demonstrate the effectiveness of these tools which have found energy bugs across all software layers including popular apps like Facebook, Android framework, Android kernel and its device drivers. ^ While effective, such systems find only bugs that belong to specific bug categories. The holy grail of automated energy debugging on smartphones is to build general purpose tools that can uncover any energy optimization opportunities and provide direct hints on how to restructure the code to make it more energy efficient. This dissertation presents, to our knowledge, the first such methodology, differential energy profiling, that automatically uncovers more efficient implementations of common app tasks by leveraging existing implementations of similar apps which are widely available in the enormous app market. DiffProf takes a set of similar apps (under similar user interactions) and automatically extracts reasons for why one app is more efficient than the other, by identifying functionally similar tasks and comparing their source-code-level energy profiles generated by a generic energy profiler, Eprof. Examination of high energy drain tasks confirmed several inefficient or buggy implementations in popular Android apps such as Google Hangouts and Wish.^
Y. Charlie Hu, Purdue University, Sonia Fahmy, Purdue University.
Off-Campus Purdue Users:
To access this dissertation, please log in to our