Skip to main content
Log in

Energy inefficiency diagnosis for Android applications: a literature review

  • Review Article
  • Published:
Frontiers of Computer Science Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. 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

  2. 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

  3. 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

  4. 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

    Article  Google Scholar 

  5. 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

    Article  Google Scholar 

  6. 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

    Article  Google Scholar 

  7. 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

    Article  Google Scholar 

  8. 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

    Article  Google Scholar 

  9. 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

  10. 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

  11. Vallina-Rodriguez N, Crowcroft J. Energy management techniques in modern mobile handsets. IEEE Communications Surveys & Tutorials, 2013, 15(1): 179–198

    Article  Google Scholar 

  12. 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

  13. 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

  14. 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

    Article  Google Scholar 

  15. 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

    Google Scholar 

  16. 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

    Article  Google Scholar 

  17. 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

    Article  Google Scholar 

  18. 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

    Google Scholar 

  19. 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

  20. 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

  21. 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

  22. 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

    Google Scholar 

  23. 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

  24. Chen J Y. Mobile energy bug diagnosis. The Ohio State University, Dissertation, 2013

  25. Sun Y, Chen J, Tang Y, Chen Y. Energy modeling of IoT mobile terminals on WiFi environmental impacts. Sensors, 2018, 18(6): 1728

    Article  Google Scholar 

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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

    Google Scholar 

  43. 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

  44. 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

  45. Gottschalk M, Josefiok M, Jelschen J, Winter A. Removing energy code smells with reengineering services. In: Proceedings of INFORMATIK Conference. 2012

  46. 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

    Article  Google Scholar 

  47. 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

  48. 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

  49. Gottschalk M, Jelschen J, Winter A. Saving energy on mobile devices by refactoring. In: Proceedings of the 28th EnviroInfo 2014 Conference. 2014, 437–444

  50. 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

  51. 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

  52. Noureddine A, Rouvoy R, Seinturier L. Monitoring energy hotspots in software: energy profiling of software code. Automated Software Engineering, 2015, 22(3): 291–332

    Article  Google Scholar 

  53. 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

  54. 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

  55. 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

    Article  Google Scholar 

  56. 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

  57. 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

  58. 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

  59. 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

  60. 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

    Article  Google Scholar 

  61. 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

    Article  Google Scholar 

  62. 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

  63. Liu Y, Xu C, Cheung S C. Diagnosing energy efficiency and performance for mobile internetware applications. IEEE Software, 2015, 32(1): 67–75

    Article  Google Scholar 

  64. 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

  65. 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

  66. 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

  67. 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

    Article  Google Scholar 

  68. 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

  69. 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

  70. 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

  71. 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

    Article  Google Scholar 

  72. 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

  73. 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

  74. 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

    Article  Google Scholar 

  75. 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

  76. 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

  77. 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

    Article  Google Scholar 

  78. Mirzaei H, Heydarnoori A. Localizing exception faults in Android applications. Scientia Iranica, 2019, 26(3): 1567–1588

    Google Scholar 

  79. 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

  80. 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

Download references

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

Authors

Corresponding author

Correspondence to Yepang Liu.

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s11704-021-0532-4

Keywords

Navigation