Multi-Objective Optimization of Energy Consumption of GUIs in Android Apps

This tool demonstration describes GEMMA, a tool aimed at optimizing the colors used by Android apps, with the goal of reducing the energy consumption on (AM)OLED displays while keeping the user interface visually attractive for end-users. GEMMA has been developed as a distributed architecture to ensure scalability. It is composed of a Web-based client and processing nodes that are capable of analyzing multiple requests (apps) concurrently. The underlying approach makes use of power models, color theory, and multi-objective genetic algorithms. The empirical evaluation of GEMMA indicated its ability to reduce energy consumption while producing color combinations pleasant enough for the users. Also, a qualitative analysis conducted with app developers highlighted the potential applicability of the tool in an industrial context.VIDEO: https://www.youtube.com/watch?v=k-5ReMVwK0c.

[1]  Marco Laumanns,et al.  SPEA2: Improving the strength pareto evolutionary algorithm , 2001 .

[2]  Ding Li,et al.  Optimizing energy of HTTP requests in Android applications , 2015, DeMobile@SIGSOFT FSE.

[3]  Gustavo Pinto,et al.  Data-Oriented Characterization of Application-Level Energy Optimization , 2015, FASE.

[4]  Jácome Cunha,et al.  Energy efficiency across programming languages: how do energy, time, and memory relate? , 2017, SLE.

[5]  R. Grissom,et al.  Effect sizes for research: A broad practical approach. , 2005 .

[6]  Alireza Sadeghi,et al.  EcoDroid: An Approach for Energy-Based Ranking of Android Apps , 2015, 2015 IEEE/ACM 4th International Workshop on Green and Sustainable Software.

[7]  Fernando Castor Filho,et al.  A Study on the Energy Consumption of Android App Development Approaches , 2017, 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR).

[8]  Yingjun Lyu,et al.  Automated Energy Optimization of HTTP Requests for Mobile Applications , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[9]  Ding Li,et al.  An Empirical Study of the Energy Consumption of Android Applications , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[10]  Lin Zhong,et al.  Chameleon: A Color-Adaptive Web Browser for Mobile OLED Displays , 2012, IEEE Transactions on Mobile Computing.

[11]  Lori L. Pollock,et al.  SEEDS: a software engineer's energy-optimization decision support framework , 2014, ICSE.

[12]  Ding Li,et al.  Nyx: a display energy optimizer for mobile web apps , 2015, ESEC/SIGSOFT FSE.

[13]  Gaurav Sharma Digital Color Imaging Handbook , 2002 .

[14]  Lothar Thiele,et al.  Comparison of Multiobjective Evolutionary Algorithms: Empirical Results , 2000, Evolutionary Computation.

[15]  Mario Linares Vásquez,et al.  Mining Android App Usages for Generating Actionable GUI-Based Execution Scenarios , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

[16]  William G. J. Halfond,et al.  How Does Code Obfuscation Impact Energy Usage? , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[17]  Gustavo Pinto,et al.  A Comprehensive Study on the Energy Efficiency of Java’s Thread-Safe Collections , 2016, 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[18]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[19]  Abram Hindle,et al.  Energy Profiles of Java Collections Classes , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[20]  Reyhaneh Jabbarvand,et al.  µDroid: an energy-aware mutation testing framework for Android , 2017, ESEC/SIGSOFT FSE.

[21]  Abram Hindle,et al.  GreenOracle: Estimating Software Energy Consumption with Energy Measurement Corpora , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[22]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[23]  David Corne,et al.  The Pareto archived evolution strategy: a new baseline algorithm for Pareto multiobjective optimisation , 1999, Proceedings of the 1999 Congress on Evolutionary Computation-CEC99 (Cat. No. 99TH8406).

[24]  Ying Zou,et al.  An Exploratory Study on the Relation between User Interface Complexity and the Perceived Quality , 2014, ICWE.

[25]  Yepang Liu,et al.  Where has my battery gone? Finding sensor related energy black holes in smartphone applications , 2013, 2013 IEEE International Conference on Pervasive Computing and Communications (PerCom).

[26]  Gabriele Bavota,et al.  Mining energy-greedy API usage patterns in Android apps: an empirical study , 2014, MSR 2014.

[27]  Ramesh Govindan,et al.  Estimating mobile application energy consumption using program analysis , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[28]  Porfirio Tramontana,et al.  Using GUI ripping for automated testing of Android applications , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[29]  Lori L. Pollock,et al.  From benchmarks to real apps: Exploring the energy impacts of performance-directed changes , 2016, J. Syst. Softw..

