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.
Similar content being viewed by others
References
Pathak A, Hu Y C, Zhang M. 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
Zhang L, Tiwana B, Dick R P, Qian Z, Mao Z M, Wang Z, Yang L. 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
Li D, Hao S, Halfond W G J, Govindan R. Calculating source line level energy information for Android applications. In: Proceedings of 2013 International Symposium on Software Testing and Analysis. 2013, 78–89
Hoque M A, Siekkinen M, Khan K N, Xiao Y, Tarkoma S. Modeling, profiling, and debugging the energy consumption of mobile devices. ACM Computing Surveys, 2016, 48(3): 39
Ahmad R W, Gani A, Hamid S H A, Shojafar M, Ahmed A I A, Madani S A, Saleem K, Rodrigues J J P C. A survey on energy estimation and power modeling schemes for smartphone applications. International Journal of Communication Systems, 2017, 30(11): e3234
Hoque M A, Siekkinen M, Nurminen J K. Energy efficient multimedia streaming to mobile devices—a survey. IEEE Communications Surveys 6 Tutorials, 2014, 16(1): 579–597
Benkhelifa E, Welsh T, Tawalbeh L, Jararweh Y, Basalamah A. 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
Ahmad R W, Gani A, Hamid S H A, Xia F, Shiraz M. 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
Jiang H, Yang H, Qin S, Su Z, Zhang J, Yan J. Detecting energy bugs in Android apps using static analysis. In: Proceedings of the 19th International Conference on Formal Engineering Methods. 2017, 192–208
Kundu A, Lin Z, Hammond J. 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
Vallina-Rodriguez N, Crowcroft J. Energy management techniques in modern mobile handsets. IEEE Communications Surveys & Tutorials, 2013, 15(1): 179–198
Oliveira W, Oliveira R, Castor F. 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
Kurtz K, Noguez M, Zanini F, Ferreira P R, Brisolara L. 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
Ciman M, Gaggi O. An empirical analysis of energy consumption of cross-platform frameworks for mobile development. Pervasive and Mobile Computing, 2017, 39: 214–230
Yang H, Jiang H, Qin S, Zhang J, Yan J. Survey on energy bug analysis technology of Android applications. Computer Applications and Software, 2016, 33(9): 1–6, 37
Li L, Bissyande T F, Papadakis M, Rasthofer S, Bartel A, Octeau D, Klein J, Traon L. Static analysis of Android apps: a systematic literature review. Information and Software Technology, 2017, 88: 67–95
Mehrotra D, Srivastava R, Nagpal R, Nagpal D. Multiclass classification of mobile applications as per energy consumption. Journal of King Saud University — Computer and Information Sciences, 2021, 33(6): 719–727
Al Nidawi H S A, Wei K T, Dawood K A, Khaleel A. 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
Elliot J, Kor A, Omotosho O A. 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
Zaman N, Almusalli F A. Review: smartphones power consumption & energy saving techniques. In: Proceedings of 2017 International Conference on Innovations in Electrical Engineering and Computational Technologies. 2017, 1–7
Almasri A, Gouveia L B. Analyzing and evaluating the amount of power consumption used by current power-saving-applications on Android smartphones. Technology, Networks and Society Group, 2019
Almasri A M, Gouveia L B. Reviewing the efficiency of current power-saving approaches used among different stages of an Android-application lifecycle. Porto: University Fernando Pessoa, 2019
Wohlin C. 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
Chen J Y. Mobile energy bug diagnosis. The Ohio State University, Dissertation, 2013
Sun Y, Chen J, Tang Y, Chen Y. Energy modeling of IoT mobile terminals on WiFi environmental impacts. Sensors, 2018, 18(6): 1728
Banerjee A, Chong L K, Chattopadhyay S, Roychoudhury A. 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
Kim C H P, Kroening D, Kwiatkowska M. 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
Anwer S, Aggarwal A, Purandare R, Naik V. Chiromancer: a tool for boosting Android application performance. In: Proceedings of the 1st International Conference on Mobile Software Engineering and Systems. 2014, 62–65
Gao X, Liu D, Liu D, Wang H, Stavrou A. E-android: a new energy profiling tool for smartphones. In: Proceedings of the 37th IEEE International Conference on Distributed Computing Systems. 2017, 492–502
Nucci D D, Palomba F, Prota A, Panichella A, Zaidman A, Lucia A D. 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
Guo C, Zhang J, Yan J, Zhang Z, Zhang Y. Characterizing and detecting resource leaks in Android applications. In: Proceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering. 2013, 389–398
Alam F, Panda P R, Tripathi N, Sharma N, Narayan S. Energy optimization in Android applications through wakelock placement. In: Proceedings of Conference on Design, Automation & Test in Europe. 2014, 88
Li X, Yang Y, Liu Y, Gallagher J P, Wu K. 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
Nagata K, Yamaguchi S, Ogawa H. 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
Cruz L, Abreu R. 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
Wang C, Guo Y, Shen P, Chen X. 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
Vekris P, Jhala R, Lerner S, Agarwal Y. 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
Rajaraman S V, Siekkinen M, Hoque M A. 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
Li D, Lyu Y J, Gui J, Halfond W G J. Automated energy optimization of http requests for mobile applications. In: Proceedings of the 38th IEEE/ACM International Conference on Software Engineering. 2016, 249–260
Oliner A J, Iyer A, Lagerspetz E, Tarkoma S, Stoica I. Collaborative energy debugging for mobile devices. In: Proceedings of the 8th Workshop on Hot Topics in System Dependability. 2012, 6
Liu Y, Xu C, Cheung S C. 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
Chowdhury S A, Sapra V, Hindle A. Is http/2 more energy efficient than http/1.1 for mobile users?. PeerJ PrePrints, 2015, 3: e1280v1
Pathak A, Jindal A, Hu Y C, Midkiff S P. 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
Jindal A, Pathak A, Hu Y C, Midkiff S. Hypnos: understanding and treating sleep conflicts in smartphones. In: Proceedings of the 8th ACM European Conference on Computer Systems. 2013, 253–266
Gottschalk M, Josefiok M, Jelschen J, Winter A. Removing energy code smells with reengineering services. In: Proceedings of INFORMATIK Conference. 2012
Li Q, Xu C, Liu Y, Cao C, Ma X, Lü J. Cyandroid: stable and effective energy inefficiency diagnosis for Android apps. Science China Information Sciences, 2017, 60(1): 012104
Banerjee A, Roychoudhury A. Automated re-factoring of Android apps to enhance energy-efficiency. In: Proceedings of International Conference on Mobile Software Engineering and Systems. 2016, 139–150
Banerjee A, Guo H F, Roychoudhury A. 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
Gottschalk M, Jelschen J, Winter A. Saving energy on mobile devices by refactoring. In: Proceedings of the 28th EnviroInfo 2014 Conference. 2014, 437–444
Li D, Hao S, Gui J, Halfond W G J. 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
Wang J, Wu G, Wu X, Wei J. 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
Noureddine A, Rouvoy R, Seinturier L. Monitoring energy hotspots in software: energy profiling of software code. Automated Software Engineering, 2015, 22(3): 291–332
Linares-Vásquez M, Bavota G, Bernal-Cárdenas C, Oliveto R, Di Penta M, Poshyvanyk D. 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
Wu H, Yang S, Rountev A. Static detection of energy defect patterns in Android applications. In: Proceedings of the 25th International Conference on Compiler Construction. 2016, 185–195
Banerjee A, Chong L K, Ballabriga C, Roychoudhury A. Energypatch: repairing resource leaks to improve energy-efficiency of Android apps. IEEE Transactions on Software Engineering, 2018, 44(5): 470–490
Wu T, Liu J, Deng X, Yan J, Zhang J. 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
Liu Y, Wang J, Xu C, Ma X. NavyDroid: detecting energy inefficiency problems for smartphone applications. In: Proceedings of the 9th Asia-Pacific Symposium on Internetware. 2017, 8
Gui J, Mcilroy S, Nagappan M, Halfond W G J. 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
Patil P S, Doshi J, Ambawade D. Reducing power consumption of smart device by proper management of wakelocks. In: Proceedings of 2015 IEEE International Advance Computing Conference. 2015, 883–887
Wu T, Liu J, Xu Z, Guo C, Zhang Y, Yan J, Zhang J. Light-weight, inter-procedural and callback-aware resource leak detection for Android apps. IEEE Transactions on Software Engineering, 2016, 42(11): 1054–1076
Liu Y, Xu C, Cheung S C, Lü J. GreenDroid: automated diagnosis of energy inefficiency for smartphone applications. IEEE Transactions on Software Engineering, 2014, 40(9): 911–940
Liu Y, Xu C, Cheung S C, Terragni V. 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
Liu Y, Xu C, Cheung S C. Diagnosing energy efficiency and performance for mobile internetware applications. IEEE Software, 2015, 32(1): 67–75
Zhang L, Gordon M S, Dick R P, Mao Z M, Dinda P, Yang L. 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
Yan D, Yang S, Rountev A. Systematic testing for resource leaks in Android applications. In: Proceedings of the 24th IEEE International Symposium on Software Reliability Engineering. 2013, 411–420
Wang X, Li X, Wen W. 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
Chen X, Ding N, Jindal A, Hu Y C, Gupta M, Vannithamby R. Smartphone energy drain in the wild: analysis and implications. ACM SIGMETRICS Performance Evaluation Review, 2015, 43(1): 151–164
Park S, Kim D, Cha H. 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
Carette A, Younes M A A, Hecht G, Moha N, Rouvoy R. Investigating the energy impact of Android smells. In: Proceedings of the 24th IEEE International Conference on Software Analysis, Evolution and Reengineering. 2017, 115–126
Ferrari A, Gallucci D, Puccinelli D, Giordano S. Detecting energy leaks in Android app with POEM. In: Proceedings of 2015 IEEE International Conference on Pervasive Computing and Communication Workshops. 2015, 421–426
Zhu C, Zhu Z, Xie Y, Jiang W, Zhang G. Evaluation of machine learning approaches for Android energy bugs detection with revision commits. IEEE Access, 2019, 7: 85241–85252
Liu A, Xu J, Wang W, Yu J, Gao H. Automated testing of energy hotspots and defects for Android applications. In: Proceedings of 2019 IEEE International Conference on Energy Internet. 2019, 374–379
Jabbarvand R, Lin J W, Malek S. Search-based energy testing of Android. In: Proceedings of the 41st IEEE/ACM International Conference on Software Engineering. 2019, 1119–1130
Wan M, Jin Y, Li D, Gui J, Mahajan S, Halfond W G J. Detecting display energy hotspots in Android apps. Software Testing, Verification and Reliability, 2017, 27(6): e1635
Jindal A, Pathak A, Hu Y C, Midkiff S. On death, taxes, and sleep disorder bugs in smartphones. In: Proceedings of Workshop on Power-Aware Computing and Systems. 2013, 1
Cruz L, Abreu R. Using automatic refactoring to improve energy efficiency of Android apps. In: Proceedings of the 21st Iberoamerican Conference on Software Engineering. 2018
Liu Y, Wang J, Wei L, Xu C, Cheung S C, Wu T, Yan J, Zhang J. DROIDLEAKS: a comprehensive database of resource leaks in Android apps. Empirical Software Engineering, 2019, 24(6): 3435–3483
Mirzaei H, Heydarnoori A. Localizing exception faults in Android applications. Scientia Iranica, 2019, 26(3): 1567–1588
Gastel P, Gastel B, Eekelen M. 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
Liu Y, Xu C, Cheung S C. Characterizing and detecting performance bugs for smartphone applications. In: Proceedings of the 36th International Conference on Software Engineering. 2014, 1013–1024
Acknowledgements
This work was supported by the Guangdong Basic and Applied Basic Research Foundation (2021A1515012297), the Shenzhen Science and Technology Innovation Commission (R2020A045), and the Open Project of Guangdong Provincial Key Laboratory of High-Performance Computing(2021).
Author information
Authors and Affiliations
Corresponding author
Additional information
Yuxia Sun received the BS degree from the Department of Computer Science, Huazhong University of Science and Technology, China and the PhD degree from the Department of Computer Science, Sun Yat-sen University, China. She is currently an Associate Professor with the Department of Computer Science, Jinan University, China. She was a Research Associate with Hong Kong Polytechnic University, China, and the University of Hong Kong, China and a Research Scholar with the College of Computing, Georgia Institute of Technology, USA. Her current research interests include software engineering, software safety, and system safety.
Jiefeng Fang received the BS degree in computer science from South China Agricultural University, China. She is currently a master student in the Department of Computer Science, Jinan University, China. Her research interests include software testing and software safety.
Yanjia Chen received the MS degree in computer science from Jinan University, China. Her research interests include software testing and software safety.
Yepang Liu received the doctoral degree in computer science and engineering from The Hong Kong University of Science and Technology (HKUST), China. In 2018, he joined the Department of Computer Science and Engineering of the Southern University of Science and Technology (SUSTech), China as a tenure-track assistant professor. His research interests include software testing and analysis, empirical software engineering, cyber-physical systems, mobile computing, and cybersecurity. He published widely in top software engineering venues and has received three ACM SIGSOFT Distinguished Paper Awards. He also participates actively in program and organizing committees of major international conferences and received ACM SIGSOFT Service Award for his contribution to the successful organization of the 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE 2014).
Zhao Chen is currently a master student in the Department of Computer Science, Jinan University, China. His current research interests include software testing.
Song Guo received the PhD degree in computer science from the University of Ottawa, Canada in 2005. He was a Professor with The University of Aizu, Japan. He is currently a Full Professor and the Associate Head with the Department of Computing, The Hong Kong Polytechnic University, China. His research interests are mainly in the areas of big data, edge AI, cloud computing, mobile computing, and distributed systems. Prof. Guo was an IEEE ComSoc Distinguished Lecturer from 2017 to 2018 and served on the IEEE ComSoc Board of Governors from 2018 to 2019. He has also served as the general and the program chair for numerous IEEE conferences. He is a fellow of the Canadian Academy of Engineering. He was a recipient of the 2019 IEEE TCBD Best Conference Paper Award, the 2018 IEEE TCGCC Best Magazine Paper Award, the 2017 IEEE SYSTEMS JOURNAL Annual Best Paper Award, and other six best paper awards from the IEEE/ACM conferences. His work was also recognized by the 2016 Annual Best of Computing: Notable Books and Articles in Computing in ACM Computing Reviews. He is the Editor-in-Chief of the IEEE Open Journal of the Computer Society and an Associate Editor of the IEEE Transactions on Cloud Computing, the IEEE Transactions on Sustainable Computing, and the IEEE Transactions on Green Communications and Networking.
Xinkai Chen received the BS degree in computer science from Jinan University, China. His research interest is software testing.
Ziyuan Tan received the BS degree in computer science from Jinan University, China. His current research interests include software safety and computer vision.
Electronic supplementary material
Rights and permissions
About this article
Cite this article
Sun, Y., Fang, J., Chen, Y. et al. Energy inefficiency diagnosis for Android applications: a literature review. Front. Comput. Sci. 17, 171201 (2023). https://doi.org/10.1007/s11704-021-0532-4
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s11704-021-0532-4