Static Analyses of GUI Behavior in Android Applications
Shengqian Yang · OhioLink ETD Center (Ohio Library and Information Network) · 2015
With the fast growing complexity of software systems, developers experience new challenges in understanding program's behavior to reveal performance and functional deficiencies and to support development, testing, debugging, optimization, and maintenance.These issues are especially important to mobile software due to limited computing resources on mobile devices, as well as short development life cycles.The correctness, security, and performance of mobile software is of paramount importance for many millions of users.For software engineering researchers, this raises high expectations for developing a comprehensive toolset of approaches for understanding, testing, checking, and verification of Android software.Static program analyses are essential components of such a toolset.Because of the event-driven and frameworkbased nature of the Android programming model, it is challenging to clearly understand application semantics and to represent it in static analysis algorithms.This dissertation makes several contributions towards solving this challenge.The ability to understand the interprocedural control flow is critical for reasoning statically about the semantics of a program.For Android, this flow is driven by the Graphical User Interface (GUI) of the application.As the first contribution of this dissertation, we propose a novel technique that analyzes the control flow of GUI event handlers in Android software.We build a callback control-flow graph,