[30]  Christopher Vendome,et al.  How developers micro-optimize Android apps , 2017, J. Syst. Softw..

[31]  Abram Hindle,et al.  Green mining: energy consumption of advertisement blocking methods , 2014, GREENS 2014.

[32]  Mario Linares Vásquez,et al.  Auto-completing bug reports for Android applications , 2015, ESEC/SIGSOFT FSE.

[33]  Atif M. Memon,et al.  An Observe-Model-Exercise* Paradigm to Test Event-Driven Systems with Undetermined Input Spaces , 2014, IEEE Transactions on Software Engineering.

[34]  Ding Li,et al.  Detecting Display Energy Hotspots in Android Apps , 2015, 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST).

[35]  Abram Hindle,et al.  How does Docker affect energy consumption? Evaluating workloads in and out of Docker containers , 2018, J. Syst. Softw..

[36]  Gabriele Bavota,et al.  GEMMA: multi-objective optimization of energy consumption of GUIs in Android apps , 2017, ICSE 2017.

[37]  Ramesh Govindan,et al.  Calculating source line level energy information for Android applications , 2013, ISSTA.

[38]  João Paulo Fernandes,et al.  Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional Language , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[39]  David Lo,et al.  What are the characteristics of high-rated apps? A case study on free Android Applications , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[40]  Lu Luo,et al.  Energy-Adaptive Display System Designs for Future Mobile Environments , 2003, MobiSys '03.

[41]  Enrique Alba,et al.  An App Performance Optimization Advisor for Mobile Device App Marketplaces , 2017, Sustain. Comput. Informatics Syst..

[42]  Ding Li,et al.  Lightweight Measurement and Estimation of Mobile Ad Energy Consumption , 2016, 2016 IEEE/ACM 5th International Workshop on Green and Sustainable Software (GREENS).

[43]  S. Holm A Simple Sequentially Rejective Multiple Test Procedure , 1979 .

[44]  Carlos A. Coello Coello,et al.  A Study of Multiobjective Metaheuristics When Solving Parameter Scalable Problems , 2010, IEEE Transactions on Evolutionary Computation.

[45]  C. Borror Practical Nonparametric Statistics, 3rd Ed. , 2001 .

[46]  Lothar Thiele,et al.  Multiobjective evolutionary algorithms: a comparative case study and the strength Pareto approach , 1999, IEEE Trans. Evol. Comput..

[47]  M. Braga,et al.  Exploratory Data Analysis , 2018, Encyclopedia of Social Network Analysis and Mining. 2nd Ed..

[48]  Iulian Neamtiu,et al.  Targeted and depth-first exploration for systematic testing of android apps , 2013, OOPSLA.

[49]  Michalis Faloutsos,et al.  ProfileDroid: multi-layer profiling of android applications , 2012, Mobicom '12.

[50]  Lin Zhong,et al.  Power Modeling and Optimization for OLED Displays , 2012, IEEE Transactions on Mobile Computing.

[51]  Terence C. Mills,et al.  Time series techniques for economists , 1990 .

[52]  Abram Hindle,et al.  Deep Green: Modelling Time-Series of Software Energy Consumption , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[53]  Chris North,et al.  GreenVis: Energy-Saving Color Schemes for Sequential Data Visualization on OLED Displays , 2012 .

[54]  Morten Moshagen,et al.  Facets of visual aesthetics , 2010, Int. J. Hum. Comput. Stud..

[55]  Ding Li,et al.  Integrated energy-directed test suite optimization , 2014, ISSTA 2014.

[56]  Riccardo Poli,et al.  Foundations of Genetic Programming , 1999, Springer Berlin Heidelberg.

[57]  Alireza Sadeghi,et al.  Energy-aware test-suite minimization for Android apps , 2016, ISSTA.

[58]  Andrea De Lucia,et al.  PETrA: A Software-Based Tool for Estimating the Energy Profile of Android Applications , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[59]  M. Aickin,et al.  Adjusting for multiple testing when reporting research results: the Bonferroni vs Holm methods. , 1996, American journal of public health.

[60]  Lori L. Pollock,et al.  Investigating Decreasing Energy Usage in Mobile Apps via Indistinguishable Color Changes , 2017, 2017 IEEE/ACM 4th International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[61]  Gabriele Bavota,et al.  Optimizing energy consumption of GUIs in Android apps: a multi-objective approach , 2015, ESEC/SIGSOFT FSE.

