Automated Analysis of Energy Efficiency and Execution Performance for Mobile Applications

The Hong Kong University of Science and Technology
Department of Computer Science and Engineering


PhD Thesis Defence


Title: "Automated Analysis of Energy Efficiency and Execution Performance 
for Mobile Applications"

By

Mr. Yepang LIU


Abstract

Mobile applications' energy efficiency and performance have a vital impact 
on user experience. However, many mobile applications on market suffer 
from bugs that can cause significant energy waste and performance 
degradation, thereby losing their competitive edge. Locating these bugs is 
labor-intensive and thus automated diagnosis is highly desirable. 
Unfortunately, people have limited understanding of these bugs and there 
are no clear criteria to facilitate automated analysis of mobile 
applications' energy efficiency or execution performance. To bridge the 
gap, we conducted two large-scale empirical studies of real-world energy 
and performance bugs from popular Android applications. We studied the 
characteristics of these bugs and identified several common causes of 
energy waste and performance degradation.

For energy bugs, we observed that (1) forgetting to deactivate device 
sensors or wake locks after use and (2) ineffectively utilizing sensory 
data can cause serious energy waste. To help developers detect such energy 
bugs, we proposed a dynamic analysis technique GreenDroid. GreenDroid 
automatically generates user interaction event sequences to systematically 
execute an Android application for state space exploration. During 
execution, it tracks the transformation, propagation and consumption of 
sensory data and analyzes whether the data are effectively utilized by the 
application to bring users perceptible benefits. It also closely monitors 
whether device sensors and wake locks are properly deactivated after use. 
We evaluated GreenDroid using 14 popular open-source Android applications. 
GreenDroid successfully located 13 real energy bugs in these applications 
and additionally found two previously-unknown bugs that were later 
confirmed by developers.

For performance bugs, we observed that (1) conducting lengthy operations 
in an application's main thread and (2) frequently invoking heavy-weight 
program callbacks can seriously reduce the responsiveness of an 
application. To help developers detect such performance bugs, we designed 
a light-weight static analysis technique PerfChecker. PerfChecker 
automatically scans an Android application's bytecode and identifies a set 
of checkpoints whose efficiency is critical. It then analyzes whether the 
checkpoints' implementation satisfies the efficiency rules formulated from 
our empirical study. We evaluated PerfChecker with 39 popular and 
large-scale Android applications (29 open-source and 10 commercial) and a 
widely-used library. PerfChecker successfully detected 178 
previously-unknown performance bugs, among which 88 were quickly confirmed 
by developers and 20 critical ones were fixed soon afterwards. We also 
confirmed via comparison experiments that fixing our detected performance 
bugs can significantly improve the performance of the corresponding 
applications.


Date:			Thursday, 18 June 2015

Time:			10:00am - 12:00noon

Venue:			Room 4483
 			Lifts 25/26

Chairman:		Prof. Li Qiu (ECE)

Committee Members:	Prof. Shing-Chi Cheung (Supervisor)
 			Prof. Raymond Wong
 			Prof. Charles Zhang
 			Prof. Chi-Ying Tsui (ECE)
 			Prof. Mauro Pezze (Univ. of Lugano, Switzerland)


**** ALL are Welcome ****