Dissertação

{en_GB=EcoAndroid: An Android Studio Plugin for Developing Energy-Efficient Java Mobile Applications} {} EVALUATED

{pt=Os dispositivos móveis tornaram-se indispensáveis no nosso dia a dia e reduzir a energia consumida por eles tornou-se essencial nos últimos anos. Por razões económicas e ambientais, além de aprimorar a experiência do utilizador, estender a duração da bateria tornou-se um requisito não funcional com o qual os programadores se devem preocupar. No entanto, desenvolver aplicações móveis com baixo consumo de energia não é uma tarefa trivial. Para resolver esse problema, apresentamos EcoAndroid, um plugin para Android Studio que aplica automaticamente um conjunto de padrões de energia a código-fonte Java. Actualmente, o plugin suporta dez casos diferentes de refactorações relacionadas ao consumo de energia, relativos a cinco padrões de energia retirados da literatura. Usámos o EcoAndroid para analisar 100 aplicações móveis Java do F-Droid e descobrimos que 35 dos projetos tinham um total de 95 code smells de energia detectados pelo plugin. Usámos também o EcoAndroid para refactorizar automaticamente todos os code smells identificados. Enviámos as 42 refactorizações que introduziram correcções de código (e não apenas avisos informativos) como pull requests para os responsáveis dos respectivos projetos. De um total de 42 pull requests, recebemos respostas para 25 deles (59,5%); desses, 20 (80%) foram aceites e incorporados nos projetos originais. No total, contribuímos para melhorar a eficiência energética de 12 aplicações móveis Android diferentes. Estes resultados, juntamente com os resultados obtidos num estudo de usabilidade com 12 participantes, mostram que o EcoAndroid é útil, utilizável, e as alterações propostas pela ferramenta são facilmente aceites pelos programadores., en=Mobile devices have become indispensable in our daily life and reducing the energy consumed by them has become essential over recent years. For economical and environmental reasons, as well as enhancing the user experience, extending battery duration has become a non-functional requirement developers should be concern with. However, developing energy-efficient mobile applications is not a trivial task. To address this problem, we present EcoAndroid, a publicly-available Android Studio plugin that auto- matically applies a set of energy patterns to Java source code. It currently supports ten different cases of energy-related refactorings, over five energy patterns taken from the literature. We used EcoAndroid to analyze 100 Java mobile applications from F-Droid and we found that 35 of the projects had a total of 95 energy code smells detected by the plugin. We used EcoAndroid to automatically refactor all the code smells identified. We submitted the 42 refactorings that introduced code fixes (and not just informational warnings) as pull requests to the maintainers of the respective projects. Of a total of 42 pull requests, we received replies to 25 of them (59.5%); of those, 20 (80%) were accepted and merged into the original projects. In total, we contributed to improve the energy efficiency of 12 different Android mobile appli- cations. These results, together with the results obtained in a user study with 12 participants, show that EcoAndroid is useful, usable, and the alterations proposed by the tool are easily accepted by developers.}
{pt=Software Sustentável, Software Verde, Consumo de Energia, Padrões de Energia, Code Smells, Refactorização., en=Sustainable Software, Green Software, Energy Consumption, Energy Patterns, Code Smells, Refactoring.}

janeiro 18, 2021, 18:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

João Fernando Peixoto Ferreira

Departamento de Engenharia Informática (DEI)

Professor Auxiliar