Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3510455.3512795acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

A black box technique to reduce energy consumption of Android apps

Published: 17 October 2022 Publication History

Abstract

Android byte-code transformations are used to optimize applications (apps) in terms of run-time performance and size. But do they affect the energy consumption during this process? If they do, can we employ them to reduce an app's energy consumption? Given that most existing energy optimization techniques require developers to modify their code, a byte-code level modification technique will save developers' time and effort. In this paper, we investigate if byte-code transformations combined with genetic search can reduce an app's energy consumption. After applying our technique on four real-world apps, we find that some combinations of the byte-code transformations reduce the energy consumption by up to 11%.

References

[1]
Android. 2021. Android APK-Analyzer. https://developer.android.com/studio/debug/apk-analyzer
[2]
Shumeet Baluja and Rich Caruana. 1995. Removing the genetics from the standard genetic algorithm. In Machine Learning Proceedings 1995. Elsevier, 38--46.
[3]
Abhijeet Banerjee and Abhik Roychoudhury. 2016. Automated re-factoring of android apps to enhance energy-efficiency. In Proceedings of the International Conference on Mobile Software Engineering and Systems. 139--150.
[4]
Tania Banerjee and Sanjay Ranka. 2015. A genetic algorithm based autotuning approach for performance and energy optimization. In 2015 Sixth International Green and Sustainable Computing Conference (IGSC). IEEE, 1--8.
[5]
Bangash. 2021. Dataset for Byte-code level Search Based Energy Optimization. https://github.com/AbdulAli/EnergyDataset-ICSE-NIER22
[6]
Abdul Ali Bangash, Daniil Tiganov, Karim Ali, and Abram Hindle. 2021. Energy Efficient Guidelines for iOS Core Location Framework. In Proceedings of the 2021 International Conference on Software Maintenance and Evolution (ICSME) (2021-06-15). 1--12. http://softwareprocess.ca/pubs/bangash2021ICSME-igreenminer.pdf
[7]
Tobias Blickle. 2000. Tournament selection. Evolutionary computation 1 (2000), 181--186.
[8]
Morris Brenna, Federica Foiadelli, and Michela Longo. 2016. Application of genetic algorithms for driverless subway train energy optimization. International Journal of Vehicular Technology 2016 (2016).
[9]
Bobby R Bruce, Justyna Petke, and Mark Harman. 2015. Reducing energy consumption using genetic improvement. In Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation. 1327--1334.
[10]
Nathan Burles, Edward Bowles, Alexander EI Brownlee, Zoltan A Kocsis, Jerry Swan, and Nadarajen Veerapen. 2015. Object-oriented genetic improvement for improved energy consumption in Google Guava. In International Symposium on Search Based Software Engineering. Springer, 255--261.
[11]
Shaiful Chowdhury, Stephanie Borle, Stephen Romansky, and Abram Hindle. 2019. Greenscaler: training software energy models with automatic test generation. Empirical Software Engineering 24, 4 (2019), 1649--1692.
[12]
Shaiful Alam Chowdhury and Abram Hindle. 2016. Greenoracle: Estimating software energy consumption with energy measurement corpora. In 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR). IEEE, 49--60.
[13]
Shaiful Alam Chowdhury, Abram Hindle, Rick Kazman, Takumi Shuto, Ken Matsui, and Yasutaka Kamei. 2019. GreenBundle: an empirical study on the energy impact of bundled processing. In Proceedings of the 41st International Conference on Software Engineering. IEEE Press, 1107--1118.
[14]
Luis Cruz, Rui Abreu, and Jean-Noël Rouvignac. 2017. Leafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring. In 2017 IEEE/ACM 4th International Conference on Mobile Software Engineering and Systems (MOBILESoft). 205--206.
[15]
Emanuel Falkenauer. 1999. The worth of the uniform [uniform crossover]. In Proceedings of the 1999 Congress on Evolutionary Computation-CEC99 (Cat. No. 99TH8406), Vol. 1. IEEE, 776--782.
[16]
Kyriakos Georgiou, Craig Blackmore, Samuel Xavier-de Souza, and Kerstin Eder. 2018. Less is More: Exploiting the Standard Compiler Optimization Levels for Better Performance and Energy Consumption. In Proceedings of the 21st International Workshop on Software and Compilers for Embedded Systems (SCOPES '18). Association for Computing Machinery, New York, NY, USA, 35--42.
[17]
Mark Harman and Bryan F Jones. 2001. Search-based software engineering. Information and software Technology 43, 14 (2001), 833--839.
[18]
Samir Hasan, Zachary King, Munawar Hafiz, Mohammed Sayagh, Bram Adams, and Abram Hindle. 2016. Energy profiles of java collections classes. In Proceedings of the 38th International Conference on Software Engineering. ACM, 225--236.
[19]
Winston Haynes. 2013. Wilcoxon Rank Sum Test. Springer New York, New York, NY, 2354--2355.
[20]
Abram Hindle, Alex Wilson, Kent Rasmussen, E Jed Barlow, Joshua Charles Campbell, and Stephen Romansky. 2014. Greenminer: A hardware based mining software repositories software energy consumption framework. In Proceedings of the 11th Working Conference on Mining Software Repositories. ACM, 12--21.
[21]
Tzung-Pei Hong and Hong-Shung Wang. 1996. A dynamic mutation genetic algorithm. In 1996 IEEE International Conference on Systems, Man and Cybernetics. Information Intelligence and Systems (Cat. No. 96CH35929), Vol. 3. IEEE, 2000--2005.
[22]
Facebook Inc. 2021. Redex - An Android Bytecode Optimizer. https://fbredex.com/
[23]
Sunil Kr Jha and Egbe Michael Eyong. 2018. An energy optimization in wireless sensor networks by using genetic algorithm. Telecommunication Systems 67, 1 (2018), 113--121.
[24]
Hammad Khalid, Emad Shihab, Meiyappan Nagappan, and Ahmed E. Hassan. 2015. What Do Mobile App Users Complain About? IEEE Software 32, 3 (2015), 70--77.
[25]
Joanna Kołodziej, Samee Ullah Khan, Lizhe Wang, Aleksander Byrski, Nasro Min-Allah, and Sajjad Ahmad Madani. 2013. Hierarchical genetic-based grid scheduling with energy optimization. Cluster Computing 16, 3 (2013), 591--609.
[26]
John R Koza, David Andre, Martin A Keane, and Forrest H Bennett III. 1999. Genetic programming III: Darwinian invention and problem solving. Vol. 3. Morgan Kaufmann.
[27]
Lin Lin and Mitsuo Gen. 2009. Auto-tuning strategy for evolutionary algorithms: balancing between exploration and exploitation. Soft Computing 13, 2 (2009), 157--168.
[28]
Mario Linares-Vásquez, Gabriele Bavota, Carlos Bernal-Cárdenas, Massimiliano Di Penta, Rocco Oliveto, and Denys Poshyvanyk. 2018. Multi-Objective Optimization of Energy Consumption of GUIs in Android Apps. ACM Trans. Softw. Eng. Methodol. 27, 3, Article 14 (Sept. 2018), 47 pages.
[29]
Mario Linares-Vásquez, Gabriele Bavota, Carlos Eduardo Bernal Cárdenas, Rocco Oliveto, Massimiliano Di Penta, and Denys Poshyvanyk. 2015. Optimizing energy consumption of GUIs in Android apps: a multi-objective approach. In Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering. ACM, 143--154.
[30]
Irene Manotas, Lori Pollock, and James Clause. 2014. SEEDS: a software engineer's energy-optimization decision support framework. In Proceedings of the 36th International Conference on Software Engineering. ACM, 503--514.
[31]
Wellington Oliveira, Renato Oliveira, and Fernando Castor. 2017. A study on the energy consumption of android app development approaches. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR). IEEE, 42--52.
[32]
Wellington Oliveira, Renato Oliveira, Fernando Castor, Gustavo Pinto, and João Paulo Fernandes. 2021. Improving energy-efficiency by recommending Java collections. Empirical Software Engineering 26, 3 (2021), 1--45.
[33]
James Pallister, Simon J Hollis, and Jeremy Bennett. 2015. Identifying compiler options to minimize energy consumption for embedded platforms. Comput. J. 58, 1 (2015), 95--109.
[34]
Candy Pang, Abram Hindle, Bram Adams, and Ahmed E Hassan. 2015. What do programmers know about software energy consumption? IEEE Software 33, 3 (2015), 83--89.
[35]
Gustavo Pinto and Fernando Castor. 2017. Energy efficiency: a new concern for application software developers. Commun. ACM 60, 12 (2017), 68--75.
[36]
Gustavo Pinto, Fernando Castor, and Yu David Liu. 2014. Mining questions about software energy consumption. In Proceedings of the 11th Working Conference on Mining Software Repositories. 22--31.
[37]
Hareem Sahar, Abdul A Bangash, and Mirza O Beg. 2019. Towards energy aware object-oriented development of android applications. Sustainable Computing: Informatics and Systems 21 (2019), 28--46.
[38]
Eric Schulte, Jonathan Dorn, Stephen Harding, Stephanie Forrest, and Westley Weimer. 2014. Post-compiler software optimization for reducing energy. ACM SIGARCH Computer Architecture News 42, 1 (2014), 639--652.
[39]
J Maynard Smith. 1978. Optimization theory in evolution. Annual review of ecology and systematics 9, 1 (1978), 31--56.
[40]
D. Spinellis. 2005. Tool writing: a forgotten art? (software tools). IEEE Software 22, 4 (July 2005), 9--11.
[41]
Mian Wan, Yuchen Jin, Ding Li, and William G. J. Halfond. 2015. Detecting Display Energy Hotspots in Android Apps. In 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST). 1--10.
[42]
Thomas Wortmann, Christoph Waibel, Giacomo Nannicini, Ralph Evins, Thomas Schroepfer, and Jan Carmeliet. 2017. Are genetic algorithms really the best choice for building energy optimization?. In Proceedings of the Symposium on Simulation for Architecture and Urban Design. 1--8.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE-NIER '22: Proceedings of the ACM/IEEE 44th International Conference on Software Engineering: New Ideas and Emerging Results
May 2022
143 pages
ISBN:9781450392242
DOI:10.1145/3510455
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

  • IEEE CS

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 October 2022

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

ICSE '22
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)41
  • Downloads (Last 6 weeks)5
Reflects downloads up to 20 Nov 2024

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media