Print Email Facebook Twitter Characterizing and Detecting Battery Saver Bugs in Android Applications Title Characterizing and Detecting Battery Saver Bugs in Android Applications Author Siemers, Wander (TU Delft Electrical Engineering, Mathematics and Computer Science) Contributor Cruz, Luis (graduation committee) van Deursen, A. (mentor) Fazzini, Mattia (graduation committee) Degree granting institution Delft University of Technology Programme Computer Science Date 2024-06-21 Abstract Poor battery life is one of smartphone users’ top frustrations about their devices. This fact, in combination with the limited supply of battery minerals, the workingconditions of mining, and its environmental impact, has led to high interest in reducing smartphone energy consumption. Smartphone manufacturers have introduced power-saving features on their products and guide developers to use energy- efficient software engineering practices.In literature, the increased awareness of the need to reduce energy consumption and reduce emissions has led to the birth of a Green Software research field. Focusing on mobile software, prior research has focused on quantifying energy use and finding instances of software using more energy than is reasonable for its intended purpose. However, the ubiquitous power-saving features of smartphones have hardly been studied until now. In particular, bugs stemming from Android’s Battery Saver mode, a power-saving technology introduced in 2017 by Google, have not been studied at all. This thesis aims to address this research gap.To do so, we first characterize these issues by systematically collecting documentation pages, bug reports, and forum questions relating to these bugs. We find 13 separate problems, most of which (9 out of 13) have considerable user impact. Additionally, most problems are reported multiple times independently (mean re- porting frequency = 4.1) outside of Google documentation. Four of the problems have never been officially documented. Driven by this characterization, we build a static analysis tool that detects one of the characterized issues. It builds a Conditional Call Graph to find invocations of the implicated Application Programming Interfaces (APIs) without asserting this API is available. The tool is fast and does not require source code to be available. It runs on the Java Virtual Machine for portability.To evaluate the tool, we use a two-pronged approach. We first determine the ground truth for all 1,472 Google Play Store applications that are also available in the FDroid repository. We write a script to identify all suspicious API invocations, the bug candidates. We find and attempt to reproduce 178 of these bug candidates. We manually review all candidates to determine the ground truth. We evaluate our tool using the same data set. The tool reaches a precision of 0.911 and a recall of 0.911 and identifies 41 reproducible issues.Lastly, we report the reproduced issues identified by the tool to the developers of the affected applications. To date, nine issues have been confirmed by the developers, and two issues have already been addressed. Subject mobile softwarestatic analysisbattery saverpower-savingandroid application To reference this document use: http://resolver.tudelft.nl/uuid:17073199-f681-451b-b9e0-89e4d4e14b4c Part of collection Student theses Document type master thesis Rights © 2024 Wander Siemers Files PDF MSc_Thesis-Siemers.pdf 6.05 MB Close viewer /islandora/object/uuid:17073199-f681-451b-b9e0-89e4d4e14b4c/datastream/OBJ/view