EFFICIENT DETECTION OF HANG BUGS IN MOBILE APPLICATIONS

.............................................................................................................................. ii Dedication .......................................................................................................................... iii Acknowledgments.............................................................................................................. iv Vita ...................................................................................................................................... v List of Tables ..................................................................................................................... ix List of Figures ..................................................................................................................... x Chapter 1: Introduction ...................................................................................................... 1 Chapter 2: Literature Survey and Related Work ................................................................. 3 Chapter 3: Background ....................................................................................................... 5 3.1: Andriod .................................................................................................................... 5 3.2: Andriod Applications ............................................................................................... 5 3.3: Hang Problem........................................................................................................... 6 3.3.1: Reasons for Hang .............................................................................................. 6 3.4: Soft Hang ................................................................................................................. 7 Chapter 4: Algorithm Design .............................................................................................. 9 vii 4.1: Overview .................................................................................................................. 9 4.2: Algorithm Development ......................................................................................... 10 4.2.1: Event Detector ................................................................................................. 10 4.2.2: Trace Scheduler ............................................................................................... 10 4.2.3: Trace Collector ................................................................................................ 11 4.3: Implementation ...................................................................................................... 12 Chapter 5: Algorithm Evalutaion ...................................................................................... 25 5.1: Evaluation .............................................................................................................. 25 5.2: Experimental Set-up ............................................................................................... 25 5.3: Hang Bug Detection ............................................................................................... 26 5.3.1: Delay................................................................................................................ 28 5.3.2: Number of Hangs Detected ............................................................................. 28 5.3.3: Overhead Analysis........................................................................................... 29 5.3.4: Main Thread Overhead .................................................................................... 29 5.3.5: Whole App Overhead ...................................................................................... 29 Chapter 6: Results and Conclusions ................................................................................. 30 6.1: Delay ...................................................................................................................... 30 6.2: Number of Hangs Detected .................................................................................... 32 6.3: Main Thread Overhead .......................................................................................... 34 viii 6.4: Whole App Overhead ............................................................................................. 36 6.5: Conclusions ............................................................................................................ 38 References ......................................................................................................................... 39

[1]  Atanas Rountev,et al.  Testing for poor responsiveness in android applications , 2013, 2013 1st International Workshop on the Engineering of Mobile-Enabled Systems (MOBS).

[2]  Matthias Hauswirth,et al.  Catch me if you can: performance bug detection in the wild , 2011, OOPSLA '11.

[3]  Yepang Liu,et al.  Characterizing and detecting performance bugs for smartphone applications , 2014, ICSE.

[4]  Yu Lin,et al.  Retrofitting concurrency for Android applications through refactoring , 2014, FSE 2014.

[5]  Haibo Chen,et al.  Why software hangs and what can be done with it , 2010, 2010 IEEE/IFIP International Conference on Dependable Systems & Networks (DSN).

[6]  Haoxiang Lin,et al.  Hang analysis: fighting responsiveness bugs , 2008, Eurosys '08.