Title
Understanding and detecting callback compatibility issues for Android applications.
Abstract
The control flows of Android apps are largely driven by the protocols that govern how callback APIs are invoked in response to various events. When these callback APIs evolve along with the Android framework, the changes in their invocation protocols can induce unexpected control flows to existing Android apps, causing various compatibility issues. We refer to these issues as callback compatibility issues. While Android framework updates have received due attention, little is known about their impacts on app control flows and the callback compatibility issues thus induced. To bridge the gap, we examined Android documentations and conducted an empirical study on 100 real-world callback compatibility issues to investigate how these issues were induced by callback API evolutions. Based on our empirical findings, we propose a graph-based model to capture the control flow inconsistencies caused by API evolutions and devise a static analysis technique, Cider, to detect callback compatibility issues. Our evaluation of Cider on 20 popular open-source Android apps shows that Cider is effective. It detected 13 new callback compatibility issues in these apps, among which 12 issues were confirmed and 9 issues were fixed.
Year
DOI
Venue
2018
10.1145/3238147.3238181
ASE
Keywords
Field
DocType
Android API, empirical study, static analysis, callback compatibility
Graph,Android (operating system),Software engineering,Systems engineering,Compatibility (mechanics),Computer science,Static analysis,Control flow,Callback,Empirical research
Conference
ISSN
ISBN
Citations 
1527-1366
978-1-4503-5937-5
10
PageRank 
References 
Authors
0.51
17
4
Name
Order
Citations
PageRank
Huaxun Huang1181.67
Lili Wei2916.51
Yepang Liu341524.58
S. C. Cheung42657162.89