Please wait a minute...
Frontiers of Computer Science

ISSN 2095-2228

ISSN 2095-2236(Online)

CN 10-1014/TP

邮发代号 80-970

2019 Impact Factor: 1.275

Frontiers of Computer Science  2023, Vol. 17 Issue (1): 171201   https://doi.org/10.1007/s11704-021-0532-4
  本期目录
Energy inefficiency diagnosis for Android applications: a literature review
Yuxia SUN1, Jiefeng FANG1, Yanjia CHEN1, Yepang LIU2(), Zhao CHEN1, Song GUO3, Xinkai CHEN1, Ziyuan TAN1
1. Department of Computer Science, Jinan University, Guangzhou 510632, China
2. Department of Computer Science and Engineering, Southern University of Science and Technology, Shenzhen 518055, China
3. The Department of Computing, Hong Kong Polytechnic University, Hong Kong 999077, China
 全文: PDF(3970 KB)   HTML
Abstract

Android applications are becoming increasingly powerful in recent years. While their functionality is still of paramount importance to users, the energy efficiency of these applications is also gaining more and more attention. Researchers have discovered various types of energy defects in Android applications, which could quickly drain the battery power of mobile devices. Such defects not only cause inconvenience to users, but also frustrate Android developers as diagnosing the energy inefficiency of a software product is a non-trivial task. In this work, we perform a literature review to understand the state of the art of energy inefficiency diagnosis for Android applications. We identified 55 research papers published in recent years and classified existing studies from four different perspectives, including power estimation method, hardware component, types of energy defects, and program analysis approach. We also did a cross-perspective analysis to summarize and compare our studied techniques. We hope that our review can help structure and unify the literature and shed light on future research, as well as drawing developers' attention to build energy-efficient Android applications.

Key wordsAndroid applications    energy defects    energy inefficiency diagnosis
收稿日期: 2020-11-02      出版日期: 2022-03-01
Corresponding Author(s): Yepang LIU   
 引用本文:   
. [J]. Frontiers of Computer Science, 2023, 17(1): 171201.
Yuxia SUN, Jiefeng FANG, Yanjia CHEN, Yepang LIU, Zhao CHEN, Song GUO, Xinkai CHEN, Ziyuan TAN. Energy inefficiency diagnosis for Android applications: a literature review. Front. Comput. Sci., 2023, 17(1): 171201.
 链接本文:  
