Optimizing User Experience in Choosing Android Applications

In this paper, we present a recommendation system aimed at helping users and developers alike. We help users to choose optimal sets of applications belonging to different categories (eg. browsers, e-mails, cameras) while minimizing energy consumption, transmitted data, and maximizing application rating. We also help developers by showing the relative placement of their application's efficiency with respect to selected others. When the optimal set of applications is computed, it is leveraged to position a given application with respect to the optimal, median and worst application in its category (eg. browsers). Out of eight categories we selected 144 applications, manually defined typical execution scenarios, collected the relevant data, and computed the Pareto optimal front solving a multi-objective optimization problem. We report evidence that, on the one hand, ratings do not correlate with energy efficiency and data frugality. On the other hand, we show that it is possible to help developers understanding how far is a new Android application power consumption and network usage with respect to optimal applications in the same category. From the user perspective, we show that choosing optimal sets of applications, power consumption and network usage can be reduced by 16.61% and 40.17%, respectively, in comparison to choosing the set of applications that maximizes only the rating.

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

[2]  Hojung Cha,et al.  AppScope: Application Energy Metering Framework for Android Smartphone Using Kernel Activity Monitoring , 2012, USENIX Annual Technical Conference.

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

[4]  El-Ghazali Talbi,et al.  Metaheuristics - From Design to Implementation , 2009 .

[5]  Kalyanmoy Deb,et al.  Multi-objective optimization using evolutionary algorithms , 2001, Wiley-Interscience series in systems and optimization.

[6]  Abhik Roychoudhury,et al.  Detecting energy bugs and hotspots in mobile apps , 2014, SIGSOFT FSE.

[7]  Kaisa Miettinen,et al.  Nonlinear multiobjective optimization , 1998, International series in operations research and management science.

[8]  R. K. Ursem Multi-objective Optimization using Evolutionary Algorithms , 2009 .

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

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

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

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

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

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

[15]  Adel Noureddine,et al.  Optimising Energy Consumption of Design Patterns , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[16]  Ding Li,et al.  An investigation into energy-saving programming practices for Android smartphone app development , 2014, GREENS 2014.

[17]  James R. Larus,et al.  Efficient path profiling , 1996, Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.

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

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

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

[21]  Yuanyuan Zhang,et al.  The App Sampling Problem for App Store Mining , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

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

[23]  Margaret Martonosi,et al.  Wattch: a framework for architectural-level power analysis and optimizations , 2000, Proceedings of 27th International Symposium on Computer Architecture (IEEE Cat. No.RS00201).

[24]  Simon Moritz,et al.  Utilizing implicit feedback and context to recommend mobile applications from first use , 2011, CaRR '11.