Dissertação

Extending EcoAndroid with Automated Detection of Resource Leaks EVALUATED

Os dispositivos móveis estão cada vez mais presentes no nosso dia-a-dia. Estes possuem diferentes componentes de hardware -- como WiFi, cameras, e GPS -- que enriquecem a experiência do utilizador. Quando estão a desenvolver aplicações que utilizem estes recursos, os programadores têm que manipular cuidadosamente quando os adquirem e os libertam. Fazer isto incoretamente têm um impacto energético, que faz com que a aplicação consuma mais bateria do que necessário, e podendo causar o incorreto funcionamento do recurso. Este problema é conhecido como fuga de recursos e pode afetar qualquer aplicação Android que utilize componentes de hardware e não só. Para ajudar os programadores a solucionar este problema, apresentamos uma extensão para o EcoAndroid, um plugin para o Android Studio, que melhora a eficiência energética de aplicações Android, com a capacidade de detetar autoamticamente fugas de recursos e apresentar a sua localização no código ao programdor. Implementámos esta deteção com o auxílio das frameworks Soot, FlowDroid, e Heros, capazes de processar aplicações Android e de realizar análises inter-procedimentais com a framework IFDS. A nossa ferramenta suporta atualmente a deteção de quarto recursos de Android -- Cursor, SQLiteDatabase, Wakelock, e Camera. Avaliamos a nossa análise com benchmark DroidLeaks e comparámos com oito ferramentas que detetam fugas de recurso. Obtivemos uma precisão de 72.5% e uma exatidão de 83.1% nas fugas detetadas. Fomos foi ainda capaz de detetar 194 fugas nunca antes identificadas neste benchmark. Estes resultados mostram que a nossa análise pode ajudar os programadores a identificarem fugas de recursos.
Eficiência Energética, Análise Estática, Fuga de Recursos, Android

novembro 26, 2021, 9: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