Affiliation:
1. Indian Institute of Science
2. MPI-SWS
Abstract
Programming environments for smartphones expose a concurrency model that combines multi-threading and asynchronous event-based dispatch. While this enables the development of efficient and feature-rich applications, unforeseen thread interleavings coupled with non-deterministic reorderings of asynchronous tasks can lead to subtle concurrency errors in the applications.
In this paper, we formalize the concurrency semantics of the Android programming model. We further define the
happens-before
relation for Android applications, and develop a dynamic race detection technique based on this relation. Our relation generalizes the so far independently studied happens-before relations for multi-threaded programs and single-threaded event-driven programs. Additionally, our race detection technique uses a model of the Android runtime environment to reduce false positives.
We have implemented a tool called DroidRacer. It generates execution traces by systematically testing Android applications and detects data races by computing the happens-before relation on the traces. We analyzed 15 Android applications including popular applications such as Facebook, Twitter and K-9 Mail. Our results indicate that data races are prevalent in Android applications, and that DroidRacer is an effective tool to identify data races.
Funder
Bundesministerium für Bildung und Forschung
Department of Science and Technology, Ministry of Science and Technology
Government of India
Government of Germany
Max-Planck-Gesellschaft
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
31 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Improving Logic Bomb Identification in Android Apps via Context-Aware Anomaly Detection;IEEE Transactions on Dependable and Secure Computing;2024-09
2. Comparative Analysis of Fully Automated Testing Techniques for Android Applications;2023 2nd International Conference on Multidisciplinary Engineering and Applied Science (ICMEAS);2023-11-01
3. Detection of Java Basic Thread Misuses Based on Static Event Analysis;2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE);2023-09-11
4. NodeRT: Detecting Races in Node.js Applications Practically;Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis;2023-07-12
5. Precise and efficient atomicity violation detection for interrupt-driven programs via staged path pruning;Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis;2022-07-18