kirancodes.me
To Proof Maintenance & Beyond!

Static Control-Flow Analysis of User-Driven Callbacks in Android Applications

Shengqian Yang, Dacong Yan, Haowei Wu, Yan Wang, Atanas Rountev

Abstract

Android software presents many challenges for static program analysis. In this work we focus on the fundamental problem of static control-flow analysis. Traditional analyses cannot be directly applied to Android because the applications are framework-based and event-driven. We consider user-event-driven components and the related sequences of callbacks from the Android framework to the application code, both for lifecycle callbacks and for event handler callbacks. We propose a program representation that captures such callback sequences. This representation is built using context-sensitive static analysis of callback methods. The analysis performs graph reachability by traversing context-compatible interprocedural control-flow paths and identifying statements that may trigger callbacks, as well as paths that avoid such statements. We also develop a client analysis that builds a static model of the application's GUI. Experimental evaluation shows that this context-sensitive approach leads to substantial precision improvements, while having practical cost.

BibTeX
@inproceedings{Yang-al:ICSE15,
  author    = {Shengqian Yang and
               Dacong Yan and
               Haowei Wu and
               Yan Wang and
               Atanas Rountev},
  title     = {Static {Control-Flow} Analysis of {User-Driven} Callbacks in Android Applications},
  booktitle = {ICSE (Part I)},
  pages     = {89--99},
  publisher = {{IEEE} Computer Society},
  year      = {2015},
}

Related papers