Recent Publications

Teixeira J, Couto M.  2015.  Automatic Distinction of Fernando Pessoas' Heteronyms. Progress in Artificial Intelligence: 17th Portuguese Conference on Artificial Intelligence, EPIA 2015, Coimbra, Portugal, September 8-11, 2015. Proceedings. :783–788. Abstractautomatic-distinction-fernando.pdf

n/a

Pereira R, Carção T, Couto M, Cunha J, Fernandes JP, Saraiva J.  2017.  Helping Programmers Improve the Energy Efficiency of Source Code. Proceedings of the 39th International Conference on Software Engineering Companion. :238–240. Abstract
n/a
Pereira R, Couto M, Saraiva J, Cunha J, Fernandes JP.  2016.  The Influence of the Java Collection Framework on Overall Energy Consumption. Proceedings of the 5th International Workshop on Green and Sustainable Software. :15–21. Abstract
n/a
Couto M, Cunha J, Fernandes JP, Pereira R, Saraiva JA.  2015.  GreenDroid: A tool for analysing power consumption in the android ecosystem. Scientific Conference on Informatics, 2015 IEEE 13th International. :73-78. Abstractinformatics2015_51_marcocouto.pdf

n/a

Couto M, Cunha J, Fernandes JP, Pereira R, Saraiva J.  2015.  GreenDroid: A tool for analysing power consumption in the android ecosystem. Scientific Conference on Informatics, 2015 IEEE 13th International. :73–78. Abstract
n/a
Cunha J, Couto M, Carção T, Fernandes JP, Saraiva JA.  2014.  Detecting Anomalous Energy Consumption in Android Applications. SBLP - 
XVIII Simpósio Brasileiro de Linguagens de Programação . Abstractsblp14.pdf

The use of powerful mobile devices, like smartphones, tablets and laptops, are changing the way programmers develop software. While in the past the primary goal to optimize software was the run time optimization, nowadays there is a growing awareness of the need to reduce energy consumption. This paper presents a technique and a tool to detect anomalous energy consumption in Android applications, and to relate it directly with the source code of the application. We propose a dynamically calibrated model for energy consumption for the Android ecosystem, and that supports different devices. The model is then used as an API to monitor the application execution: first, we instrument the application source code so that we can relate energy consumption to the application source code; second, we use a statistical approach, based on fault-localization techniques, to localize abnormal energy consumption in the source code .