https://academic.hep.com.cn/fcs/CN/10.1007/s11704-021-0532-4
https://academic.hep.com.cn/fcs/CN/Y2023/V17/I1/171201
Fig.1  
Publication venue Core ranking The number of surveyed papers
International Conference on Software Engineering (ICSE) A* 4
International Conference on Automated Software Engineering (ASE) A* 3
IEEE Transactions on Software Engineering (TSE) A* 3
International Symposium on Foundations of Software Engineering (FSE) A* 2
IEEE International Conference on Pervasive Computing and Communications (PERCOM) A* 1
Measurement and Modeling of Computer Systems (SIGMETRICS) A* 1
European Conference on Computer Systems (EuroSys) A 1
International Symposium on Software Testing and Analysis (ISSTA) A 1
International Working Conference on Mining Software Repositories (MSR) A 1
International Conference on Distributed Computing Systems (ICDCS) A 1
IEEE International Conference on Software Maintenance and Evolution (ICSME) A 1
IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER) A 1
International Symposium on Software Reliability Engineering (ISSRE) A 1
Tab.1  
Fig.2  
Power estimation method Existing studies that have used the method
Software-based solutions Eprof [1]
PowerTutor app [28], [29], [32], [64]
Traffic Monitor [28], [64]
LEAKDROID [65]
Uses Android offcial APIs [66]
e-Surgeon [52]
Elite [62]
Android official BatteryStats app [29]
E-Spector [36]
Andromedar app [49]
eStar app [67]
PETrA [30]
Hardware-based solutions Monsoon Power Monitor [24], [27], [40], [47], [48], [50], [68]
ODROID-XU [35]
SmartPower2 [33]
Yokogawa WT210 digital power meter [26], [55]
Yocto-Amp [69]
Tab.2  
CPU [9], [24], [26], [28], [31], [32], [33], [35], [36], [37], [40], [43], [45], [48], [50], [52], [55], [57], [58], [59], [60], [62], [63], [64], [67], [70], [71]
WiFi [9], [24], [26], [31], [32], [33], [36], [39], [40], [44], [45], [47], [48], [50], [53], [55], [60], [61], [67], [72], [73]
Screen [24], [26], [28], [29], [31], [32], [33], [36], [37], [43], [44], [48], [50], [53], [55], [59], [60], [62], [67], [70], [73], [74]
Radio [26], [31], [40], [61], [73]
Cellular [31], [32], [33], [36], [39], [44], [48], [49], [51], [52], [55], [61]
GPU [27], [31], [35]
GPS [9], [26], [28], [31], [32], [33], [40], [41], [43], [44], [45], [46], [47], [48], [49], [50], [53], [54], [55], [57], [60], [61], [67], [72], [73]
Bluetooth [1], [9], [26], [31], [47], [55], [61], [73]
Tab.3  
Energy bugs No-Sleep Defects Code path errors [1], [28], [29], [32], [33], [35], [37], [43], [48], [55], [57], [59], [61], [62], [66], [71], [73], [75]
Data contention [32], [43], [59], [61], [66]
Expansion [26], [32], [43], [44], [59], [61], [62], [66], [67]
Application self-start [1], [26], [29], [45], [48], [55]
Resource leaks [9], [24], [26], [31], [33], [35], [41], [46], [47], [48], [55], [56], [60], [61], [63], [64], [65], [70], [76], [77]
Inefficient background services [26], [29], [33], [48], [55], [78]
Energy hotspots Suboptimal resource binding [26], [29], [33], [40], [47], [48], [49]
Inefficient loop code [1], [26], [48], [50]
Network defects [28], [39], [48], [50], [51], [52], [53], [64], [71]
GUI defects [9], [27], [29], [35], [53], [54], [63], [72], [78]
Tab.4  
Static analysis Control flow analysis [9], [27], [31], [36], [37], [39], [45], [47], [49], [51], [54], [55], [56], [60], [61], [62], [63], [68], [69], [70], [72], [73], [76], [78], [79], [80]
Data flow analysis [32], [37], [43], [45], [47], [49], [51], [60], [62], [75]
Model checking [24], [47], [63], [67], [71], [79]
Dynamic analysis Event flow analysis [1], [24], [26], [29], [33], [41], [44], [46], [47], [48], [50], [53], [55], [57], [64], [65], [67], [68], [73], [78]
Taint analysis [40], [41], [46], [64]
Program instrumentation [1], [28], [52]
Tab.5  
Fig.3  
Fig.4  
  
  
  
  
  
  
  
  
1 A Pathak, Y C Hu, M Zhang. Bootstrapping energy debugging on smartphones: a first look at energy bugs in mobile devices. In: Proceedings of the 10th ACM Workshop on Hot Topics in Networks. 2011, 5
2 L Zhang, B Tiwana, R P Dick, Z Qian, Z M Mao, Z Wang, L Yang. Accurate online power estimation and automatic battery behavior based power model generation for smartphones. In: Proceedings of 2010 IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis. 2010, 105−114
3 D Li, S Hao, W G J Halfond, R Govindan. Calculating source line level energy information for Android applications. In: Proceedings of 2013 International Symposium on Software Testing and Analysis. 2013, 78−89
4 M A Hoque , M Siekkinen , K N Khan , Y Xiao , S Tarkoma . Modeling, profiling, and debugging the energy consumption of mobile devices. ACM Computing Surveys, 2016, 48( 3): 39–
5 R W Ahmad , A Gani , S H A Hamid , M Shojafar , A I A Ahmed , S A Madani , K Saleem , J J P C Rodrigues . A survey on energy estimation and power modeling schemes for smartphone applications. International Journal of Communication Systems, 2017, 30( 11): e3234–
6 M A Hoque , M Siekkinen , J K Nurminen . Energy efficient multimedia streaming to mobile devices—a survey. IEEE Communications Surveys & Tutorials, 2014, 16( 1): 579– 597
7 E Benkhelifa , T Welsh , L Tawalbeh , Y Jararweh , A Basalamah . Energy optimisation for mobile device power consumption: a survey and a unified view of modelling for a comprehensive network simulation. Mobile Networks and Applications, 2016, 21( 4): 575– 588
8 R W Ahmad , A Gani , S H A Hamid , F Xia , M Shiraz . A review on mobile application energy profiling: taxonomy, state-of-the-art, and open research issues. Journal of Network and Computer Applications, 2015, 58 : 42– 59
9 H Jiang, H Yang, S Qin, Z Su, J Zhang, J Yan. Detecting energy bugs in Android apps using static analysis. In: Proceedings of the 19th International Conference on Formal Engineering Methods. 2017, 192−208
10 A Kundu, Z Lin, J Hammond. Energy attacks on mobile devices. In: Proceedings of the 2nd IEEE International Conference on Trust, Privacy and Security in Intelligent Systems and Applications. 2020, 107−117
11 N Vallina-Rodriguez , J Crowcroft . Energy management techniques in modern mobile handsets. IEEE Communications Surveys & Tutorials, 2013, 15( 1): 179– 198
12 W Oliveira, R Oliveira, F Castor. A study on the energy consumption of android app development approaches. In: Proceedings of the 14th International Conference on Mining Software Repositories. 2017, 42−52
13 K Kurtz, M Noguez, F Zanini, P R Ferreira, L Brisolara. Comparing performance and energy consumption of Android applications: native versus web approaches. In: Proceedings of 2017 VII Brazilian Symposium on Computing Systems Engineering. 2017, 147−154
14 M Ciman , O Gaggi . An empirical analysis of energy consumption of cross-platform frameworks for mobile development. Pervasive and Mobile Computing, 2017, 39 : 214– 230
15 H Yang , H Jiang , S Qin , J Zhang , J Yan . Survey on energy bug analysis technology of Android applications. Computer Applications and Software, 2016, 33( 9): 1– 6, 37
16 L Li , T F Bissyande , M Papadakis , S Rasthofer , A Bartel , D Octeau , J Klein , L Traon . Static analysis of Android apps: a systematic literature review. Information and Software Technology, 2017, 88 : 67– 95
17 D Mehrotra , R Srivastava , R Nagpal , D Nagpal . Multiclass classification of mobile applications as per energy consumption. Journal of King Saud University - Computer and Information Sciences, 2021, 33( 6): 719– 727
18 H S A Al Nidawi , K T Wei , K A Dawood , A Khaleel . Energy consumption patterns of mobile applications in Android platform: a systematic literature review. Journal of Theoretical and Applied Information Technology, 2017, 95( 24): 6776– 6787
19 J Elliot, A Kor, O A Omotosho. Energy consumption in smartphones: an investigation of battery and energy consumption of media related applications on Android smartphones. In: Proceedings of International Seeds Conference. 2017
20 N Zaman, F A Almusalli. Review: smartphones power consumption & energy saving techniques. In: Proceedings of 2017 International Conference on Innovations in Electrical Engineering and Computational Technologies. 2017, 1−7
21 A Almasri, L B Gouveia. Analyzing and evaluating the amount of power consumption used by current power-saving-applications on Android smartphones. Technology, Networks and Society Group, 2019
22 A M Almasri, L B Gouveia. Reviewing the efficiency of current power-saving approaches used among different stages of an Android-application lifecycle. Porto: University Fernando Pessoa, 2019
23 C Wohlin. Guidelines for snowballing in systematic literature studies and a replication in software engineering. In: Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering. 2014, 38
24 J Y Chen. Mobile energy bug diagnosis. The Ohio State University, Dissertation, 2013
25 Y Sun , J Chen , Y Tang , Y Chen . Energy modeling of IoT mobile terminals on WiFi environmental impacts. Sensors, 2018, 18( 6): 1728–
26 A Banerjee, L K Chong, S Chattopadhyay, A Roychoudhury. Detecting energy bugs and hotspots in mobile apps. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. 2014, 588−598
27 C H P Kim, D Kroening, M. Kwiatkowska Static program analysis for identifying energy bugs in graphics-intensive mobile apps. In: Proceedings of the 24th IEEE International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems. 2016, 115−124
28 S Anwer, A Aggarwal, R Purandare, V Naik. Chiromancer: a tool for boosting Android application performance. In: Proceedings of the 1st International Conference on Mobile Software Engineering and Systems. 2014, 62−65
29 X Gao, D Liu, D Liu, H Wang, A Stavrou. E-android: a new energy profiling tool for smartphones. In: Proceedings of the 37th IEEE International Conference on Distributed Computing Systems. 2017, 492−502
30 D D Nucci, F Palomba, A Prota, A Panichella, A Zaidman, A D Lucia. Software-based energy profiling of Android apps: simple, efficient and reliable? In: Proceedings of the 24th IEEE International Conference on Software Analysis, Evolution and Reengineering. 2017, 103−114
31 C Guo, J Zhang, J Yan, Z Zhang, Y Zhang. Characterizing and detecting resource leaks in Android applications. In: Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering. 2013, 389−398
32 F Alam, P R Panda, N Tripathi, N Sharma, S Narayan. Energy optimization in Android applications through wakelock placement. In: Proceedings of Conference on Design, Automation & Test in Europe. 2014, 88
33 X Li, Y Yang, Y Liu, J P Gallagher, K Wu. Detecting and diagnosing energy issues for mobile applications. In: Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis. 2020, 115−127
34 K Nagata, S Yamaguchi, H Ogawa. A power saving method with consideration of performance in Android terminals. In: Proceedings of the 9th International Conference on Ubiquitous Intelligence and Computing and 9th International Conference on Autonomic and Trusted Computing. 2012, 578−585
35 L Cruz, R Abreu. Performance-based guidelines for energy efficient mobile applications. In: Proceedings of the 4th IEEE/ACM International Conference on Mobile Software Engineering and Systems. 2017, 46−57
36 C Wang, Y Guo, P Shen, X Chen. E-spector: online energy inspection for Android applications. In: Proceedings of 2017 IEEE/ACM International Symposium on Low Power Electronics and Design. 2017, 1−6
37 P Vekris, R Jhala, S Lerner, Y Agarwal. Towards verifying Android apps for the absence of no-sleep energy bugs. In: Proceedings of 2012 USENIX Conference on Power-Aware Computing and Systems. 2012, 3
38 S V Rajaraman, M Siekkinen, M A Hoque. Energy consumption anatomy of live video streaming from a smartphone. In: Proceedings of the 25th IEEE Annual International Symposium on Personal, Indoor, and Mobile Radio Communication. 2014, 2013−2017
39 D Li, Y J Lyu, J Gui, W G J Halfond. Automated energy optimization of http requests for mobile applications. In: Proceedings of the 38th IEEE/ACM International Conference on Software Engineering. 2016, 249−260
40 A J Oliner, A Iyer, E Lagerspetz, S Tarkoma, I Stoica. Collaborative energy debugging for mobile devices. In: Proceedings of the 8th Workshop on Hot Topics in System Dependability. 2012, 6
41 Y Liu, C Xu, S C Cheung. Where has my battery gone? Finding sensor related energy black holes in smartphone applications. In: Proceedings of 2013 IEEE International Conference on Pervasive Computing and Communications. 2013, 2−10
42 S A Chowdhury , V Sapra , A Hindle . Is http/2 more energy efficient than http/1.1 for mobile users?. PeerJ PrePrints, 2015, 3 : e1280v1–
43 A Pathak, A Jindal, Y C Hu, S P Midkiff. What is keeping my phone awake?: Characterizing and detecting no-sleep energy bugs in smartphone apps. In: Proceedings of the 10th International Conference on Mobile Systems, Applications, and Services. 2012, 267−280
44 A Jindal, A Pathak, Y C Hu, S Midkiff. Hypnos: understanding and treating sleep conflicts in smartphones. In: Proceedings of the 8th ACM European Conference on Computer Systems. 2013, 253−266
45 M Gottschalk, M Josefiok, J Jelschen, A Winter. Removing energy code smells with reengineering services. In: Proceedings of INFORMATIK Conference. 2012
46 Q Li , C Xu , Y Liu , C Cao , X Ma , J Lü . Cyandroid: stable and effective energy inefficiency diagnosis for Android apps. Science China Information Sciences, 2017, 60( 1): 012104–
47 A Banerjee, A Roychoudhury. Automated re-factoring of Android apps to enhance energy-efficiency. In: Proceedings of International Conference on Mobile Software Engineering and Systems. 2016, 139−150
48 A Banerjee, H F Guo, A Roychoudhury. Debugging energy-efficiency related field failures in mobile apps. In: Proceedings of the 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems. 2016, 127−138
49 M Gottschalk, J Jelschen, A Winter. Saving energy on mobile devices by refactoring. In: Proceedings of the 28th EnviroInfo 2014 Conference. 2014, 437−444
50 D Li, S Hao, J Gui, W G J Halfond. An empirical study of the energy consumption of Android applications. In: Proceedings of 2014 IEEE International Conference on Software Maintenance and Evolution. 2014, 121−130
51 J Wang, G Wu, X Wu, J Wei. Detect and optimize the energy consumption of mobile app through static analysis: an initial research. In: Proceedings of the 4th Asia-Pacific Symposium on Internetware. 2012, 22
52 A Noureddine , R Rouvoy , L Seinturier . Monitoring energy hotspots in software: energy profiling of software code. Automated Software Engineering, 2015, 22( 3): 291– 332
53 M Linares-Vásquez, G Bavota, C Bernal-Cárdenas, R Oliveto, Penta M Di, D Poshyvanyk. Mining energy-greedy API usage patterns in Android apps: an empirical study. In: Proceedings of the 11th Working Conference on Mining Software Repositories. 2014, 2−11
54 H Wu, S Yang, A Rountev. Static detection of energy defect patterns in Android applications. In: Proceedings of the 25th International Conference on Compiler Construction. 2016, 185−195
55 A Banerjee , L K Chong , C Ballabriga , A Roychoudhury . Energypatch: repairing resource leaks to improve energy-efficiency of Android apps. IEEE Transactions on Software Engineering, 2018, 44( 5): 470– 490
56 T Wu, J Liu, X Deng, J Yan, J Zhang. Relda2: an effective static analysis tool for resource leak detection in Android apps. In: Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering. 2016, 762−767
57 Y Liu, J Wang, C Xu, X Ma. NavyDroid: detecting energy inefficiency problems for smartphone applications. In: Proceedings of the 9th Asia-Pacific Symposium on Internetware. 2017, 8
58 J Gui, S Mcilroy, M Nagappan, W G J Halfond. Truth in advertising: the hidden cost of mobile ads for software developers. In: Proceedings of the 37th IEEE/ACM IEEE International Conference on Software Engineering. 2015, 100−110
59 P S Patil, J Doshi, D Ambawade. Reducing power consumption of smart device by proper management of wakelocks. In: Proceedings of 2015 IEEE International Advance Computing Conference. 2015, 883−887
60 T Wu , J Liu , Z Xu , C Guo , Y Zhang , J Yan , J Zhang . Light-weight, inter-procedural and callback-aware resource leak detection for Android apps. IEEE Transactions on Software Engineering, 2016, 42( 11): 1054– 1076
61 Y Liu , C Xu , S C Cheung , J Lü . GreenDroid: automated diagnosis of energy inefficiency for smartphone applications. IEEE Transactions on Software Engineering, 2014, 40( 9): 911– 940
62 Y Liu, C Xu, S C Cheung, V Terragni. Understanding and detecting wake lock misuses for Android applications. In: Proceedings of the 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. 2016, 396−409
63 Y Liu , C Xu , S C Cheung . Diagnosing energy efficiency and performance for mobile internetware applications. IEEE Software, 2015, 32( 1): 67– 75
64 L Zhang, M S Gordon, R P Dick, Z M Mao, P Dinda, L Yang. ADEL: an automatic detector of energy leaks for smartphone applications. In: Proceedings of the 8th IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis. 2012, 363−372
65 D Yan, S Yang, A Rountev. Systematic testing for resource leaks in Android applications. In: Proceedings of the 24th IEEE International Symposium on Software Reliability Engineering. 2013, 411−420
66 X Wang, X Li, W Wen. WLCleaner: reducing energy waste caused by wakelock bugs at runtime. In: Proceedings of the 12th IEEE International Conference on Dependable, Autonomic and Secure Computing. 2014, 429−434
67 X Chen , N Ding , A Jindal , Y C Hu , M Gupta , R Vannithamby . Smartphone energy drain in the wild: analysis and implications. ACM SIGMETRICS Performance Evaluation Review, 2015, 43( 1): 151– 164
68 S Park, D Kim, H Cha. Reducing energy consumption of alarm-induced wake-ups on Android smartphones. In: Proceedings of the 16th International Workshop on Mobile Computing Systems and Applications. 2015, 33−38
69 A Carette, M A A Younes, G Hecht, N Moha, R Rouvoy. Investigating the energy impact of Android smells. In: Proceedings of the 24th IEEE International Conference on Software Analysis, Evolution and Reengineering. 2017, 115−126
70 A Ferrari, D Gallucci, D Puccinelli, S Giordano. Detecting energy leaks in Android app with POEM. In: Proceedings of 2015 IEEE International Conference on Pervasive Computing and Communication Workshops. 2015, 421−426
71 C Zhu , Z Zhu , Y Xie , W Jiang , G Zhang . Evaluation of machine learning approaches for Android energy bugs detection with revision commits. IEEE Access, 2019, 7 : 85241– 85252
72 A Liu, J Xu, W Wang, J Yu, H Gao. Automated testing of energy hotspots and defects for Android applications. In: Proceedings of 2019 IEEE International Conference on Energy Internet. 2019, 374−379
73 R Jabbarvand, J W Lin, S Malek. Search-based energy testing of Android. In: Proceedings of the 41st IEEE/ACM International Conference on Software Engineering. 2019, 1119−1130
74 M Wan , Y Jin , D Li , J Gui , S Mahajan , W G J Halfond . Detecting display energy hotspots in Android apps. Software Testing, Verification and Reliability, 2017, 27( 6): e1635–
75 A Jindal, A Pathak, Y C Hu, S Midkiff. On death, taxes, and sleep disorder bugs in smartphones. In: Proceedings of Workshop on Power-Aware Computing and Systems. 2013, 1
76 L Cruz, R Abreu. Using automatic refactoring to improve energy efficiency of Android apps. In: Proceedings of the 21st Iberoamerican Conference on Software Engineering. 2018
77 Y Liu , J Wang , L Wei , C Xu , S C Cheung , T Wu , J Yan , J Zhang . DROIDLEAKS: a comprehensive database of resource leaks in Android apps. Empirical Software Engineering, 2019, 24( 6): 3435– 3483
78 H Mirzaei , A Heydarnoori . Localizing exception faults in Android applications. Scientia Iranica, 2019, 26( 3): 1567– 1588
79 P Gastel, B Gastel, M Eekelen. Detecting energy bugs and hotspots in control software using model checking. In: Programming'18 Companion: Conference Companion of the 2nd International Conference on Art, Science, and Engineering of Programming. 2018, 93−98
80 Y Liu, C Xu, S C Cheung. Characterizing and detecting performance bugs for smartphone applications. In: Proceedings of the 36th International Conference on Software Engineering. 2014, 1013−1024
[1] Highlights Download
Viewed
Full text


Abstract

Cited

  Shared   
  Discussed