Publication Type
Conference Proceeding Article
Version
acceptedVersion
Publication Date
6-2018
Abstract
Android native applications, written in Java and distributed in APK format, are widely used in mobile devices. Their specific pattern of use lets the operating system control the creation and destruction of key resources, such as activities and services (contexts). Programmers are not supposed to interfere with such lifecycle events. Otherwise contexts might be leaked, i.e. they will never be deallocated from memory, or be deallocated too late, leading to memory exhaustion and frozen applications. In practice, it is easy to write incorrect code, which hinders garbage collection of contexts and subsequently leads to context leakage.In this work, we present a new static analysis method that finds context leaks in Android code. We apply this analysis to APKs translated into Java bytecode. We discuss the results of a large number of experiments with our analysis, which reveal context leaks in many widely used applications from the Android marketplace. This shows the practical usefulness of our technique and proves its superiority w.r.t. the well-known Lint static analysis tool. We then estimate the amount of memory saved by the collection of the leaks found and explain, experimentally, where programmers often go wrong and what the analysis is not yet able to find. Such lessons could be later leveraged for the definition of a sound or more powerful static analysis for Android leaks. This work can be considered as a practical application of software analysis techniques to solve practical problems.
Discipline
Programming Languages and Compilers | Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
Proceedings of the 40th International Conference on Software Engineering, Gothenburg, Sweden, 2018 May 27 - June 3
First Page
215
Last Page
224
Identifier
10.1145/3183519.3183530
Publisher
IEEE
City or Country
Gothenburg, Sweden
Citation
TOFFALINI, Flavio; SUN, Jun; and COHOA, Martín.
Static analysis of context leaks in android applications. (2018). Proceedings of the 40th International Conference on Software Engineering, Gothenburg, Sweden, 2018 May 27 - June 3. 215-224.
Available at: https://ink.library.smu.edu.sg/sis_research/4651
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1145/3183519.3183530