GreenSource: A Large-Scale Collection of Android Code, Tests and Energy Metrics

This paper presents the GreenSource infrastructure: a large body of open source code, executable Android applications, and curated dataset containing energy code metrics. The dataset contains energy metrics obtained by both static analysing the applications' source code and by executing them with available test inputs. To automate the execution of the applications we developed the AnaDroid tool which instruments its code, compiles and executes it with test inputs in any Android device, while collecting energy metrics. GreenSource includes all Android applications included in the MUSE Java source code repository, while AnaDroid implements all Android's energy greedy features described in the literature, GreenSource aims at characterizing energy consumption in the Android ecosystem, providing both Android developers and researchers a setting to reason about energy efficient Android software development.

[1]  Jácome Cunha,et al.  The Influence of the Java Collection Framework on Overall Energy Consumption , 2016, 2016 IEEE/ACM 5th International Workshop on Green and Sustainable Software (GREENS).

[2]  Jácome Cunha,et al.  jStanley: Placing a Green Thumb on Java Collections , 2018, 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[3]  Matti Siekkinen,et al.  Modeling, Profiling, and Debugging the Energy Consumption of Mobile Devices , 2015, ACM Comput. Surv..

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

[5]  Luis Cruz,et al.  Performance-Based Guidelines for Energy Efficient Mobile Applications , 2017, 2017 IEEE/ACM 4th International Conference on Mobile Software Engineering and Systems (MOBILESoft).

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

[7]  Luis Cruz,et al.  Using Automatic Refactoring to Improve Energy Efficiency of Android Apps , 2018, CIbSE.

[8]  Dong Yan,et al.  Lightweight energy consumption analysis and prediction for Android applications , 2018, Sci. Comput. Program..

[9]  Alessandra Gorla,et al.  Automated Test Input Generation for Android: Are We There Yet? (E) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[10]  Rui Pereira,et al.  Energyware Analysis , 2018, SQAMIA.

[11]  Paramvir Bahl,et al.  Fine-grained power modeling for smartphones using system call tracing , 2011, EuroSys '11.

[12]  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).

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

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

[15]  Sushil Krishna Bajracharya,et al.  Sourcerer: An infrastructure for large-scale collection and analysis of open-source code , 2014, Sci. Comput. Program..

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

[17]  Sushil Krishna Bajracharya,et al.  SourcererDB: An aggregated repository of statically analyzed and cross-linked open source Java projects , 2009, 2009 6th IEEE International Working Conference on Mining Software Repositories.

[18]  Gustavo Pinto,et al.  Mining questions about software energy consumption , 2014, MSR 2014.

[19]  Yue Jia,et al.  Sapienz: multi-objective automated testing for Android applications , 2016, ISSTA.

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

[21]  Rui Pereira,et al.  Towards a Green Ranking for Programming Languages , 2017, SBLP.

[22]  Amer Diwan,et al.  The DaCapo benchmarks: java benchmarking development and analysis , 2006, OOPSLA '06.

[23]  Jan Vitek,et al.  DéjàVu: a map of code duplicates on GitHub , 2017, Proc. ACM Program. Lang..

[24]  Edward Sazonov,et al.  Development of a real time activity monitoring Android application utilizing SmartStep , 2016, 2016 38th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC).