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 Huang | 1 | 18 | 1.67 |
Lili Wei | 2 | 91 | 6.51 |
Yepang Liu | 3 | 415 | 24.58 |
S. C. Cheung | 4 | 2657 | 162.89 |