[62]  Lori L. Pollock,et al.  How do code refactorings affect energy usage? , 2014, ESEM '14.

[63]  William G. J. Halfond,et al.  Truth in Advertising: The Hidden Cost of Mobile Ads for Software Developers , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[64]  Antonio J. Nebro,et al.  jMetal: A Java framework for multi-objective optimization , 2011, Adv. Eng. Softw..

[65]  Jácome Cunha,et al.  Products go Green: Worst-Case Energy Consumption in Software Product Lines , 2017, SPLC.

[66]  Kalyanmoy Deb,et al.  An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point-Based Nondominated Sorting Approach, Part I: Solving Problems With Box Constraints , 2014, IEEE Transactions on Evolutionary Computation.

[67]  Christopher Vendome,et al.  Automatically Discovering, Reporting and Reproducing Android Application Crashes , 2016, 2016 IEEE International Conference on Software Testing, Verification and Validation (ICST).

[68]  Wei Le,et al.  A comparison of energy bugs for smartphone platforms , 2013, 2013 1st International Workshop on the Engineering of Mobile-Enabled Systems (MOBS).

[69]  Rui Zhang,et al.  An Empirical Study of Practitioners' Perspectives on Green Software Engineering , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[70]  Gustavo Pinto,et al.  Understanding energy behaviors of thread management constructs , 2014, OOPSLA 2014.

[71]  Haowei Wu,et al.  Static detection of energy defect patterns in Android applications , 2016, CC.

[72]  Abram Hindle Green mining: A methodology of relating software change to power consumption , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[73]  Andrea De Lucia,et al.  Software-based energy profiling of Android apps: Simple, efficient and reliable? , 2017, 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[74]  Martin C. Rinard,et al.  Crayon: saving power through shape and color approximation on next-generation displays , 2016, EuroSys.

[75]  Samuel P. Midkiff,et al.  What is keeping my phone awake?: characterizing and detecting no-sleep energy bugs in smartphone apps , 2012, MobiSys '12.

[76]  Kalyanmoy Deb,et al.  An Evolutionary Many-Objective Optimization Algorithm Using Reference-Point Based Nondominated Sorting Approach, Part II: Handling Constraints and Extending to an Adaptive Approach , 2014, IEEE Transactions on Evolutionary Computation.

[77]  Ming Zhang,et al.  Where is the energy spent inside my app?: fine grained energy accounting on smartphones with Eprof , 2012, EuroSys '12.

[78]  Matti Siekkinen,et al.  A System-Level Model for Runtime Power Estimation on Mobile Devices , 2010, 2010 IEEE/ACM Int'l Conference on Green Computing and Communications & Int'l Conference on Cyber, Physical and Social Computing.

[79]  Ming Zhang,et al.  Bootstrapping energy debugging on smartphones: a first look at energy bugs in mobile devices , 2011, HotNets-X.

[80]  Ding Li,et al.  Making web applications more energy efficient for OLED smartphones , 2014, ICSE.

[81]  Abram Hindle,et al.  GreenMiner: a hardware based mining software repositories software energy consumption framework , 2014, MSR 2014.

[82]  Ramesh Govindan,et al.  Estimating Android applications' CPU energy usage via bytecode profiling , 2012, 2012 First International Workshop on Green and Sustainable Software (GREENS).

[83]  Lionel C. Briand,et al.  A practical guide for using statistical tests to assess randomized algorithms in software engineering , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[84]  Todd D. Millstein,et al.  RERAN: Timing- and touch-sensitive record and replay for Android , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[85]  W. J. Conover,et al.  Practical Nonparametric Statistics , 1972 .

[86]  Abram Hindle,et al.  Green mining: a methodology of relating software change and configuration to power consumption , 2013, Empirical Software Engineering.

[87]  Jian Lu,et al.  GreenDroid: Automated Diagnosis of Energy Inefficiency for Smartphone Applications , 2014, IEEE Transactions on Software Engineering.

[88]  Yan Li,et al.  A Practical Guide to Select Quality Indicators for Assessing Pareto-Based Search Algorithms in Search-Based Software Engineering , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[89]  Eli Tilevich,et al.  Reducing the Energy Consumption of Mobile Applications Behind the Scenes , 2013, 2013 IEEE International Conference on Software Maintenance.