A framework for the automatic execution of measurement-based experiments on Android devices
Status:: π©
Links:: Measure energy consumption of desktop software applications
Metadata
Authors:: Malavolta, Ivano; Grua, Eoin Martino; Lam, Cheng-Yu; de Vries, Randy; Tan, Franky; Zielinski, Eric; Peters, Michael; Kaandorp, Luuk
Title:: A framework for the automatic execution of measurement-based experiments on Android devices
Date:: 2021
Publisher:: Association for Computing Machinery
URL:: https://dl.acm.org/doi/10.1145/3417113.3422184
DOI:: 10.1145/3417113.3422184
Malavolta, I. et al. (2021) βA framework for the automatic execution of measurement-based experiments on Android devicesβ, in Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering. New York, NY, USA: Association for Computing Machinery (ASE β20), pp. 61β66. Available at: https://doi.org/10.1145/3417113.3422184.
Conducting measurement-based experiments is fundamental for assessing the quality of Android apps in terms of, e.g., energy consumption, CPU, and memory usage. However, orchestrating such experiments is not trivial as it requires large boilerplate code, careful setup of measurement tools, and the adoption of various empirical best practices scattered across the literature. All together, those factors are slowing down the scientific advancement and harming experiments' replicability in the mobile software engineering area.In this paper we present Android Runner (AR), a framework for automatically executing measurement-based experiments on native and web apps running on Android devices. In AR, an experiment is defined once in a descriptive fashion, and then its execution is fully automatic, customizable, and replicable. AR is implemented in Python and it can be extended with third-party profilers.AR has been used in more than 25 scientific studies primarily targeting performance and energy efficiency.
Notes & Annotations
Color-coded highlighting system used for annotations
π Annotations (imported on 2024-10-12#16:30:08)
Figure 1: Overview of AR
Listing 1: Simple usage scenario with three actions
AR is implemented as a set of Python 3 modules and as such it can run on any base station able to run Python code, such as a desktop computer, a laptop, or a Raspberry Pi; given its low cost, the latter is especially useful when needing to run multiple experiments in parallel.
AR is independent from the communication channel between the base station and the Android device (e.g., USB, Wi-Fi), provided that it is supported by ADB. ADB is the official Android tool to run commands on a connected Android device. In experiments targeting energy consumption, it is advised to use the Wi-Fi channel in order to avoid the influence that USB charging may have on the energyrelated behaviour of the device.
AR as a learning platform. AR is used at different levels within the Computer Science program of the Vrije Universiteit Amsterdam. Firstly, AR is used for scaling up the projects within the Green Lab course, where teams of students design and conduct empirical studies on the energy efficiency of software; students use AR as a black-box tool for measuring real mobile apps without spending time on activities outside the learning objectives of the course (e.g., writing and fixing bugs of boilerplate code).
The added value of AR is to help researchers and practitioners in avoiding to reinvent the wheel with ad-hoc, not-replicable empirical pipelines. AR is customizable via external business logic and extensible thanks to a plugin-based architecture.