Detecting Energy Bugs in Android Apps Using Static Analysis

Hao Jiang, Hongli Yang, Shengchao Qin, Zhendong Su, Jian Zhang, Jun Yan

Research output: Contribution to journalArticlepeer-review

566 Downloads (Pure)


Energy bugs in Android apps are defects that can make Android systems waste much energy as a whole. Energy bugs detection in Android apps has become an important issue since smartphones usually operate on a limited amount of battery capacity and the existence of energy bugs may lead to serious drain in the battery power. This paper focuses on detecting two types of energy bugs, namely resource leak and layout defect, in Android apps. A resource leak is a particular type of energy wasting phenomena where an app does not release its acquired resources such as a sensor and GPS. A layout defect refers to a poor layout structure causing more energy consumption for measuring and drawing the layout. In this paper, we present a static analysis technique called SAAD, that can automatically detect energy bugs in a context-sensitive way. SAAD detects the energy bugs by taking an inter-procedural anaysis of an app. For resource leak analysis, SAAD decompiles APK file into Dalvik bytecodes files and then performs resource leak analysis by taking components call relationship analysis, inter-procedure and intra-procedure analysis. For detecting layout defect, SAAD firstly employs Lint to perform some traditional app analysis, then filters energy defects from reported issues. Our experimental result on 64 publicly-available Android apps shows that SAAD can detect energy bugs effectively. The accuracies of detecting resource leak and layout energy defect are 87.5% and 78.1% respectively. © 2017, Springer International Publishing AG.

Supported by National Natural Science Foundation of China (No. 61672505) and the CAS/SAFEA International Partnership Program for Creative Research Teams.
Original languageEnglish
Pages (from-to)-
JournalLecture Notes in Computer Science
Publication statusPublished - 11 Oct 2017


Dive into the research topics of 'Detecting Energy Bugs in Android Apps Using Static Analysis'. Together they form a unique fingerprint.

Cite this