97
Pós-Graduação em Ciência da Computação UNIVERSIDADE FEDERAL DE PERNAMBUCO CIN - CENTRO DE INFORMÁTICA PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO [email protected] www.cin.ufpe.br/~posgraduacao RECIFE 2015 MDEM: UM AMBIENTE PARA AVALIAÇÃO DO CONSUMO DE ENERGIA EM MULTIDISPOSITIVOS BASEADO NA WEB Por SIDARTHA AZEVEDO LOBO DE CARVALHO Dissertação de Mestrado

Pós-Graduação em Ciência da Computação - UFPE · 2019-10-25 · Ao meu orientador, professor Abel Guilhermino, pelo apoio, oportunidade e orientações valiosas. Aos amigos

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Pós-Graduação em Ciência da Computação

UNIVERSIDADE FEDERAL DE PERNAMBUCO

CIN - CENTRO DE INFORMÁTICA PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

[email protected] www.cin.ufpe.br/~posgraduacao

RECIFE 2015

MDEM: UM AMBIENTE PARA AVALIAÇÃO DO CONSUMO DE ENERGIA EM MULTIDISPOSITIVOS BASEADO NA WEB

Por

SIDARTHA AZEVEDO LOBO DE CARVALHO

Dissertação de Mestrado

UFPE - UNIVERSIDADE FEDERAL DE PERNAMBUCO CIn - CENTRO DE INFORMÁTICA PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

SIDARTHA AZEVEDO LOBO DE CARVALHO

MDEM: UM AMBIENTE PARA AVALIAÇÃO DO CONSUMO DE ENERGIA EM MULTIDISPOSITIVOS BASEADO NA WEB

Este trabalho foi apresentado à Pós-graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco como requisito parcial para obtenção do grau de Mestre em Ciência da Computação, área de concentração em Sistemas Embarcados.

ORIENTADOR: Dr. Abel Guilhermino da Silva Filho.

RECIFE 2015

SIDARTHA AZEVEDO LOBO DE CARVALHO

Catalogação na fonte Bibliotecária Jane Souto Maior, CRB4-571

C331m Carvalho, Sidartha Azevedo Lobo de MDEM: um ambiente para avaliação do consumo de energia

em multidispositivos baseado na web / Sidartha Azevedo Lobo de Carvalho. – Recife: O Autor, 2015.

96 f.: il. fig., tab. Orientador: Abel Guilhermino da Silva Filho. Dissertação (Mestrado) – Universidade Federal de

Pernambuco. CIn, Ciência da computação, 2015. Inclui referências e apêndice.

1. Engenharia da computação. 2. Sistemas embarcados. 3. Low Power. 4. Smartphones. I. Silva Filho, Abel Guilhermino da (orientador). II. Título. 621.39 CDD (23. ed.) UFPE- MEI 2015-142

SIDARTHA AZEVEDO LOBO DE CARVALHO

Dissertação de Mestrado apresentada por Sidartha Azevedo Lobo de Carvalho à Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco, sob o título “MDEM: Um ambiente para avaliação do consumo de energia em multidispositivos baseado na Web” orientado pelo Prof. Abel Guilhermino da Silva Filho e aprovada pela Banca Examinadora formada pelos professores:

_______________________________________________ Prof. Manoel Eusébio de Lima Centro de Informática / UFPE _______________________________________________ Prof. Victor Wanderley Costa de Medeiros Departamento de Estatística e Informática – DEINFO / UFRPE _______________________________________________ Prof. Abel Guilhermino da Silva Filho Centro de Informática / UFPE Visto e permitida a impressão. Recife, 26 de fevereiro de 2015. ___________________________________________________ Profa. Edna Natividade da Silva Barros Coordenadora da Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco.

SIDARTHA AZEVEDO LOBO DE CARVALHO

Agradecimentos Aos meus pais e familiares, por toda educação, ensinamentos e incentivo. Ao meu orientador, professor Abel Guilhermino, pelo apoio, oportunidade e orientações valiosas. Aos amigos do Centro de Informática da UFPE pelo apoio, ajuda e parceria. Ao Centro de Informática pela disponibilização da ótima estrutura, incentivo e financiamentos das pesquisas. Aos professores e amigos de pesquisa que ao longo deste desafio construímos conhecimento e enfrentamos vários desafios. Agradeço a Fundação de Amparo à Ciência e Tecnologia do Estado de Pernambuco – FACEPE pelo financiamento parcial desta pesquisa.

SIDARTHA AZEVEDO LOBO DE CARVALHO

Resumo

Diante do crescimento das vendas de smartphones, em específico com o sistema

operacional Android, em suas variadas versões e diversidade de aparelhos, um

problema chamado de fragmentação foi destacado. Com o incremento de dispositivos

multinúcleos e multiprocessadores, crescem as restrições na potência e ocorrência de

superaquecimento. Alguns trabalhos consultados se especializam em resolver o

problema da fragmentação, porém não se preocupam com dados energéticos,

enquanto outros somente relatam técnicas que permitem a diminuição no consumo

energético, mas nenhum possibilita a integração de testes multidispositivos, com o

intuito de solucionar o problema da fragmentação, com foco energético. Este trabalho

oferece a modelagem e implementação de um ambiente de medição que auxilia na

avaliação do consumo energético de dispositivos com o sistema operacional Android. O

ambiente proposto permite que seja feita uma análise energética de dispositivos em

diferentes frequências no processador e redes de dados de forma simultânea e com

manipulação pela Web. Uma infraestrutura genérica de medição, a qual permite a

coleta de tensão e corrente de dispositivos alimentados por bateria foi criada

juntamente com um canal que permite a comunicação com um computador para

análise dos dados. No tangente ao software, foi construída uma plataforma Web para

manipulação de componentes do dispositivo e replicação de testes de forma

automatizada. Para testar o uso do ambiente proposto, foram executados oito testes

envolvendo Navegação Web, Streaming de Vídeo e Carga de Processamento nos

smartphones disponíveis. Os resultados dos testes são apresentados e discutidos em

detalhe.

Palavras-chave: fragmentação de software, consumo energético, testes

automatizados, multidispositivos, infraestrutura para medição de energia.

SIDARTHA AZEVEDO LOBO DE CARVALHO

Abstract

Recently we can observe a growth in smartphone sales, in particular those running

Android operating system. In several versions and devices, a problem known as

fragmentation was featured. Along with the increase of multi-core and multi-processor

devices, growing restrictions on power and overheating were highlighted. Some studies

focus on solving the fragmentation problem and do not care about energy analysis,

while other reports only techniques which allow a reduction in energy consumption, but

none enables the integration of multi-devices tests in order to solve the problem of

fragmentation with energy focus. This study provides the modeling and implementation

of a measurement environment that helps the evaluation of the energy consumption of

devices with the Android operating system. The proposed environment makes possible

an analysis of the energy in devices at different processor frequencies and data

networks on multiple devices simultaneously with Web access. A generic and cheap

infrastructure measurement, which allows the collection of voltage and current of

battery-powered devices and a channel that allows communication with a computer for

data analysis were built. In regard to the software, a Web platform for manipulation of

device peripherals and automated tests replication was constructed. In order to test the

use of the proposed environment, eight tests were performed covering Web Browsing,

Video Streaming and CPU load on the available smartphones, and then the results

were explained and discussed.

Keywords: Software Fragmentation. Energy Consumption. Automated Tests. Multi-

devices. Infrastructure for Energy Measurement.

SIDARTHA AZEVEDO LOBO DE CARVALHO

Lista de Figuras

Figura 1 – Sistema DAQ. ............................................................................................... 18 Figura 2 – PCI-6229 DAQ.............................................................................................. 18 Figura 3 – USB-6016 DAQ. ........................................................................................... 19 Figura 4 – USB-6210 DAQ. ........................................................................................... 19 Figura 5 – LTC2942 DAQ. ............................................................................................. 19 Figura 6 – Keithley 2304A DAQ. .................................................................................... 20 Figura 7 – KeySight Agilent 66319D. ............................................................................. 21 Figura 8 – KeySight Agilent E3640A. ............................................................................ 21 Figura 9 – Power Monitor. ............................................................................................. 21 Figura 10 – Energino. .................................................................................................... 23 Figura 11 – Nokia Energy Profiler. ................................................................................. 26 Figura 12 – Apple's Instrument. ..................................................................................... 26 Figura 13 – Apple's Instrument. ..................................................................................... 27 Figura 14 – Exemplo código JAVA para aquisição de dados da bateria. ...................... 27 Figura 15 – Status da bateria no smartphone Motorola G. ............................................ 28 Figura 16 – Power Tutor executando em um sistema Android. ..................................... 30 Figura 17 – Xamarin Test Cloud. ................................................................................... 32 Figura 18 – Sequência de passos para testar um aplicativo no APPThwack Cloud Service........................................................................................................................... 34 Figura 19 – Tela dos resultados no APPThwack Cloud Service. ................................... 34 Figura 20 – Plataforma Monkey Mobile. ........................................................................ 35 Figura 21 – MonkeyTalk IDE. ........................................................................................ 36 Figura 22 - Perfecto Mobile IDE. ................................................................................... 37 Figura 23 – Infraestrutura de Hardware e Software. ...................................................... 40 Figura 24 – Fluxo de Projeto. ........................................................................................ 41 Figura 25 – Arquitetura do Ambiente de Medição Proposto. ......................................... 44 Figura 26 – Circuito de Medição. ................................................................................... 45 Figura 27 – Pinos da bateria dos smartphones do ambiente......................................... 46 Figura 28 – Diagrama fios da conexão USB modificada. .............................................. 47 Figura 29 – Samsung Galaxy S3 GT-9305T.................................................................. 48 Figura 30 – Samsung Galaxy S4 GT-I9505. .................................................................. 48 Figura 31 – Diagrama de classes. ................................................................................. 53 Figura 32 – Atributos e Métodos da Classe Mobile Device. .......................................... 53 Figura 33 – Atributos e Métodos da Classe Manager. ................................................... 54 Figura 34 – Atributos e Métodos da Classe Measure Board Thread. ............................ 55 Figura 35 – Atributos e Métodos da Classe Trapezoid Rule. ........................................ 55 Figura 36 – Atributos e Métodos da Classe Serial Communicator. ............................... 56 Figura 37 – Atributos e Métodos da Classe DataBase Utils. ......................................... 56 Figura 38 – Passos para execução de um teste. ........................................................... 58 Figura 39 – Exemplo de teste criado no ambiente de medição. .................................... 59 Figura 40 – Gráfico da Corrente pelo Tempo. ............................................................... 62 Figura 41 – Gráfico da Potência pelo Tempo. ............................................................... 62 Figura 42 – Gráfico da Potência pelo Tempo de cinco iterações. ................................. 63 Figura 43 – Gráfico da Potência pelo Tempo de dez iterações. .................................... 63 Figura 44 – Gráfico do Consumo Energético com um núcleo ativo no smartphone Samsung Galaxy S3 (Experimento Navegação Web). .................................................. 69 Figura 45 – Gráfico do Consumo Energético com um núcleo ativo no smartphone Samsung Galaxy S4 (Experimento Navegação Web). .................................................. 70

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 46 – Gráfico do Consumo Energético com dois núcleos ativos no smartphone Samsung Galaxy S3 (Experimento Navegação Web). .................................................. 71 Figura 47 – Gráfico do Consumo Energético com dois núcleos ativos no smartphone Samsung Galaxy S4 (Experimento Navegação Web). .................................................. 72 Figura 48 – Gráfico do Consumo Energético com três núcleos ativos no smartphone Samsung Galaxy S3 (Experimento Navegação Web). .................................................. 73 Figura 49 – Gráfico do Consumo Energético com três núcleos ativos no smartphone Samsung Galaxy S4 (Experimento Navegação Web). .................................................. 73 Figura 50 – Gráfico do Consumo Energético com quatro núcleos ativos no smartphone Samsung Galaxy S3 (Experimento Navegação Web). .................................................. 75 Figura 51 – Gráfico do Consumo Energético com quatro núcleos ativos no smartphone Samsung Galaxy S4 (Experimento Navegação Web). .................................................. 75 Figura 52 – Gráfico do Consumo Energético com quatro núcleos ativos no smartphone Samsung Galaxy S3 (Experimento Stream de Vídeo). .................................................. 77 Figura 53 – Gráfico do Consumo Energético com quatro núcleos ativos no smartphone Samsung Galaxy S4 (Experimento Stream de Vídeo). .................................................. 78 Figura 54 – Gráfico do Consumo Energético dos Governors padrões do Android e do algoritmo da frequência ideal no smartphone Samsung Galaxy S3 (Experimento Navegação Web). .......................................................................................................... 79 Figura 55 – Gráfico do Consumo Energético dos Governors padrões do Android e do algoritmo da frequência ideal no smartphone Samsung Galaxy S4 (Experimento Navegação Web). .......................................................................................................... 80 Figura 56 – Gráfico do Consumo Energético dos Governors padrões do Android e do algoritmo da frequência ideal no smartphone Samsung Galaxy S3 (Experimento Stream de Vídeo). ...................................................................................................................... 81 Figura 57 – Gráfico do Consumo Energético dos Governors padrões do Android e do algoritmo da frequência ideal no smartphone Samsung Galaxy S4 (Experimento Stream de Vídeo). ...................................................................................................................... 82 Figura 58 – Gráfico da Corrente pela Carga de Processamento em variados núcleos no smartphone Samsung Galaxy S4 (Experimento Carga de Processamento). ................ 84

SIDARTHA AZEVEDO LOBO DE CARVALHO

Lista de Tabelas

Tabela 1 – Trabalhos que utilizam medição por Hardware ........................................... 24 Tabela 2 – Trabalhos que utilizam medição por Software pela API do Android ............ 29 Tabela 3 – Trabalhos que utilizam medição por Software ............................................. 31 Tabela 4 – Características dos trabalhos relacionados. ................................................ 38 Tabela 5 – Smartphones disponíveis na infraestrutura proposta. .................................. 47 Tabela 6 – Parâmetros dos comandos ADB. ................................................................. 50 Tabela 7 – Sequência de passos para o experimento Navegação Web ....................... 67 Tabela 8 - Sequência de passos para o experimento Stream de Vídeo ........................ 77 Tabela 9 – Comandos MonkeyTalk (Experimento Carga do Processador) ................... 83 Tabela 10 – Tabela comparativa do ambiente proposto com os demais trabalhos da literatura......................................................................................................................... 86

SIDARTHA AZEVEDO LOBO DE CARVALHO

Sumário

1. INTRODUÇÃO ....................................................................................................... 11

1.1 DEFINIÇÃO DO PROBLEMA ...................................................................................... 14

1.2 OBJETIVO GERAL .................................................................................................. 14 1.3 CONTRIBUIÇÕES E RESULTADOS ESPERADOS .......................................................... 15 1.4 ESTRUTURA DO TRABALHO .................................................................................... 15

2. REVISÃO DA LITERATURA ................................................................................. 17

2.1 MEDIÇÃO ENERGÉTICA .......................................................................................... 17 2.2 FERRAMENTAS PARA TESTES DE SOFTWARE NA NUVEM EM DISPOSITIVOS MÓVEIS ..... 31

2.3 RELAÇÃO DESTA PESQUISA COM OS TRABALHOS APRESENTADOS ............................. 37

2.4 CONSIDERAÇÕES FINAIS DO CAPÍTULO ................................................................... 38

3. AMBIENTE PROPOSTO: MDEM (MULTI-DEVICE ENERGY MEASUREMENT) 39

3.1 FLUXO DE PROJETO .............................................................................................. 40 3.2 AMBIENTE DE INFRAESTRUTURA ............................................................................. 43 3.3 DOCUMENTAÇÃO DO SOFTWARE ............................................................................ 48

3.4 FUNCIONALIDADES DO AMBIENTE ............................................................................ 56 3.5 CONSIDERAÇÕES FINAIS DO CAPÍTULO ................................................................... 64

4. RESULTADOS ....................................................................................................... 65

4.1 INOVAÇÕES NO AMBIENTE PROPOSTO ..................................................................... 65

INFORMAÇÕES FORNECIDAS PELO AMBIENTE DE MEDIÇÃO: ............................................. 65

4.2 EXPERIMENTOS UTILIZANDO O AMBIENTE PROPOSTO ............................................... 65 4.3 ANÁLISE DOS RESULTADOS .................................................................................... 67

5. CONCLUSÕES E TRABALHOS FUTUROS ......................................................... 87

5.1 CONTRIBUIÇÕES .................................................................................................... 87 5.2 LIMITAÇÕES .......................................................................................................... 88

5.3 TRABALHOS FUTUROS ........................................................................................... 88

REFERÊNCIAS ............................................................................................................. 89

APÊNDICE A – FUNCIONALIDADES X COMANDOS ADB ........................................ 93

11

SIDARTHA AZEVEDO LOBO DE CARVALHO

1. INTRODUÇÃO

Sistema Embarcado é todo conjunto de hardware e software com funções bem

definidas, sistema operacional customizado e uma multiplataforma de desenvolvimento

(DOMEIKA, 2008). Dentro destes sistemas embarcados estão os smartphones e

tablets, dispositivos alvos deste trabalho.

Dispositivos como smartphones e tablets que utilizam o sistema operacional

Android cresceram surpreendentemente, aumentando de 200 000 ativados por dia em

2010 para 1,5 milhões de dispositivos ativados por dia em 2013 e atualmente é a

plataforma com mais dispositivos ativos (STATISTA, 2014). Esse crescimento pode ser

justificado pela quantidade de funcionalidades que são agregadas aos smartphones e

tablets a cada ano, redução de custos dos aparelhos e a diversidade de opções que

englobam os vários perfis de usuários, das soluções mais simples e baratas às mais

complexas.

O sistema operacional Android é construído com base nas contribuições da

comunidade open-source Linux, possuindo mais de 300 versões de hardware e

software. O código aberto do Android e a facilidade em publicar aplicativos na loja

virtual favoreceram para torná-lo o favorito por consumidores e desenvolvedores.

Atualmente possui mais de 1,5 bilhões de aplicativos no Google Play, loja virtual do

sistema operacional (ANDROID DEVELOPER, 2015).

Os smartphones e tablets possuem diversos modelos (hardware diferentes) e

várias versões do sistema operacional, cada um com sua especificidade. Essa alta taxa

de diferentes dispositivos e sistemas operacionais gera um problema chamado de

fragmentação. Esse problema é caracterizado pela necessidade de construção de

software que funcione perfeitamente nos diferentes modelos de hardware (diferentes

implementações) e software (diferentes sistemas operacionais).

Para diminuir o impacto deste problema é necessário garantir que um único

aplicativo possa ser executado corretamente em todas as diferentes plataformas e

sistemas operacionais. O problema acontece com maior intensidade no sistema

operacional Android por possuir uma quantidade maior de versões do sistema, mas o

problema também é recorrente em outros sistemas operacionais, como o iOS

(FUERSTENBERG, 2014 apud HUANG, 2014).

No sistema operacional iOS e Windows Phone o problema da fragmentação é

menos destacado por possuir uma quantidade menor de versões do sistema

12

SIDARTHA AZEVEDO LOBO DE CARVALHO

operacional e uma menor quantidade de implementações de hardware, ou seja, menor

quantidade de modelos.

Uma alternativa para amenizar o problema da fragmentação é testar o aplicativo

na maior quantidade de dispositivos, com a maior variedade de modelos possíveis. É

impraticável para a maioria dos desenvolvedores comprarem todos os modelos para

realizarem os testes. Mesmo para um determinado modelo de aparelho, há outra

quantidade de versões do sistema operacional que possuem variações na

implementação e podem causar inconsistências.

Outra alternativa é o uso de emuladores, mas não são substitutos ideais pois não

podem emular todos os aspectos dos dispositivos, tais como: diferentes tamanhos de

tela, coordenadas reais de GPS ou outros sensores, realizar chamadas e enviar

mensagens de texto. Além disso, não há simuladores suficientes para emular todos os

tipos de dispositivos disponíveis.

Há duas vertentes sobre o problema da fragmentação: a do sistema operacional

e a do dispositivo. O primeiro é devido as diferentes estratégias de cada fabricante,

onde se tem várias implementações da mesma API. Já a fragmentação do dispositivo é

caracterizada por uma mesma versão do sistema operacional que é executada em

diferentes plataformas, com diferentes especificações do hardware, como: tamanho da

tela, resolução, placas gráficas, entre outros.

Dado o problema da fragmentação e a solução pelo teste em dispositivos reais, é

necessário que o aplicativo testado ofereça eficiência energética. Esta é uma

preocupação no design da maioria dos dispositivos móveis, dentre esses estão os

smartphones e tablets.

Com o forte crescimento dos smartphones, do sistema operacional Android, com

o avanço no desenvolvimento de processadores com vários núcleos, torna-se

necessário o desenvolvimento de técnicas que diminuam o consumo energético desses

dispositivos e, por conseguinte aumente seu tempo de uso.

Há uma lacuna crescente entre o desenvolvimento do hardware e o software

para dispositivos multinúcleos e multiprocessadores. Atualmente, software não é

produzido explorando os benefícios trazidos pelas plataformas multinúcleos e

multiprocessadores. Existem diversos estudos que demonstram os benefícios do uso

das plataformas mencionadas em relação as de núcleo único e uniprocessador, mas

ainda há resistência e dificuldades dos programadores em adotarem o novo paradigma.

Estudos presentes na literatura mostram análises de desempenho, mas poucos se

13

SIDARTHA AZEVEDO LOBO DE CARVALHO

preocupam com uma grande restrição dos sistemas embarcados, o consumo

energético (DOMEIKA, 2008).

Dispositivos com mais funcionalidades exigem maior poder de processamento.

Esse poder de processamento é mensurado pela quantidade de processadores e

núcleos e pela frequência do clock de cada núcleo do processador. O escalonamento

de clock chegou ao seu limite devido a restrições na potência e superaquecimento. O

estudo empírico feito por Mehta (2006 apud DOMEIKA, 2008) sugere que o aumento

de 1% no clock resulta em um aumento de 3% na potência.

O benefício energético nos dispositivos multinúcleos é justificado pela equação

do cálculo da potência dos dispositivos CMOS (Complementary Metal–Oxide–

Semiconductor): Potência = C x V² x F, onde C é a capacitância dinâmica, V a tensão e

F a frequência de operação. Capacitância dinâmica é a função da quantidade de

transistores no processador e tipicamente tende a ser linear. Com o aumento da

frequência, há a necessidade em se aumentar a tensão de alimentação para que o

chaveamento dos transistores possa ser rapidamente reconhecido. Diante disso, o

aumento na potência e consequentemente no consumo energético, é maior que o

benefício do aumento de frequência.

Para o desenvolvimento de técnicas que promovam eficiência energética é

necessário entender o problema abordado e a caracterização do seu gasto energético

no dispositivo móvel, para realizar a caracterização é necessário possuir uma

infraestrutura de medição energética.

Uma técnica já bem difundida na literatura é o DVFS (Dynamic Voltage and

Frequency Scaling), onde é possível diminuir a frequência de operação do processador

ou a tensão de alimentação para diminuir a potência gasta. Em alguns casos, o

desempenho é afetado pela diminuição da frequência de operação, enquanto que em

alguns casos é indiferente por não haver muito processamento. O consumo energético

é calculado através da fórmula da potência instantânea. A potência é proporcional à

frequência e a tensão ao quadrado: P ∝ f * v² (DOMEIKA, 2008).

A motivação desse trabalho é baseada na falta de um ambiente de medição que

auxilie a avaliação do consumo energético de dispositivos com o sistema operacional

Android sob diferentes frequências de operação do processador e redes de dados, de

forma simultânea em diversos dispositivos. Para permitir uma abrangência mundial, o

ambiente será construído com uma interface Web manipulável pela Internet.

14

SIDARTHA AZEVEDO LOBO DE CARVALHO

O ambiente proposto poderá ser usado para diminuir o problema da

fragmentação em dispositivos, permitindo testes multidispositivos e ainda fornecer

dados energéticos para a melhoria dos aplicativos embarcados no produto.

Empresas fabricantes de dispositivos Android poderão utilizar o ambiente

proposto, para a partir dos dados energéticos fornecidos, criar aplicativos adaptados a

cada aparelho e prover eficiência energética no produto.

O ambiente de medição energética proposto neste trabalho automatiza a

avaliação do consumo energético de diversos trabalhos. Disponibilizando a

infraestrutura necessária para a medição e o teste das funcionalidades ou aplicativos, é

possível replicar os trabalhos no ambiente de medição para os dispositivos disponíveis.

Exemplos de trabalhos que podem ser parcialmente automatizados pela proposta são:

Altamimi et al (2012), Carroll e Heiser (2013), Chang et al (2013), Dong, Lai e Li (2013),

Huang et al (2012), Kwok et al (2011), Liang, Lai e Chiou (2010), Liang e Lai (2010),

Shin et al (2013), Silva-Filho et al (2012), Xu et al (2013) e Yoon et al (2012).

1.1 Definição do Problema

Foram encontrados ambientes de teste multidispositivos que ajudam a resolver o

problema da fragmentação em Xamarin (2014), Appthwack (2014), Monkeymobile

(2014) e Perfectomobile (2014), porém nenhum deles aborda o consumo energético,

fornece a criação do teste de forma iterativa pela interface Web ou oferece

funcionalidades de teste como: fazer chamada, enviar SMS, stream de vídeos, dentre

outros.

Diante do cenário atual em que é preciso realizar testes em diversos dispositivos

para garantir o bom funcionamento dos aplicativos e a preocupação com o consumo

energético para permitir um uso prolongado dos aparelhos, é necessário a construção

de um ambiente de medição energética multidispositivos que preencha essas lacunas.

1.2 Objetivo Geral

Construir um ambiente de medição multidispositivos que permita a avaliação do

consumo energético de dispositivos Android com manipulação pela Web em cenários

com frequências diferentes de operação do processador, quantidade ajustável de

núcleos ativos no processador e diferentes redes de dados.

15

SIDARTHA AZEVEDO LOBO DE CARVALHO

1.2.1 Objetivos Específicos

Os objetivos específicos que contribuirão para atingir o objetivo geral são:

a) Realizar uma revisão da literatura para obter conhecimento sobre

medição energética de dispositivos móveis;

b) Elaborar uma infraestrutura genérica e de baixo custo para medição

energética;

c) Desenvolver um ambiente de software que possibilite a manipulação das

redes de dados, frequências nos processadores e replicação dos testes

simultaneamente nos dispositivos móveis da infraestrutura;

1.3 Contribuições e Resultados Esperados

Obter os resultados e as contribuições a seguir:

Contribuir com estratégias para manipulação das redes de dados dos

dispositivos móveis com Android e das frequências dos seus processadores

embarcados por uma interface Web;

Disponibilizar um ambiente de medição com manipulação pela Web que permita:

o Medição energética em diversos dispositivos simultaneamente;

o Controle individual da frequência de cada núcleo do dispositivo e qual

rede de dados utilizar no experimento;

o Parâmetro ajustável do número de repetições do experimento.

1.4 Estrutura do Trabalho

Este trabalho está estruturado da seguinte maneira:

Capítulo 1 – Introdução: apresenta toda parte introdutória como base para o

desenvolvimento do restante do trabalho;

Capítulo 2 – Revisão da Literatura: apresenta o referencial teórico dos

principais assuntos e os trabalhos relacionados com esta pesquisa.

Capítulo 3 – Ambiente de Medição proposto e Metodologia utilizada: o

ambiente de medição energética é exposto e suas funcionalidades

explicadas. A metodologia utilizada para o desenvolvimento também é

exposta;

16

SIDARTHA AZEVEDO LOBO DE CARVALHO

Capítulo 4 – Resultados: são apresentados os resultados obtidos com o uso

do ambiente de medição;

Capítulo 5 – Conclusões e Trabalhos Futuros: são apresentadas as

limitações do trabalho proposto, assim como suas implicações, conclusões

finais do trabalho e recomendações para trabalhos futuros;

Apêndice A: apresenta o conjunto de comandos ADB associado a cada

funcionalidade.

17

SIDARTHA AZEVEDO LOBO DE CARVALHO

2. REVISÃO DA LITERATURA

Este capítulo aborda os principais conceitos necessários para entender a

proposta deste trabalho. Formas de realizar medição energética, por hardware e por

software são detalhadas, trabalhos relacionados são explanados e discussões sobre a

finalidade e vantagens da proposta desta dissertação são expostas e comparadas aos

trabalhos relacionados.

2.1 Medição Energética

A medição energética é a avaliação da quantidade de energia necessária para

realizar uma quantidade de trabalho. Energia é calculada na unidade de Joules em um

determinado tempo. Potência é a taxa em que a energia é gasta e é medida em Watts

(Joules/segundo).

2.1.1 Medição por Hardware

Segundo a National Instruments (2014a), aquisição de dados é definida como: o

processo de medição de um fenômeno elétrico ou físico, por exemplo, tensão, corrente,

temperatura, pressão ou som, com o uso de um computador. Um sistema DAQ (Data

Acquisition) é formado por sensores, hardware de aquisição e medição de dados e um

computador com software programável. Em comparação com os sistemas tradicionais

de medição, os sistemas DAQ baseados em computadores exploram a capacidade de

processamento, produtividade, sistemas de visualização e recursos de conectividades

dos computadores padrões da indústria. Com isso, temos uma solução de medição

mais poderosa, flexível e de melhor custo-benefício.

A Figura 1 exemplifica o processo de aquisição de dados. Primeiramente o

sensor fornece os dados para o dispositivo captador e esse por sua vez se comunica

com o computador fornecendo os dados processados. É utilizado neste caso, um

sensor energético chamado de INA219, uma placa para aquisição dos dados do sensor

e um Arduino UNO. Uma vez capturados, os dados são enviados ao computador para

serem processados posteriormente.

18

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 1 – Sistema DAQ.

A seguir são apresentados os principais sistemas de aquisição de corrente e

tensão utilizados para explorar o consumo energético de dispositivos.

2.1.1.1 PCI-6229 DAQ da National Instruments

A placa PCI-6229 da National Instruments (Figura 2) possui um baixo custo

quando comparada as demais da mesma linha e utiliza o software NI LabVIEW

SignalExpress para visualização das amostras coletadas. Essa placa foi utilizada no

trabalho proposto por Carroll e Heiser (2010) para captura das amostras de corrente e

tensão nos experimentos realizados em uma placa protótipo de smartphone chamada

de OpenMoko Neo Freerunner (rev. A6).

Figura 2 – PCI-6229 DAQ.

Fonte: National Instruments (2014b)

2.1.1.2 DAQ USB-6016 e USB-6210 da National Instruments

Os sistemas USB-6016 (Figura 3) e USB-62151 (Figura 4) da National

Instruments são mais portáteis e práticos por utilizarem uma entrada USB para

alimentação e transmissão dos dados. Sua facilidade plug-and-play permite a captura

em ambientes mais dinâmicos além de contar com um baixo custo e uma alta taxa de

amostragem. As duas possuem 16 entradas analógicas; a USB-6016 possui 32 canais

digitais enquanto a USB-62151 somente 4 canais digitais. O software utilizado para

19

SIDARTHA AZEVEDO LOBO DE CARVALHO

visualização das amostras é o NI LabVIEW SignalExpress. A placa USB-6016 foi

utilizada no trabalho de Shin et al (2013) para medição do consumo energético em uma

plataforma Odroid-A e a USB-6210 em Liang, Lai e Chiou (2010) para experimentos

energéticos na plataforma XScale - PXA270 Board.

Figura 3 – USB-6016 DAQ.

Fonte: National Instruments (2014c)

Figura 4 – USB-6210 DAQ.

Fonte: National Instruments (2014d)

2.1.1.3 LTC2942 da Linear Technology

O sistema de aquisição de dados LTC2942 da Linear Technology (Figura 5)

mensura o estado de carga da bateria, a tensão e temperatura do chip de diversos

dispositivos portáteis, como: smartphones, mp3 players, câmeras, GPS, sensores e

dispositivos embarcados em geral. Essa tecnologia foi utilizada no trabalho de Kwok et

al (2011) para medição do consumo energético de um smartphone Android G1 e um

Nokia N95.

Figura 5 – LTC2942 DAQ.

Fonte: Linear Technology (2014)

2.1.1.4 Keithley 2304A

Keithley 2304A (Figura 6) é uma fonte de alimentação que permite a leitura dos

valores de corrente e tensão que estão sendo fornecidos ao aparelho em teste. Foi

desenvolvida para alimentar dispositivos dependentes de baterias, como: smartphones,

sensores, câmeras e dispositivos móveis em geral. A partir das coletas dos valores de

20

SIDARTHA AZEVEDO LOBO DE CARVALHO

corrente e tensão é possível calcular a potência energética do aparelho. Ela foi utilizada

nos trabalhos em Altamimi et al (2012) para a medição do consumo energético de um

smartphone HTC Nexus One e em Palit, Naike e Singh (2011) para medição do

consumo energético de um smartphone HTC G1.

Figura 6 – Keithley 2304A DAQ. Fonte: Keithley (2014)

2.1.1.5 KeySight Agilent 66319D e E3640A

As fontes de alimentação Agilent 66319D (Figura 7) e E3640A (Figura 8)

vendidas pela KeySight Technologies fornecem corrente contínua para alimentação de

dispositivos dependentes de baterias. Essas fontes fornecem os valores de tensão e

corrente que estão sendo enviados para o aparelho em teste e a partir desses valores

é possível calcular a potência do aparelho.

A fonte Agilent 66319D possui a tensão variando de 0 a 15 Volts e uma corrente

de 0 a 3 Amperes. É utilizada nos trabalhos em Perrucci, Fitzeke e Widmer (2011) e

Perrucci et al (2009) para medição do consumo energético de um smartphone Nokia

N95.

O trabalho em Silva-Filho et al (2012) utiliza a fonte Agilent E3640A para coleta

das amostras de tensão e corrente de um smartphone Samsung Galaxy S2. A fonte

possui duas faixas de operação de tensão, a primeira operando de 0 a 8 Volts com no

máximo três Amperes de corrente e a segunda faixa operando de 0 a 20 Volts com no

máximo corrente de 1,5 Amperes.

21

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 7 – KeySight Agilent 66319D.

Fonte: Keysight (2014a)

Figura 8 – KeySight Agilent E3640A.

Fonte: Keysight (2014b)

2.1.1.6 Power Monitor da Monsoon Solutions

O Power Monitor da Monsoon Solutions (Figura 9) oferece um sistema simples

para medição do consumo energético de dispositivos dependentes de bateria. Ele

opera a 4.5 Volts com no máximo 3 (três) Amperes de corrente. O sistema possui um

software próprio para visualização do consumo energético chamado de Power Tool.

Para realizar medições energéticas, a conexão entre a ferramenta e o dispositivo

deve ser feita. Os canais de alimentação saindo do Power Monitor devem ser ligados

no dispositivo e então a conexão USB deve ser estabelecida. A alimentação ao

dispositivo pode ser fornecida de três maneiras: pelo canal auxiliar, pela porta USB ou

pelos canais principais que são os mais utilizados. Deve-se selecionar no Power Tool

em qual dessas conexões o dispositivo em teste está ligado.

Figura 9 – Power Monitor.

Fonte: Monsoon Solutions (2014)

O trabalho em Chang et al (2013) utiliza a ferramenta Power Monitor para criar

uma política de chaveamentos de frequência de forma dinâmica para prover redução

do consumo energético. A política é baseada no uso de recursos do aparelho e explora

a afinidade dos estados de transição e o uso constante de recursos. Os recursos

monitorados são: memória flash e RAM, rede de dados, tela e processador. Os

22

SIDARTHA AZEVEDO LOBO DE CARVALHO

experimentos demonstraram uma oportunidade de redução do consumo energético em

cenários reais e foi utilizado o smartphone HTC Desire HD nos experimentos onde foi

alcançada uma redução energética de 22% a 31% no cenário de reprodução de vídeos.

No trabalho de Yoon et al (2012) é proposto um módulo para o kernel Linux do

Android que possibilita o monitoramento do consumo energético do aparelho. A

inteligência do módulo é baseada na porcentagem de uso do processador, brilho da

tela, rede de dados (Wifi ou rede móvel) e GPS. Partindo de medições energéticas

utilizando o Power Monitor foi possível criar modelos energéticos para os periféricos do

dispositivo. O módulo apresentou consumo de 35mW de potência enquanto

executando e 2.1% de uso no processador.

Em Huang et al (2012) é construído um modelo energético para redes LTE/4G a

partir de arquivos de consumo energético capturados por um aplicativo Android

desenvolvido pelos autores. Foram coletadas amostras de mais de 3000 usuários

durante dois meses. A construção do modelo foi auxiliada por experimentos locais

utilizando o Power Monitor.

O modelo proposto possui taxa de erro menor que 6%, segundo os autores é o

primeiro modelo energético para LTE/4G comercial que segue os padrões

internacionais de transição de estados da rede. O modelo proposto foi comparado com

medições energéticas utilizando Wifi e 3G, notou-se que o Wifi é 23 vezes mais

energeticamente eficiente que o LTE/4G.

Os autores em Xu et al (2013) apresentam uma técnica para redução do

consumo energético da sincronização de e-mails. Para análise dos cenários foram

utilizados os smartphones: Samsung Nexus S e Samsung Omnia 7, com os sistemas

operacionais Android ICS 4.0.4 e Windows Phone 7.5 respectivamente.

A técnica consiste em reduzir o tempo do tail energy da rede de dados 3G,

realizar a separação do processamento da transmissão de dados, usar processamento

em memória em troca de acessos ao disco, reutilizar conexões existentes ao invés de

criar novas para sincronização dos e-mails e particionamento da estrutura de e-mails

(atualizar em intervalos).

Os experimentos foram conduzidos utilizando o Power Monitor para análise do

consumo energético e indicaram 49.9% em média de redução do consumo de energia

com o uso da técnica proposta em comparação ao uso padrão de sincronização dos

sistemas operacionais.

23

SIDARTHA AZEVEDO LOBO DE CARVALHO

2.1.1.7 Energino

Um sistema de aquisição de dados inovador e com baixo custo é o Energino.

Produzido pelo grupo iNSPIRE da empresa Create-Net, Energino é um kit de

monitoração energética e provê acompanhamento em tempo real, precisão e dados

estatísticos do consumo energético. É um sistema de baixo custo que utiliza o micro

controlador Arduino, é uma plataforma aberta e com ampla participação da

comunidade. Para construir a plataforma são gastos em média € 80 euros.

O trabalho em Gomes et al (2012) detalha o funcionamento do Energino, são

usados sensores de tensão e corrente, o circuito para medição da tensão é construído

utilizando resistências de 10kΩ e 100kΩ permitindo valores de entrada de até 55V.

Para calcular a corrente que passa pelo dispositivo é utilizado um circuito com sensor

de Efeito Hall capaz de medir correntes de -5A até +5A.

Além da proposta do Energino, o trabalho também construiu um modelo

energético para estimativa do consumo de energia de pontos de acesso sem fio e

validou o modelo realizando comparações com medições reais.

Figura 10 – Energino.

Fonte: Energino Project (2014)

2.1.1.8 Tabela Comparativa das abordagens de Medição por Hardware

Na Tabela 1 encontra-se um resumo das abordagens utilizadas para medição do

consumo energético por hardware, percebe-se que há grandes diferenças do preço dos

equipamentos. Essa diferença impulsionou tanto a indústria quanto a academia a

desenvolver equipamentos substitutos e de baixo custo.

Os valores foram retirados dos sites dos fabricantes ou revendedores

autorizados e convertidos para a moeda brasileira, o real. Os valores da Tabela 1 não

contemplam acessórios, como: cabos e o software necessário para visualização dos

dados de cada equipamento.

24

SIDARTHA AZEVEDO LOBO DE CARVALHO

Todos os trabalhos consultados, exceto o Energino, realizam seus experimentos

energéticos em smartphones ou protótipos, embora o Energino também possa ser

utilizado para smartphones. Isso reforça a importância de plataformas acessíveis para

medição do consumo energético nesses aparelhos.

Tabela 1 – Trabalhos que utilizam medição por Hardware

DAQ Valor Utilizou Aparelho Medido

Objetivo Principal

PCI-6229 R$ 2600 Carroll e Heiser

(2010)

OpenMoko Neo

Freerunner

Realização de medições para o consumo energético dos componentes e micro-

benchmarks para criação de modelos energéticos

USB-6016

R$ 6500 Shin et al

(2013) Plataforma Odroid-A

Profiling do kernel Android em tempo de execução para acompanhar o consumo

energético

USB-6210

R$ 1900 Liang, Lai e

Chiou (2010)

XScale - PXA270 Board

Avaliação do uso de técnicas de DVFS para prover economia energética em smartphones

LTC2942 R$ 450 Kwok et al

(2011) Smartphones

Android

Análise energética de aplicativos populares

executando no sistema Android

2304A R$ 3050

Altamimi et al (2012) e Palit, Naike e Singh

(2011)

Smartphone HTC G1

Avaliação do custo energético de aplicações multimídia que

utilizam computação em nuvem

66319D R$ 9000

Perrucci , Fitzeke e

Widmer (2011) e Perrucci et al

(2009)

Smartphone Nokia N95

Realização de medições energéticas dos componentes e

funcionalidades dos smartphones para criação de

modelos energéticos

E3640A R$ 2100 Silva-Filho et al

(2012)

Smartphone Samsung Galaxy S2

Construção de um ambiente para realização de testes

energéticos e avaliação de algoritmos para redução do

consumo energético com uso de DVFS

Power Monitor

R$ 2045

Chang et al (2013), Yoon et

al (2012), Huang et al

(2012) e Xu et al (2013)

Smartphones HTC Desire HD, Nexus

One e S, HTC LTE Phone e Omnia 7 (WP)

Avaliação de técnicas de DVFS e predição. Criação de software

para medição energética de sistemas Android. Construção de modelos energéticos para

redes LTE. Avaliação do custo energético das diferentes

técnicas para sincronização de e-mails em diferentes sistemas

operacionais

Energino R$ 210 Gomes et al

(2012) 802.11 Acess

Point

Proposta do sistema de medição Energino e validação da plataforma pela avaliação

25

SIDARTHA AZEVEDO LOBO DE CARVALHO

energética de uma rede WLAN em um cenário real

2.1.2 Medição por Software

As medições por software são mais fáceis de se obter, mas possuem um grau de

confiança menor que a medição por hardware e constituem-se como: aproximações

baseadas em quais funcionalidades estão ativas no dispositivo e sua intensidade de

uso ou por um modelo energético obtido a partir de medições reais.

2.1.2.1 Nokia Energy Profiler

O software Nokia Energy Profiler é utilizado nos celulares produzidos pela

fabricante Nokia e possui um ambiente para acompanhamento dos recursos

energéticos utilizados pelo aparelho. O software não disponibiliza material vasto

explicando o uso e funcionamento.

O trabalho em Perrucci et al (2009) realizou medições energéticas dos

experimentos em hardware e utilizando o Nokia Energy Profiler. Não encontraram

diferenças significativas. Realizaram medições para as principais aplicações do

smartphone, como: enviar SMS, transferência de dados por Wifi e rede móvel, uso

intenso de processamento, chamadas telefônicas, entre outros. Após os experimentos,

criaram um modelo energético para calcular o valor aproximado da energia necessária

para transmitir uma quantidade de informação através de redes Wifi ou móvel. O

trabalho em Perrucci, Fitze e Widmer (2011) concentrou-se em modelos para mensurar

o consumo energético de handoffs em redes celulares. Ambos os trabalhos usaram um

aparelho Nokia N95 e uma DAQ Agilent 66319D em seus experimentos.

26

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 11 – Nokia Energy Profiler.

Fonte: Nokia Developer (2014)

2.1.2.2 Apple's Instrument

O Apple's instrument é uma ferramenta do sistema iOS da Apple e permite a

gravação de relatórios referente ao consumo energético do aparelho para posterior

análise. Com essa ferramenta o usuário pode analisar o comportamento de um ou mais

processos do sistema operacional, gravar uma sequência de ações e repetir o teste

várias vezes gravando o consumo energético. Também é possível criar profiles de

consumo de aplicações.

O trabalho em Grace et al (2012) faz o uso da ferramenta e utiliza um

smartphone iPhone 4S nos experimentos. O trabalho demonstrou que é possível

aumentar a eficiência energética em 59% quando utilizando stream de áudio pela rede

de dados Wifi ao invés de 3G. Também ficou comprovado que quando utilizando o 3G,

há uma redução da eficiência energética em 72% por conta de aplicativos executando

em background, quando comparado ao estado idle do aparelho.

Figura 12 – Apple's Instrument. Fonte: Apple Developer (2014)

27

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 13 – Apple's Instrument. Fonte: Apple Developer (2014)

2.1.2.3 Battery Status Android

O sistema operacional Android fornece meios para consultar uma previsão do

estado da bateria, nível de carga, tempo de uso na bateria, dentre outras informações.

É aconselhável utilizar a informação do nível de carga da bateria para criar perfis de

uso do aparelho em nível de software, por exemplo, se o dispositivo está com uma

carga baixa de bateria, é recomendável que os aplicativos façam menos requisições a

rede de dados ou uso menos intensivo de processamento para prolongar o tempo de

uso da bateria.

O sistema também permite saber se o aparelho está carregando e a qual tipo de

carga está ligado. Quando em modo de carga, é possível identificar se está conectado

pela USB ou por uma fonte de corrente alternada. Essas e outras informações são

acessíveis pela API de programação do sistema operacional. Na Figura 14 pode ser

visto um exemplo na linguagem JAVA.

Figura 14 – Exemplo código JAVA para aquisição de dados da bateria.

Fonte: Android Developer (2014)

28

SIDARTHA AZEVEDO LOBO DE CARVALHO

Na Figura 15 há uma foto da tela do aparelho executando o aplicativo nativo para

acompanhamento do uso da bateria no Android e os aplicativos que mais consomem.

Na figura a bateria está com 99% de carga, não está carregando, o modo de economia

de bateria não está ativado e as porcentagens referentes ao consumo energético de

cada aplicativo comparado ao total consumido.

Figura 15 – Status da bateria no smartphone Motorola G.

Vários trabalhos utilizam essa abordagem não tão precisa para desenvolvimento

de técnicas para economia de energia. Na Tabela 2 há trabalhos que utilizaram esse

mecanismo para medir o consumo energético de aplicativos Android.

O trabalho em Khairy, Ammar e Bahgat (2013) realiza a proposta de um software

para predição do consumo energético e tempo de execução em smartphones em

diversos cenários. A proposta aumentou o ganho energético de 40% para 56% em

decisão de offloading de carga e uma redução do tempo de execução de 15%. O

software garante uma margem de erro menor que 9%.

Kang e Seo (2011) realizaram uma coleta de dados energéticos de usuários

reais em cenários do dia a dia durante dois meses. Ficou constatado que cada usuário

tem seu próprio padrão de utilização energética. O estudo de caso demonstra como

29

SIDARTHA AZEVEDO LOBO DE CARVALHO

utilizar essa informação para prover eficiência energética personalizada

individualmente.

Pathak, Hu e Zhang (2012) propõem um software para avaliação energética de

aplicativos chamado de eProf disponível para os sistemas operacionais Android e

Windows Mobile. São avaliados os aplicativos do sistema operacional Android, como:

AngryBirds, Facebook e Navegação Web. São analisadas técnicas para redução do

consumo de energia, atuando na redução de tempo ocioso da rede de dados e

diminuição de requisições de entrada e saída. Após entender o consumo energético,

foram propostos mecanismos que garantiram uma redução do consumo energético de

20% a 65% nos dispositivos testados, entre eles estão: AngryBirds, NyTimes, Fchess e

navegação Web.

O trabalho em Dogar, Steenkiste e Papagiannaki (2010) propõe uma melhoria na

transmissão de dados por um software que permite o dispositivo economizar energia

enquanto não está transmitindo dados. Para pequenas transmissões de dados, como

128kB até 5MB foi alcançado uma melhoria do tempo de uso do dispositivo de duas a

cinco vezes.

Kalic, Bojic e Kusek (2012) realizaram a medição do gasto energético de

tecnologias para transmissão de dados sem fio, como: Bluetooth, Wifi e 3G. Os autores

propuseram um modelo energético baseado nas medições para cada tecnologia

utilizada. Com o modelo proposto é possível calcular o gasto energético do pacote de

dados a transmitir nas diferentes tecnologias e escolher a melhor em tempo de

execução do dispositivo provendo eficiência energética.

Tabela 2 – Trabalhos que utilizam medição por Software pela API do Android

Utilizou Aparelho Medido Tipo de

Alimentação

Khairy, Ammar e Bahgat (2013) Google Nexus S, LG Optimus ME P350 e Galaxy Y

Bateria

Kang e Seo (2011) Google G1 Bateria

Pathak, Hu e Zhang (2012) Aparelho Android –

Sem modelo específico

Bateria

Dogar, Steenkiste e Papagiannaki (2010)

Nokia N810 Tablet (Aparelho adaptado

com Android) Bateria

Kalic, Bojic e Kusek (2012) Aparelho Android –

Sem modelo específico

Bateria

30

SIDARTHA AZEVEDO LOBO DE CARVALHO

2.1.2.4 PowerTutor

PowerTutor é um aplicativo para sistemas Android que detalha o consumo

energético por componentes do dispositivo, como: processador, rede de dados, display

e GPS. O aplicativo foi desenvolvido por um grupo de estudantes e professores da

Universidade do Michigan. A partir de medições reais em hardware, os autores criaram

um modelo para o cálculo energético do dispositivo de acordo com informações

disponíveis através da API do sistema Android. Foram utilizados os aparelhos HTC G1,

HTC G2 e Nexus One para a criação do modelo. Esse modelo foi incorporado ao

aplicativo PowerTutor. O aplicativo também permite a consulta da potência energética

requerida para cada aplicação em execução. A Figura 16 exibe o aplicativo executando

em um smartphone.

Figura 16 – Power Tutor executando em um sistema Android.

Fonte: Gordon, Zhang e Tiwana (2014)

Na pesquisa de Taleb et al (2013) o consumo energético da abordagem foi

calculado utilizando o aplicativo PowerTutor e um smartphone HTC Desire HD. Para a

realização dos experimentos foi criado um aplicativo Android que gerava fluxo de dados

utilizando diferentes redes, como: Wifi ou 3G.

31

SIDARTHA AZEVEDO LOBO DE CARVALHO

2.1.2.5 Tabela Comparativa das abordagens de Medição por Software

Abaixo segue a tabela comparativa das abordagens que utilizam medição por

software consultadas neste trabalho.

Tabela 3 – Trabalhos que utilizam medição por Software

Software Utilizou Aparelho Medido Objetivo Principal

Nokia Energy Profiler

Perrucci et al (2009) e Perrucci, Fitze e Widmer (2011)

Nokia N95

Avaliar o consumo energético das principais

funcionalidades do smartphone

Apple's Instrument

Grace et al (2012) iPhone 4S Avaliação da eficiência energética em cenários

reais

Battery Status

Android

Khairy, Ammar e Bahgat (2013), Kang e Seo (2011), Pathak, Hu e Zhang (2012), Dogar, Steenkiste e Papagiannaki (2010) e Kalic, Bojic e Kusek

(2012)

Google Nexus S e G1, LG Optimus

ME P350 e Samsung Galaxy Y e Nokia N810

Tablet

Proposta de softwares para avaliação energética

e mecanismos para redução do consumo

energético

Power Tutor Taleb et al (2013) HTC Desire HD

Avaliação do consumo energético para

transmissão de dados em redes Wifi e 3G

Ficou constatado que os principais objetivos das medições energéticas são:

gerar modelos energéticos genéricos para prover o cálculo do consumo de energia em

diversos dispositivos e para avaliação de técnicas que permitam eficiência energética.

2.2 Ferramentas para Testes de Software na nuvem em Dispositivos

Móveis

Neste trabalho definimos testes de software como uma sequência de ações

realizadas em um dispositivo de forma automatizada com uma saída conhecida e bem

definida. O teste de software em dispositivos móveis é necessário para combater o

problema da fragmentação. O teste de software também pode ser escalável, realizar o

mesmo teste em diversos dispositivos simultaneamente e rapidamente. Várias

empresas oferecem o serviço na nuvem, o que diminui o gasto com compra de

aparelhos e tempo de implantação do software no dispositivo.

32

SIDARTHA AZEVEDO LOBO DE CARVALHO

2.2.1 Xamarin

Essa empresa adquiriu em 2012, o site Less Painful, que tinha como objetivo

principal tirar o sofrimento dos testadores automatizando os testes de software de

forma rápida e com uso de uma interface Web. Neste testador, dispositivos reais são

ligados a um servidor que interage com a interface Web permitindo a instalação de

aplicativos em diversos smartphones e tablets com diferentes sistemas operacionais. O

sistema utiliza a linguagem Cucumber para programar os testes, os quais eram

convertidos para comandos do sistema operacional alvo e executados no dispositivo.

Xamarin manteve a facilidade empregada pela Less Painful e incorporou mais

funcionalidades, como: mais dispositivos na plataforma, testes de estresse inteligentes,

maior abrangência multiplataforma, testes de desempenho, resultados visuais dos

testes, IDE própria para o desenvolvimento e upload do aplicativo para o servidor

Xamarin, além de integração da IDE de desenvolvimento com o Visual Studio.

A Figura 17 mostra o momento da escolha sobre quais smartphones ou tablets o

teste deve ser executado e a visualização depois de autenticado no sistema Xamarin

Test Cloud. O custo da licença mensal para utilizar os serviços na nuvem do Xamarin

varia de $1.000,00 a $12.000,00 dólares por mês.

Figura 17 – Xamarin Test Cloud. Fonte: Xamarin (2014)

33

SIDARTHA AZEVEDO LOBO DE CARVALHO

2.2.2 APPThwack

O ambiente de testes da APPThwack (APPTHWACK, 2014) utiliza dispositivos

reais e é multiplataforma, permitindo testes em sistemas Android e iOS.

O teste mais simples realizado pela plataforma é o de estresse, onde são

simulados eventos de toque em posições aleatórias da tela na busca de obter erros na

execução do aplicativo. A plataforma conta com 277 smartphones e tablets, sendo 220

com o sistema Android.

Para testar um aplicativo, são necessários cinco passos (Figura 18):

1. Criar um projeto (Android ou iOS);

2. Upload do aplicativo;

3. Configurações do teste;

4. Selecionar os dispositivos que deseja testar o aplicativo;

5. Visualizar os resultados.

Ao se cadastrar no site o usuário deve criar um projeto indicando em qual

sistema operacional vai realizar o teste. Depois é feito o upload do aplicativo a ser

testado e então são feitas as configurações do teste. Para viabilizar o teste, o ambiente

instala o aplicativo enviado pelo usuário no dispositivo alvo, realiza as configurações e

executa o teste, então desinstala o aplicativo. Há a possibilidade de executar o teste de

estresse, que é automático, ou enviar um arquivo com os testes nas seguintes

tecnologias: Calabash, JUnit, MonkeyTalk ou UiAutomator.

Uma funcionalidade interessante é a configuração de funcionalidades ativas no

smartphone, como: Wifi, Bluetooth, GPS e NFC. Também é possível simular a

localização, alterando as coordenadas do GPS.

Na visualização dos resultados, algumas das informações disponíveis são: lista

de erros, screenshots da tela do dispositivo quando acontece o erro, uso do

processador em porcentagem, uso de memória em KB, número de threads utilizadas,

tempo de instalação, cópia do log cat, dentre outros. Na Figura 19 está a tela dos

resultados gerados pelo site.

34

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 18 – Sequência de passos para testar um aplicativo no APPThwack Cloud Service.

A tarifação de uso do serviço varia de $20,00 a $500,00 dólares por mês. O valor

dessa tarifa é baseado na quantidade de minutos usados, ou seja, quanto mais

dispositivos testados, maior será a quantidade de tempo despendido nos dispositivos e

maiores as tarifas.

Figura 19 – Tela dos resultados no APPThwack Cloud Service.

2.2.3 Monkey Mobile Cloud

Uma parte do ambiente Monkey Mobile Cloud é de código aberto e disponibiliza

uma biblioteca grátis que converte comandos escritos na linguagem própria para

comandos equivalentes em sistemas Android e iOS, permitindo a replicação de testes

multiplataforma.

A empresa também fornece o serviço na nuvem, além da execução dos testes

por arquivo, também fornece um meio de controle total do dispositivo por linha de

comando com acesso pela internet.

O projeto MonkeyTalk mantém uma documentação razoável da API, apresenta

algumas vantagens e disponibiliza um manual de usabilidade da plataforma, a qual é

de código aberto. Na Figura 20 há uma parte da infraestrutura utilizada para fornecer o

serviço de teste na nuvem.

35

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 20 – Plataforma Monkey Mobile. Fonte: Monkeymobile (2014)

A linguagem para programação dos testes da infraestrutura acima é muito

simples, com comandos como: “tap botão X”, “no campo Y

enterText(texto_argumento)”, dentre outros. Uma sequência de comandos criados na

IDE MonkeyTalk estão na Figura 21. O exemplo na Figura seleciona um campo de

texto na aplicação Android, depois insere o valor “25.0” no campo selecionado e então

aperta o botão “Start”.

36

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 21 – MonkeyTalk IDE.

2.2.4 Perfecto Mobile

O Website fornece várias instruções com vídeo aulas de como utilizar a

ferramenta e uma documentação razoável para iniciantes. Possui o serviço de teste em

dispositivos reais a partir de um plug-in do eclipse e um controle remoto em tempo real

do dispositivo por uma interface Web. Possui uma interface amigável e a exibição da

execução do teste em tempo real acontece em uma janela com o formato do dispositivo

testado.

Na Figura 22 o dispositivo executando por cima da IDE Eclipse com o plug-in do

Perfecto Mobile parece um simulador, mas é um dispositivo real executando e exibindo

para o usuário em tempo real as ações no dispositivo. Permite a criação do teste e a

reprodução em diversos dispositivos reais em ambientes reais de funcionamento.

É permitida a criação dos arquivos de testes em diferentes linguagens, como:

Java, JavaScript, C#, Perl, dentre outras. A partir dessas linguagens é possível criar

vários casos de testes envolvendo loops, condições, timers, dentre outros. É possível

criar o teste a partir de interações diretas com a tela do dispositivo também. O usuário

interage com a tela e os movimentos são gravados no teste. Isso inclui: ações de

arrastar, swipes, zooms, rolagem da tela, toques curtos e longos, dentre outros.

37

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 22 - Perfecto Mobile IDE. Fonte: Perfectomobile (2014)

2.3 Relação desta Pesquisa com os Trabalhos Apresentados

Nesta seção são apresentadas as característica dos trabalhos relacionados com

esta pesquisa, que foram encontrados durante a revisão da literatura tradicional

realizada de forma adhoc. Uma Tabela comparativa mostrando as diferenças e

similaridades entre este estudo e os trabalhos relacionados é apresentada no fim desta

seção.

A primeira característica, chamada de Consumo Energético, é a possibilidade

de analisar quanto o dispositivo gasta de energia para realizar uma atividade no

dispositivo. Isso é medido em hardware garantindo uma precisão maior que uma

simulação em software.

A segunda característica chamada de Controle do Processador é referente ao

poder de ajustar a frequência de cada núcleo do processador do dispositivo de forma

interativa pela Web. Com essa característica é possível configurar quantos núcleos

estarão em operação durante o teste e a frequência individual de cada núcleo.

A característica Multidispositivo é a funcionalidade de executar o mesmo teste

em diversos dispositivos simultaneamente, podem ser dispositivos de diferentes

sistemas operacionais, fabricantes e modelos. A Multiplataforma é a habilidade de um

38

SIDARTHA AZEVEDO LOBO DE CARVALHO

único teste escrito em uma linguagem específica ser executado em diversos sistemas

operacionais. Multilinguagem é o poder de escrever testes em diversas linguagens,

garantindo a interoperabilidade entre todas as linguagens, plataformas e dispositivos.

A característica Interface Web é permitir o acesso às funcionalidades do

sistema através da internet, utilizando uma interface Web. Essa interface facilita o

trabalho do testador possibilitando acesso ao serviço de qualquer lugar a qualquer

momento de forma interativa.

A última característica é a Visualização em Tempo Real do Dispositivo que

permite que o usuário do sistema acompanhe pela Web em tempo real o teste sendo

executado no dispositivo. Na Tabela 4 há um resumo das características dos trabalhos

encontrados na literatura com o trabalho proposto.

Tabela 4 – Características dos trabalhos relacionados.

Característica Este

Trabalho

Power

Monitor Energino Xamarin APPThwack

Monkey

Mobile

Cloud

Perfecto

Mobile

Consumo

Energético Sim Sim Sim Não Não Não Não

Controle do

Processador Sim Não Não Não Não Não Não

Interface Web Sim Não Não Sim Sim Sim Sim

Multidispositivo Sim Não Não Sim Sim Sim Sim

Multiplataforma Sim Não Não Sim Sim Sim Sim

Multilinguagem Sim Não Não Sim Sim Sim Sim

Visualização em

Tempo Real do

Dispositivo

Não Não Não Não Não Não Sim

2.4 Considerações Finais do Capítulo

Este capítulo apresentou os conceitos e fundamentos teóricos usados como

base para esta pesquisa. Este referencial detalhou quais sistemas são usados para

medição energética por hardware e quais os principais softwares para estimar consumo

energético e comparou com o ambiente proposto. No próximo capítulo será detalhado o

ambiente proposto neste trabalho.

39

SIDARTHA AZEVEDO LOBO DE CARVALHO

3. AMBIENTE PROPOSTO: MDEM (Multi-Device

Energy Measurement)

O ambiente de medição proposto oferece uma plataforma para a medição

energética de uma sequência de ações em diversos dispositivos simultaneamente. É

oferecida uma interface Web ao usuário para a criação da sequência de teste ou que

seja fornecido um arquivo com os testes. Um grande diferencial deste trabalho em

relação aos demais relatados no capítulo 2 está na execução simultânea das ações de

testes em diversos dispositivos. Um aplicativo ou função de teste pode funcionar bem

em um dispositivo e em outro não, ou funcionar com restrições.

As sequências de ações são testes em funcionalidades do dispositivo, por

exemplo: realizar uma chamada telefônica, enviar e-mail, abrir browser, enviar SMS,

reprodução de vídeos em stream e ações dentro de um aplicativo não nativo do

sistema operacional Android. Tais sequências podem ser replicadas em diversas

condições do dispositivo, como: diferentes redes de dados, frequência mínima e

máxima em cada núcleo do processador, escolha do governor Android, a quantidade

de iterações do teste e em quais dispositivos o teste será replicado. Todas essas

configurações são ajustadas pelo usuário através da interface Web.

O sistema operacional Linux usa governors para controles operacionais do

sistema. Governors são módulos reguladores do kernel Linux que se comunicam com o

hardware. Sua principal função é regular a frequência de operação dos núcleos do

processador. O sistema operacional Android é baseado no kernel Linux e também

utiliza Governors. Essa seleção pode ser feita entre os disponíveis de acordo com a

necessidade do usuário, há os que focam em desempenho, outros em redução de

energia consumida (PALLIPADI e STARIKOVSKIY, 2006).

Desempenho e redução de energia são variáveis opostas, para melhorar uma,

deve-se piorar a outra, logo é necessário um balanceamento das variáveis. Os

governos mais utilizados no sistema operacional Linux são: Ondemand, Performance e

PowerSave. Para o sistema operacional Android temos os citados anteriormente e mais

o Interactive e PegasusQ.

O ambiente (Figura 23) é dividido em: Ambiente de Medição e Ambiente de

Software, o primeiro relacionado à estrutura física necessária para a medição do

consumo energético. O segundo é responsável pelo processamento dos dados,

40

SIDARTHA AZEVEDO LOBO DE CARVALHO

comunicação com os componentes da plataforma, interface com o usuário e geração

de resultados.

Figura 23 – Infraestrutura de Hardware e Software.

3.1 Fluxo de Projeto

Este tópico define os meios utilizados na pesquisa para o devido

encaminhamento deste trabalho, no intuito de tornar os resultados mais confiáveis,

auditáveis e reprodutíveis.

41

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 24 – Fluxo de Projeto.

O fluxo do projeto desenvolvido foi dividida em dois fluxos simultâneos e pouco

dependentes, como pode ser visto na Figura 24. Um Fluxo de Infraestrutura que é

responsável por guiar o processo de construção do ambiente de hardware da medição

energética e outro chamado de Fluxo do Ambiente de Software, o qual é destinado a

orientar a produção do software que permite a comunicação entre os dispositivos,

circuitos de medição e interações dos usuários com o sistema.

O Fluxo de Infraestrutura é composto por:

1. Circuito de Medição: Responsável pela captura das amostras de tensão e

corrente da energia que está passando para o dispositivo em teste. O

diagrama e descrição dos componentes, alguns problemas e soluções são

apresentados nos tópicos seguintes.

2. Conexões Energéticas: Realização das ligações entre o dispositivo em

teste, a fonte de alimentação energética e o circuito de medição. Os erros

42

SIDARTHA AZEVEDO LOBO DE CARVALHO

encontrados e soluções para contorná-los são explanados nos próximos

tópicos.

3. Conexão de Dados: Conexão para envio dos comandos de teste e canal

de sincronização do dispositivo com o servidor. É realizada uma ligação do

cabo micro USB do dispositivo para comunicação com o kernel do sistema

operacional. Essa ligação acarreta um erro na medição energética, pois o

conector também é usado para carregar a bateria do smartphone

interferindo na quantidade real de energia consumida pelo aparelho. No

decorrer deste trabalho o problema é explicado em detalhes e como foi

solucionado.

4. Root dos Dispositivos: Os dispositivos precisam permitir acesso de root

para permitir o chaveamento da frequência dos núcleos do processador.

Caso algum sistema operacional não permita essa característica, é

possível usar o ambiente de medição, mas sem o controle das frequências.

5. Execução de Testes: Nesta etapa foram realizados testes para validar a

infraestrutura. Testes para certificar que estava sendo realizado o

chaveamento das frequências e que as mesmas se mantinham em uso até

o fim do experimento.

O Fluxo do Ambiente de Software é composto por:

1. Comandos ADB: Para realização das ações de teste foram utilizados

comandos ADB do sistema operacional Android. Cada funcionalidade está

associada a uma sequência de comandos ADB. Este tópico irá explicar

cada funcionalidade e seus respectivos comandos.

2. MonkeyTalk: Neste trabalho foi utilizado a biblioteca MonkeyTalk para

auxiliar na execução do arquivo de testes no dispositivo e para permitir que

o mesmo teste seja replicado em diferentes sistemas operacionais.

3. Comunicação Serial: Essa comunicação foi estabelecida para a

transmissão das amostras de corrente e tensão do Circuito de Medição

para o computador servidor que então calcula o consumo energético e gera

os gráficos.

4. Cálculo do Consumo Energético: Foi necessário implementar em Java

uma função para calcular o consumo energético do dispositivo a partir das

amostras de corrente e tensão. Utilizou-se o método do trapézio que será

43

SIDARTHA AZEVEDO LOBO DE CARVALHO

detalhado adiante e não foram encontradas implementações na linguagem

citada, necessitando que fosse feito a implementação para a continuação

do trabalho.

5. Banco de Dados: Para garantir uma consulta posterior as medições

energéticas, todas as amostras de corrente e tensão são armazenadas em

um banco de dados referenciando o dispositivo medido e o número do

experimento.

6. Interface Web: Para permitir o fácil manuseio do ambiente de medição, foi

disponibilizada uma interface Web para interagir com o ambiente. Na

interface é possível criar ou importar testes, escolher os dispositivos para

replicação do teste e configuração de todas as funcionalidades. Também é

disponibilizado um tutorial de como utilizar a interface.

3.2 Ambiente de Infraestrutura

Este tópico está relacionado à explanação do ambiente de medição energética

proposto neste trabalho. Pode-se dividi-lo em quatro partes, que são: placa de

medição, fonte de alimentação energética, dispositivos e software servidor. A placa é

responsável pela coleta das amostras de corrente e tensão do dispositivo em análise, a

fonte fornece energia para o funcionamento do dispositivo, o qual é o aparelho que

será medido o consumo e o servidor é o componente de software responsável por

processar essas amostras e calcular a energia consumida e gerar os gráficos.

3.2.1 Arquitetura

O ambiente de medição é formado por uma fonte de alimentação que fornece a

energia necessária para o funcionamento do dispositivo, o circuito de medição, o

dispositivo e o servidor. Qualquer hardware que necessite de alimentação energética

para funcionar pode ser incluído nessa infraestrutura, dentre eles: smartphones,

tablets, computadores embarcados, sensores, etc.

Uma visão geral da arquitetura pode ser visto na Figura 25, a qual é uma

estrutura escalável que somente fica limitada a quantidade de entradas USB

suportadas pelo computador servidor. Cada dispositivo necessita de um circuito de

medição independente. A fonte de alimentação pode ser compartilhada desde que seja

adequada. Foi constatado, por exemplo, que um smartphone moderno (Samsung

44

SIDARTHA AZEVEDO LOBO DE CARVALHO

Galaxy S3 e Galaxy S4) necessita de 1200mA a 1800mA em situações de alto

consumo energético em uma tensão de aproximadamente 4.7V. Desta forma, é

recomendável uma fonte com no mínimo 4000mA de capacidade para que seja

possível compartilha-la sem que alguns dos dispositivos ligados sofra problemas em

situação de pico energético simultaneamente. Também é necessário que os

dispositivos operem no mesmo valor de tensão.

Figura 25 – Arquitetura do Ambiente de Medição Proposto.

O circuito de medição utiliza uma entrada mini USB para enviar as amostras de

corrente e tensão para o servidor. O dispositivo utiliza uma entrada micro USB para

receber os comandos do servidor e replicar a sequência de testes criada pelo usuário.

O polo positivo da fonte de alimentação é ligado ao polo positivo (VIn+) do

INA219. O polo negativo (VIn-) do INA219 é ligado ao polo positivo do dispositivo e

tanto o polo negativo do dispositivo como o negativo do INA219 são ligados ao polo

negativo da fonte de alimentação fechando o circuito.

3.2.2 Circuito de Medição

Este circuito foi construído pelo grupo de pesquisa em consumo energético do

Centro de Informática da Universidade Federal de Pernambuco (UFPE) e é formado

por: micro controlador ATMEGA328P da Atmel, circuito integrado INA219 da Adafruit,

45

SIDARTHA AZEVEDO LOBO DE CARVALHO

conversor mini USB, cristal e alguns resistores. O INA219 é ligado entre a fonte de

alimentação e o dispositivo que recebe a carga para coletar as amostras de tensão e

corrente que estão passando pelo circuito. O circuito envia essas informações para o

micro controlador que por sua vez envia os dados para o servidor através da conexão

mini USB. O circuito de medição pode ser visto na Figura 26.

Figura 26 – Circuito de Medição.

3.2.3 Conexões Energéticas

O conector utilizado para ligar a fonte de alimentação ao dispositivo possui quatro

pinos, mas somente três são utilizados. Ao realizar a ligação do fio positivo e do

negativo com os da fonte de alimentação, notou-se que periodicamente aparecia na

tela do dispositivo uma mensagem de “Bateria Desconectada”, cada vez que essa

mensagem surgia o celular aumentava o brilho da tela para o máximo e havia picos na

carga do processador, isso interferia no consumo energético do experimento e deveria

ser evitado.

Foi necessário realizar um curto entre os pinos dois e três da bateria para evitar

que o aparelho detecte a ausência da bateria, evitando o aparecimento da mensagem:

“Bateria Desconectada” informada pelo sistema operacional Android. Os pinos de

energia da bateria do dispositivo podem ser vistos na Figura 27. O mais a esquerda é o

polo positivo, o segundo da esquerda para a direita é ligado com o terceiro pino que é o

polo negativo.

46

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 27 – Pinos da bateria dos smartphones do ambiente.

3.2.4 Conexão de Dados

A ligação do cabo micro USB ao smartphone é necessária para a comunicação

do computador servidor com o kernel do sistema operacional do Android. Essa ligação

acarreta um erro na medição energética, pois o conector também é usado para

carregar a bateria do smartphone, interferindo na quantidade real de energia

consumida pelo aparelho.

Foram realizados testes com e sem o cabo USB ligado ao smartphone, foram

constatados erros nas medições tanto para maior consumo como para menor

consumo. O erro era distribuído de forma aleatória no experimento.

Para contornar este problema, o cabo USB utilizado para ligar o smartphone ao

computador servidor foi modificado de modo a eliminar os fios referentes à alimentação

energética que vinha do conector USB do servidor. Foram removidos os fios referentes

à alimentação energética deixando somente os fios para transmissão de dados.

O diagrama com a organização dos fios está na Figura 28. Também ficou

constatado que a fonte de alimentação deve fornecer ao smartphone uma tensão

próxima de 5 Volts para permitir que o circuito integrado presente no smartphone e

responsável por ativar a transmissão de dados pelo cabo USB fosse ligado. Esse

circuito era alimentado pela tensão fornecida pela USB.

Foram realizados novos testes que garantiram a aderência do consumo

energético com o consumo real. O teste baseou-se na replicação de experimentos já

conhecidos pelo grupo de pesquisa em consumo energético da UFPE e com consumo

energético bem definido.

47

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 28 – Diagrama fios da conexão USB modificada. 3.2.5 Dispositivos

Na infraestrutura proposta foram incluídos dois smartphones considerados de

última geração na data de realização do trabalho, o Samsung Galaxy S3 modelo GT-

9305T (Figura 29) e o Samsung Galaxy S4 modelo GT-I9505 (Figura 30). As

especificações técnicas podem ser vistas na Tabela 5.

Tabela 5 – Smartphones disponíveis na infraestrutura proposta.

GT-9305T GT-I9505

SoC Exynos 4412 Snapdragon 600

CPU ARM Cortex A9 Krait 300

Cores 4 4

Frequências

Disponíveis

(MHz)

200, 300, 400, 500, 600, 700,

800, 900, 1000, 1100, 1200, 1300

e 1400 (13 Frequências)

384, 486, 594, 702, 810, 918, 1026,

1134, 1242, 1350, 1458, 1566, 1674,

1782 e 1890 (15 frequências)

Versão Android 4.1.2 4.4.2

Esses smartphones foram incluídos na infraestrutura de forma plug-and-play.

Com pequenos ajustes é possível inserir novos dispositivos na plataforma de medição.

Isso contribui para torná-la escalável. Com modificações, também é possível inserir

smartphones com outros sistemas operacionais, como: iOS, Windows Phone, dentre

outros. No sistema operacional iOS é possível o envio de comandos de controle do

aparelho através de uma conexão SSH estabelecida entre o computador e o

smartphone. Essa conexão permite a execução de comandos na shell do dispositivo

assim como é feito com os comandos ADB no Android.

48

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 29 – Samsung Galaxy S3 GT-

9305T. Fonte: Samsung (2014a)

Figura 30 – Samsung Galaxy S4 GT-

I9505. Fonte: Samsung (2014b)

3.2.6 Testes

Alguns testes possuem o objetivo de certificar que núcleo do processador estava

funcionando na frequência indicada. Os testes consistiram em uma sequência de

comandos ADB que regulavam a frequência e a mantinham até o final do experimento.

Após isso, outro teste era executado para validar que as frequências se mantinham nos

núcleos do processador mesmo com testes aleatórios sendo executados, como: abrir

uma aplicação, eventos de toque aleatórios na tela, dentre outros.

Para certificar que o circuito estava medindo o consumo energético de forma

correta, foram executados testes conhecidos que geravam picos de tensão e esse

comportamento era observado na fonte de alimentação de forma não automatizada.

3.3 Documentação do Software

Este tópico é destinado à especificação do software construído no computador

servidor. Para o desenvolvimento do ambiente de medição foi utilizado a linguagem

Java e HTML5 (HTML + JavaScript) e para a comunicação do servidor com os

dispositivos, o Android Debug Bridge (ADB). Para a replicação das sequências de

ações foram utilizados comandos ADB juntamente com a biblioteca MonkeyTalk e para

o armazenamento das medições energéticas, o banco de dados PostGreSQL.

49

SIDARTHA AZEVEDO LOBO DE CARVALHO

3.3.1 Comandos ADB

Nesta seção são detalhados os comandos ADB responsáveis por algumas

funcionalidades do ambiente de medição, que são: Fazer Chamada, Abrir Browser,

Enviar SMS, Reproduzir Vídeo YouTube e Enviar E-mail. Esses comandos detalhados

abaixo devem ser reproduzidos de forma sequencial para atingir a funcionalidade

desejada.

Fazer Chamada

1. adb -s + SerialDispositivo + shell am start -a Android.intent.action.CALL -d

tel: + NúmeroTelefone;

2. Sleep(TempoDaChamada);

3. adb -s + SerialDispositivo + shell input keyevent 6;

4. Close App.

O comando Sleep não é um comando ADB, ele é utilizado para garantir que a

funcionalidade seja reproduzida pelo tempo desejado. É uma funcionalidade

implementada no servidor que garante que o dispositivo fique com o teste em execução

até o tempo programado expirar.

Abrir Browser e Reproduzir Vídeo no YouTube

1. adb -s + SerialDispositivo + shell am start -a Android.intent.action.VIEW -d

Link;

2. Sleep (TempoDeReprodução);

3. Close App.

Send Email

1. adb -s + SerialDispositivo + shell am start -n

com.google.Android.gm/com.google.Android.gm.ComposeActivityGmail -d

+ Destinatário + --es subject + Assunto + --es body + TextoEmail ;

2. adb -s + SerialDispositivo + shell input keyevent 19;

3. adb -s + SerialDispositivo + shell input keyevent 23;

4. Close App.

O passo 2 (dois) deve ser repetido até se chegar ao botão Enviar E-mail.

50

SIDARTHA AZEVEDO LOBO DE CARVALHO

Send SMS

1. adb -s + SerialDispositivo + shell am start -a Android.intent.action.SENDTO

-d sms: + Destinatário + --es sms_body + Mensagem + --ez exit_on_sent

true;

2. adb -s + SerialDispositivo + shell input keyevent 22;

3. adb -s + SerialDispositivo + shell input keyevent 66;

4. Close App.

Alguns parâmetros dos comandos ADB utilizados nesses exemplos são descritos

na Tabela 6.

Tabela 6 – Parâmetros dos comandos ADB.

KeyEvent Funcionalidade Prefixo

input keyevent 6 Encerrar chamada

telefônica Adb shell

input keyevent 19 Pressionar botão Seta

Subir Adb shell

input keyevent 22 Pressionar botão Seta

Direita Adb shell

input keyevent 23 Pressionar botão

Centro Adb shell

input keyevent 66 Pressionar botão Enter Adb shell

Os demais comandos ADB podem ser vistos no Apêndice A. Os comandos são:

Instalar, Desinstalar e Abrir um aplicativo no Android; ativar e desativar display e a rede

sem fio, identificar e selecionar a rede de dados: 2G, 3G ou 4G; definir o governor

Linux e manipulação de frequências e núcleos do processador do dispositivo.

3.3.2 MonkeyTalk

Foi utilizado a biblioteca MonkeyTalk para a realização dos testes em aplicativos

externos aos nativos do sistema operacional. A ferramenta permite a replicação de um

conjunto de testes tanto no sistema operacional Android quanto no iOS da Apple. Essa

flexibilidade permite que o ambiente proposto seja expandido para outros dispositivos

com outros sistemas operacionais.

51

SIDARTHA AZEVEDO LOBO DE CARVALHO

É necessário que o usuário adicione uma biblioteca (extensão JAR) no seu

projeto Android antes de gerar o aplicativo (extensão APK) e fazer o upload no

ambiente de medição juntamente com o conjunto de testes. Essa biblioteca permite a

replicação dos comandos lidos no arquivo (conjunto de testes) que é enviado junto com

o aplicativo a ser testado.

3.3.3 Comunicação Serial

Para realizar a comunicação serial entre o servidor e o circuito de medição foi

utilizada a biblioteca Java Simple Serial Connector - JSSC (MAVEN, 2014)

desenvolvida por Alexey Sokolov e hospedada pela Maven. Essa biblioteca se mostrou

a mais estável e de fácil manipulação.

Em testes inicias, foi utilizada a biblioteca RXTX (RXTX, 2014), porém ela

apresentou problemas quanto ao gerenciamento de múltiplos acessos. Quando muitas

threads faziam acesso simultâneo, isso provocava o lançamento de exceções e

ocasionava a queda do servidor.

3.3.4 Cálculo do Consumo de Energia

É utilizado o método do trapézio para o cálculo do consumo da energia

consumida. A partir das coletas de tensão e corrente são calculadas as potências

instantâneas. O método funciona basicamente em dividir à área abaixo da curva do

gráfico da potência instantânea em N pedaços, onde cada um forme um trapézio e

assim possa ser calculado o valor da área utilizando a integral de Simpson. É calculada

a integral de cada intervalo e ao final todos os intervalos são somados obtendo-se a

aproximação do valor da área total que é o valor do consumo energético.

Essa função foi implementada na linguagem JAVA e é utilizada pelo ambiente de

medição passando como entrada o local do arquivo contendo as amostras de corrente

e tensão coletadas.

Cada arquivo possui a seguinte estrutura mostrada abaixo, cujos dados fictícios

servem para ilustração. O arquivo com as amostras possuem aproximadamente 200

linhas por segundo de experimento, cada linha corresponde a uma amostra. Segue a

estrutura:

Linha 1: 4.77V;200mA;2500ms

Linha 2: 4.70V;250mA;2570ms

52

SIDARTHA AZEVEDO LOBO DE CARVALHO

Linha 3: 4.79V;500mA;2620ms

Cada linha possui o valor de tensão em Volts, da corrente em Milliamperes e o

tempo decorrido desde que o circuito de medição foi inicializado em Milissegundos. A

corrente e a tensão são usadas para calcular o valor da potência instantânea enquanto

em relação à variável tempo é feito a diferença do intervalo da ultima medição com o

da primeira e tem-se o tempo total do experimento. Esse tempo do experimento é

utilizado como entrada para o cálculo do consumo energético pelo método do trapézio

juntamente com as amostras de corrente e tensão.

3.3.5 Diagrama de Classes

A estrutura do software foi construída utilizando o paradigma orientado a objetos.

A classe Mobile Device (Figura 32) representa o dispositivo na arquitetura proposta e

possui métodos que permitem a manipulação do dispositivo utilizando comandos ADB.

A classe Manager (Figura 33) é responsável por gerenciar as requisições da

interface Web, criar as Threads (classe Mobile Board Thread - Figura 34) para captura

das amostras de corrente e tensão do dispositivo e armazenar as informações da

medição no banco de dados. A classe Serial Communicator (Figura 36) é responsável

por tratar diretamente com a biblioteca de comunicação serial e salvar as amostras em

um arquivo que é tratado pela classe Mobile Board Thread.

A classe Trazepoid Rule (Figura 35) implementa a função para cálculo do

consumo energético a partir da área do gráfico formado pela potência instantânea, a

qual é calculada a partir das coletas de tensão e corrente. A classe responsável pela

persistência das coletas energéticas no banco de dados é a Database Utils (Figura 37).

53

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 31 – Diagrama de classes.

O diagrama de classes do software do ambiente energético e suas cardinalidades

podem ser vistos na Figura 31. Cada classe será detalhada em seguida.

Figura 32 – Atributos e Métodos da Classe Mobile Device.

54

SIDARTHA AZEVEDO LOBO DE CARVALHO

A classe Mobile Device apresenta os métodos para manipulação do dispositivo no

ambiente proposto; métodos para instalar, desinstalar ou abrir um aplicativo, realizar a

execução de comandos ADB ou scripts de teste, ativar a tela, habilitar ou desabilitar o

Wifi, selecionar rede de dados, dentre outros.

A classe Manager (Figura 33) é responsável pelo gerenciamento das requisições

Web que chegam ao servidor. Dentre as responsabilidades da classe estão:

armazenamento dos valores das medições para exibição ao cliente, inicialização dos

dispositivos no ambiente, tratamento de requisições GET e POST e gerenciamento dos

aplicativos e scripts de teste enviados pelo usuário através da interface Web.

Figura 33 – Atributos e Métodos da Classe Manager.

Na classe Measure Board Thread (Figura 34) tem-se os métodos para começar e

pausar uma medição energética. Essa classe cria uma thread para realizar a coleta dos

valores de tensão e corrente e armazena-los. Os atributos fazem referência a qual

dispositivo a medição está associada e os dados que foram aplicados no smartphone.

55

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 34 – Atributos e Métodos da Classe Measure Board Thread.

Na Trapezoid Rule (Figura 35) tem-se o método para calcular o consumo

energético em Joules e os atributos que alocam os valores utilizados, que são: valores

de corrente e potência, tempo de execução e amostras por segundo.

Figura 35 – Atributos e Métodos da Classe Trapezoid Rule.

A classe Serial Communicator (Figura 36) possui os métodos para inicializar e

fechar uma comunicação serial com a placa de medição, capturar os dados

transmitidos e salvar em arquivo.

56

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 36 – Atributos e Métodos da Classe Serial Communicator.

Na classe DataBase Utils (Figura 37) são disponibilizados os métodos para

comunicação e autenticação com o banco de dados, assim como para resgatar o

identificador da última medição salva e criar uma nova entrada.

Figura 37 – Atributos e Métodos da Classe DataBase Utils.

3.4 Funcionalidades do Ambiente

O ambiente proposto possui duas vertentes de funcionalidades: a primeira

relacionada ao sistema operacional e a segunda relacionada a execução de testes em

aplicativos. As funcionalidades no sistema operacional se restringem as que utilizam

somente comandos ADB e são nativas do Android. Já os testes em aplicativos são a

reprodução de movimentos que imitam a interação humana dentro do aplicativo. O

aplicativo é enviado para o ambiente pelo usuário juntamente com um arquivo

contendo os testes. Esse aplicativo é instalado no smartphone alvo para a medição

energética e então a sequência de testes é iniciada.

57

SIDARTHA AZEVEDO LOBO DE CARVALHO

3.4.1 Configurações do Dispositivo

O ambiente de medição permite a seleção de qual rede de dados o dispositivo em

teste deve utilizar (Wifi, 2G, 3G ou 4G), a frequência de operação de cada núcleo do

processador do dispositivo, quais dispositivos serão testados, quantidade de iterações

e tudo isso feito de forma fácil por uma interface Web. Todas as configurações são

definidas no dispositivo utilizando comandos ADB antes de ser iniciada a sequência de

reprodução dos testes.

Seleção de Rede: O usuário pode escolher qual rede o dispositivo deve utilizar

durante a realização dos testes. As opções disponíveis são: Wifi, 2G, 3G ou 4G. Essa

seleção é feita no dispositivo utilizando comandos ADB para Wifi e simulando eventos

de toque na tela, a partir do comando “input keyevent” da shell do Android para seleção

das redes móveis.

Seleção de frequência do processador: Além da definição das frequências de

operação de cada núcleo do processador individualmente, o usuário também pode

definir quantos núcleos estarão ativos.

Dispositivos para teste: O usuário seleciona quais dispositivos serão testados

de forma interativa, todas as configurações definidas anteriormente são aplicadas a

cada dispositivo selecionado. Após isso, os testes são executados e o consumo

energético mensurado.

Quantidade de iterações: O cálculo do consumo energético não é um valor

exato, é uma aproximação que possui uma pequena margem de erro variando de

método para método. Por isso, faz-se necessário uma análise numérica e estatística

nos valores a fim de obter-se uma aproximação mais correta do valor mensurado. O

ambiente permite que o usuário selecione quantas iterações o teste deve ser repetido e

calcula a média e o desvio padrão dos experimentos além de gráficos que auxiliam na

visualização das informações.

3.4.2 Testes oferecidos pelo ambiente

O ambiente de medição proposto através de sua interface Web permite que o

usuário configure o ambiente, crie a sequência de teste e o inicie. Na Figura 38 pode

ser visto uma sequência de passos que o usuário deve percorrer para executar um

teste no ambiente.

58

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 38 – Passos para execução de um teste.

Primeiramente ele deve escolher qual tipo de teste vai utilizar, se serão os nativos

do sistema operacional ou se vai fazer upload de um aplicativo juntamente com o

arquivo de testes. Deve-se selecionar qual rede de dados o teste vai utilizar (Wifi ou

rede móvel) ou se não quer que faça mudanças no aparelho sobre o tipo de rede a

utilizar. Após isso, a quantidade de iterações deve ser selecionada. Na interface Web, o

valor foi fixado entre 1 e 30, mas não há restrições para inserir uma quantidade maior

de iterações.

Após selecionar a quantidade de iterações, deve-se selecionar em quais

dispositivos irão ocorrer os testes. Ao marcar algum aparelho, novas informações serão

mostradas na tela para a seleção das frequências de operação mínima e máxima de

cada núcleo do processador, logo em seguida deve-se selecionar qual governorr Linux

será utilizado para o chaveamento de frequências. Esse escalonamento será feito pelo

sistema operacional com as restrições de frequência mínima e máxima selecionadas

anteriormente.

59

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 39 – Exemplo de teste criado no ambiente de medição.

Se for escolhido por criar o teste no ambiente, ele oferece uma interface intuitiva e

fácil de manipular para a criação das sequências de ações. Pode ser visto na Figura 39

um conjunto de ações, chamado de sequência de teste. Os retângulos que delimitam

cada ação são ajustáveis pelo mouse. O usuário pode clicar e arrastar cada ação para

as outras posições alterando a sequencia do teste e criando um novo.

Cada funcionalidade disponível no ambiente foi ajustada tentando replicar as

principais ações que o dispositivo utiliza no uso diário. Cada funcionalidade requer

diferentes parâmetros que devem ser fornecidos pelo usuário através da interface Web.

As funcionalidades são:

Realizar Chamada (Make Call): Essa funcionalidade permite a realização de

uma chamada telefônica. Para usar essa funcionalidade, o usuário deve

entrar como parâmetros o número do telefone e a duração da chamada em

segundos.

Enviar E-mail (Send E-mail): Essa funcionalidade envia um e-mail utilizando

o aplicativo do Gmail nativo no Android. É necessário como entrada o e-mail

do destinatário, o título e o corpo da mensagem a ser enviada.

60

SIDARTHA AZEVEDO LOBO DE CARVALHO

Abrir Browser (Open Browser): Permite abrir o navegador padrão do

Android em um site especificado no parâmetro da funcionalidade.

Enviar SMS (Send SMS): Envia uma mensagem de texto. Necessita como

entrada o telefone do destinatário e a mensagem a ser enviada.

Abrir Vídeo YouTube (Open Youtube Video): Essa funcionalidade permite

reproduzir um vídeo no aplicativo YouTube, nativo do Android. Essa

funcionalidade exige como entrada o link do vídeo a ser reproduzido e o

tempo que o vídeo deve ser reproduzido.

Sleep: Essa funcionalidade faz com que o sistema espere o tempo

programado antes de executar o próximo comando. Essa função exige um

valor em segundos para ficar em estado de espera por novos comandos.

Abaixo seguem dois exemplos de uso do ambiente:

Exemplo 1: O usuário deseja realizar um teste sobre as funcionalidades: Fazer

Chamada, Enviar E-mail, Abrir Browser e permanecer com ele aberto por 60 segundos,

enviar uma mensagem de texto SMS e Reproduzir um Vídeo do YouTube por 120

segundos. Ele deve selecionar a funcionalidade, inserir os parâmetros e então clicar no

botão “Add”, feito isso o resultado será parecido com o visto na Figura 39.

Exemplo 2: A necessidade agora é calcular o consumo energético de um

aplicativo Android que fixa a carga de processamento em: 10, 25, 50 e 75%. É

necessário saber qual o consumo energético quando se utiliza somente um núcleo do

processador, quando usamos dois núcleos, três e quatro núcleos em uma combinação

de frequências, da menor para a maior. Este exemplo foi retirado do artigo de Carroll e

Heiser (2013) onde os autores fizeram este experimento para construção de um

modelo de previsão de consumo energético de smartphones.

Após configurados os parâmetros de teste (Exemplo 1 e Exemplo 2):

O usuário deve selecionar as configurações em que o dispositivo irá operar, no

exemplo ele vai utilizar a rede 3G, o governorr OnDemand padrão no Android e utilizar

todos os núcleos do processador do dispositivo com suas frequências mínimas e

máximas definidas nos valores padrões do dispositivo (200MHz à 1400MHz no Galaxy

61

SIDARTHA AZEVEDO LOBO DE CARVALHO

S3 e 384MHz à 1890MHz no Galaxy S4), escolher em quais dispositivos o teste deve

operar e a quantidade de iterações que deseja executar o mesmo teste. Feito isso,

deve-se iniciar o teste, tais etapas são válidas para os dois exemplos apresentados.

Após a conclusão do teste:

Após o encerramento de todas as iterações do experimento, o ambiente fornece

informações e gráficos que auxiliam o usuário a avaliar o consumo energético do

experimento. São oferecidas as seguintes informações:

Gráfico da Corrente e Potência pelo tempo

A partir das coletas de corrente e tensão é calculada a potência instantânea,

esses valores são exibidos em um gráfico para facilitar a identificação de pontos em

que há picos energéticos e, com essa informação, é possível investir em técnicas mais

precisas para diminuir o consumo energético.

Gráficos para cada iteração do teste e também uma única imagem com todos os

gráficos gerados é exibida ao usuário, isso facilita a comparação entre as iterações e

permite que se perceba se houve variações significativas no consumo energético dos

testes. Também é exibido um gráfico com a média de todas as iterações do

experimento.

Na Figura 40 pode ser visto o gráfico gerado da corrente consumida pelo tempo

do experimento de uma única iteração. Na Figura 41 pode ser visto o gráfico da

potência consumida pelo tempo do experimento. É perceptível a semelhança dos

gráficos da potência e da corrente. Isso é justificado, pois a potência é diretamente

proporcional à tensão e a corrente. Como nos aparelhos testados a tensão é constante

(com variações mínimas) os gráficos ficam sujeitos à variação da corrente.

62

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 40 – Gráfico da Corrente pelo Tempo.

Figura 41 – Gráfico da Potência pelo Tempo.

Uma funcionalidade interessante na geração dos resultados é a possibilidade de

visualização de gráficos de diversas iterações lado a lado, permitindo a detecção de

inconsistências em alguma das iterações e possível descarte, isso garante uma

precisão maior na medição energética.

A geração dos gráficos é feita de acordo com a quantidade de iterações

selecionadas pelo usuário antes do início do experimento. Na Figura 42 pode ser visto

um gráfico da potência pelo tempo de 5 (cinco) iterações e na Figura 43 possui 10

(dez) iterações, onde cada gráfico na imagem representa uma iteração que pode ser

consultado individualmente.

63

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 42 – Gráfico da Potência pelo Tempo de cinco iterações.

Figura 43 – Gráfico da Potência pelo Tempo de dez iterações.

Para a geração dos gráficos foi utilizada a biblioteca CHARTS4J (2015), uma

API que fornece a criação de gráficos na plataforma do Google Chart através de uma

interface Java. São passados os parâmetros por uma URL para o servidor do Google e

então é devolvida outra URL com o endereço para o gráfico gerado.

Energia consumida e Desvio padrão

A média da energia consumida é calculada a partir da energia gasta em cada

iteração do experimento. O usuário tem acesso ao consumo energético por iteração e a

uma média aritmética do consumo para auxiliar na identificação de qual técnica é mais

energeticamente eficiente ou qual smartphone ou tablet apresenta menor e maior

consumo energético. O desvio padrão permite que se obtenha consistência nos dados

experimentais. Um baixo desvio padrão indica regularidade, ou seja, um experimento

com um desvio padrão baixo indica que o consumo energético será sempre próximo do

valor médio.

64

SIDARTHA AZEVEDO LOBO DE CARVALHO

Amostras por segundo

As amostras permitem um maior refinamento e aproximação do consumo

energético real. O ambiente proposto permite uma amostragem média de 200 amostras

por segundo. Pode haver variações nesse número. A cada experimento é calculada a

quantidade amostral presente no intervalo de tempo do experimento e então esse valor

pode ser acessado pelo usuário.

Tempo de Execução

Para experimentos com mais de uma iteração, o tempo médio de execução é

exibido ao usuário. Esse tempo é calculado na visão do servidor e não do dispositivo

em teste, isso permite uma maior precisão no controle do tempo e não impede a

continuação do teste caso o dispositivo trave ou se comporte de maneira inesperada.

3.5 Considerações Finais do Capítulo

Este capítulo apresentou o ambiente de medição proposto. Foi explicado a

utilidade e o funcionamento do ambiente. O fluxo de projeto utilizado para a construção

da plataforma e o detalhamento do ambiente de infraestrutura foram demonstrados,

como também o software implementado foi documentado. As funcionalidades foram

detalhadas, mostrando o que o ambiente fornece e um passo a passo explicando o uso

do ambiente em dois exemplos citados na seção 3.4.2.

65

SIDARTHA AZEVEDO LOBO DE CARVALHO

4. RESULTADOS

Este capítulo apresenta as inovações propostas pelo Ambiente de Medição

seguida dos resultados obtidos na execução do ambiente proposto em oito

experimentos diferentes.

4.1 Inovações no Ambiente Proposto

Nesta subseção, são apresentadas as estratégias inovadoras propostas no

ambiente de medição energética MDEM.

Alteração da Frequência de cada núcleo do processador pela Web;

Replicação dos testes em vários dispositivos simultaneamente (alta escalabilidade);

Seleção do tipo de conectividade (Wifi ou Redes de Dados) pela Web;

Seleção individual do Governor por cada dispositivo.

Informações Fornecidas pelo Ambiente de Medição:

Gráfico da potência e corrente por Iteração e média geral;

Consumo energético (média e por iteração);

Desvio padrão das amostras;

Relação de amostras por tempo de medição e

Tempo de Execução do experimento.

4.2 Experimentos Utilizando o Ambiente Proposto

Foram realizados 8 (oito) macro experimentos para demonstrar o uso do ambiente

proposto quais sejam:

- Experimento 1: Navegação Web com 1 núcleo ativo

Este experimento se caracteriza pela execução automática de testes que simulam

acessos a páginas na internet. Foram testadas todas as configurações de frequência

66

SIDARTHA AZEVEDO LOBO DE CARVALHO

do processador dos aparelhos disponíveis na plataforma utilizando-se apenas um

núcleo ativo, e o consumo energético analisado. Cada configuração de frequência

utilizando um núcleo do processador (ex.: Galaxy S3, 900MHz, 1 núcleo) também é

caracterizada como um experimento, pois é um uso distinto do ambiente.

- Experimento 2: Navegação Web com 2 núcleos ativos

Assim como no experimento 1 (um), este experimento analisa o comportamento

energético das frequências do processador utilizando 2 (dois) núcleos ativos e

variações com a mesma frequência nos núcleos ativos. O ambiente permite que seja

feita a escolha de frequências diferentes em cada núcleo. Mas para este experimento

específico, essa análise geraria uma explosão de combinações disponíveis que não

seriam relevantes para as conclusões.

- Experimento 3: Navegação Web com 3 núcleos ativos

Igualmente aos experimentos 1 (um) e 2 (dois), o experimento é repetido para 3

(três) núcleos ativos percorrendo todas as frequências disponíveis nos aparelhos

Samsung Galaxy S3 e Samsung Galay S4, aparelhos disponíveis na plataforma.

- Experimento 4: Navegação Web com 4 núcleos ativos

Para finalizar os experimentos sobre navegação Web, é feito a análise energética

das frequências do processador para 4 (quatro) núcleos ativos. No detalhamento do

experimento na seção posterior são explanados o método e os resultados.

- Experimento 5: Stream de Vídeo com 4 núcleos ativos

Este experimento é caracterizado pela análise energética da reprodução de

vídeos em stream no site do YouTube nos smartphones. Foram utilizadas as

combinações de frequências do processador disponíveis nos aparelhos do ambiente

com 4 (quatro) núcleos ativos no processador. No detalhamento do experimento na

seção posterior são explanados o método e os resultados.

- Experimento 6: Governors Padrões do Android na Navegação Web

Neste experimento, o comportamento energético do experimento de Navegação

Web é analisado com foco nos governors padrões do Android e comparado aos

menores consumos de energia dos experimentos 1 (um), 2 (dois), 3 (três) e 4 (quatro).

O ambiente proposto permite tanto a configuração da frequência de operação do

67

SIDARTHA AZEVEDO LOBO DE CARVALHO

processador do dispositivo, como de qual governor deve executar no sistema

operacional.

- Experimento 7: Governors Padrões do Android no Stream de Vídeo

Este experimento analisa as mesmas variáveis do experimento 6 (seis), porém

para o caso de teste de Stream de Vídeo. Os resultados são analisados e técnicas de

melhoria energética são sugeridas.

- Experimento 8: Análise da Carga de Processamento

Neste experimento foi utilizada outra vertente de funcionalidade do ambiente

proposto, ao invés de utilizar funcionalidades dentro do sistema operacional, um

aplicativo Android foi criado para estressar o processador até uma porcentagem

desejada. Esse aplicativo é então enviado para a plataforma que se encarrega de

instalar e executar o aplicativo em todos os aparelhos. Foi criado um teste na

linguagem do MonkeyTalk e importado para o ambiente juntamente com o aplicativo. O

processador foi estressado em 25%, 50% e 75% de carga.

4.3 Análise dos Resultados

Abaixo segue o resultado dos testes para cada experimento e configurações

testadas.

Experimento 1: Navegação Web com 1 núcleo ativo

Este experimento foi destinado a simular uma ação comum do usuário de um

smartphone: abrir um site. Segundo Alexa (2015) três dos seis sites mais visitados do

mundo são: baidu.com, facebook.com e amazon.com. O experimento consiste em abrir

sequencialmente cada um desses sites e aguardar 20 (vinte) segundos em cada

página. O ambiente proposto nos permite simular esse comportamento através do

comando Open Site e Sleep disponíveis pela interface de criação de testes do

ambiente.

Sequência de ações no ambiente:

Tabela 7 – Sequência de passos para o experimento Navegação Web

Comando 1 OpenSite http://www.baidu.com

Comando 2 Sleep (20)

Comando 3 OpenSite http://www.facebook.com

68

SIDARTHA AZEVEDO LOBO DE CARVALHO

Comando 4 Sleep (20)

Comando 5 OpenSite http://www.amazon.com

Comando 6 Sleep (20)

Para os comandos mostrados acima, foram calculados os valores de energia que

o dispositivo consumiu para executar as ações. Foi selecionado o uso da rede para Wifi

e cada experimento foi executado 30 vezes a fim de obter uma consistência maior nos

resultados. Foram utilizados os dois dispositivos disponíveis atualmente na plataforma:

o smartphone Samsung Galaxy S3 e Samsung Galaxy S4.

O objetivo deste experimento é chegar à conclusão de qual a frequência de

operação ótima do processador e a quantidade de núcleos ativos para alcançar uma

eficiência energética sem a perda de desempenho. A frequência ótima é definida como

sendo a que apresenta menor consumo energético sem perda ou com perda

insignificante de desempenho.

Para cumprir o objetivo, é preciso saber qual o consumo energético de cada

combinação de configurações possíveis, ou caso não seja possível, fazer a seleção de

tendências para diminuir a quantidade de testes, tornando-o um experimento inteligente

ao invés de uma busca exaustiva. A variação é feita mudando a quantidade de núcleos

ativos e a frequência de operação de cada núcleo do processador. Neste experimento

é contabilizado o consumo energético e o tempo de execução, sendo que o tempo

pode variar, pois há processamento para abrir as aplicações e realizar o carregamento

da página Web.

Foram feitas as seguintes combinações de núcleos ativos e frequências:

primeiramente o teste foi feito para somente um núcleo ativo alternando em todas as

frequências, de 400MHz a 1400MHz no Galaxy S3 e de 486MHz a 1890MHz no Galaxy

S4. Depois com dois núcleos ativos (Experimento 2), com três núcleos ativos

(Experimento 3) e com quatro núcleos ativos (Experimento 4). A frequência de 300MHz

no Galaxy S3 foi descartada dos testes por apresentar um comportamento instável no

aparelho e ocasionar travamentos. O mesmo fato aconteceu com a frequência de

384Mhz no Galaxy S4 que também foi descartada dos experimentos.

O gráfico da Figura 44 demonstra os resultados obtidos neste experimento, nele

são exibidos os valores do consumo energético em Joules e o tempo de execução de

cada experimento na frequência específica. No eixo vertical do gráfico estão os valores

do consumo de energia em Joules enquanto no eixo horizontal estão as combinações

69

SIDARTHA AZEVEDO LOBO DE CARVALHO

de frequências disponíveis no aparelho Samsung Galaxy S3, com exceção das

frequências de 300MHz e 400MHz. Essas frequências apresentaram instabilidade no

teste, ocasionando travamentos por conta da sobrecarga do processador durante o

teste.

Pode-se perceber no gráfico da Figura 44 que os menores valores de energia

consumida pertencem as frequências de 600MHz, 700MHz e 800MHz, com 116,3J,

115,8J e 116,6J respectivamente. O tempo de execução nessas três frequências é

razoavelmente diferente, tendo 11 (onze) segundos de diferença do maior para o

menor, enquanto o consumo energético é muito próximo, chegando a ser equivalente,

desde que se trata de uma aproximação estatística.

O mais óbvio é que a menor frequência tivesse um consumo energético menor,

mas como foi discutido nas seções anteriores, isso nem sempre é verdadeiro. O tempo

de execução vai diminuindo com o incremento da frequência, enquanto o consumo

energético aumentando. O objetivo da eficiência energética é adequar o dispositivo

para que ele opere na frequência mais econômica, com variação mínima no tempo de

execução.

Figura 44 – Gráfico do Consumo Energético com um núcleo ativo no smartphone

Samsung Galaxy S3 (Experimento Navegação Web).

No gráfico da Figura 45, têm-se os valores estatísticos coletados dos

experimentos de Navegação Web com um núcleo ativo para o Samsung Galaxy S4. As

frequências de 384MHz, 486MHz e 594MHZ foram descartadas por apresentarem

instabilidade no aparelho e um consumo energético muito elevado, levando a possível

erro no teste.

400MHz

500MHz

600MHz

700MHz

800MHz

900MHz

1000MHz

1100MHz

1200MHz

1300MHz

1400MHz

Consumo (J) 156.70 143.44 116.37 115.80 116.66 119.43 126.26 133.71 133.78 144.12 156.18

Tempo (s) 144.77 128.60 116.30 110.43 105.60 101.77 98.83 96.20 89.07 88.53 92.10

0.00

20.00

40.00

60.00

80.00

100.00

120.00

140.00

160.00

180.00

70

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 45 – Gráfico do Consumo Energético com um núcleo ativo no smartphone

Samsung Galaxy S4 (Experimento Navegação Web).

Ainda sobre o gráfico da Figura 45, temos os valores de energia em Joules no

eixo vertical e as frequências testadas no eixo horizontal, seguidos do tempo de

execução em segundos de cada experimento. É perceptível o tempo de execução

quase constante nos experimentos, essa divergência com o experimento que utiliza o

Samsung Galaxy S3 pode ser justificada pela arquitetura superior do aparelho Galaxy

S4. Também pode ser notado que as frequências extremas não representam eficiência

energética, as do meio possuem um consumo menor e um tempo de execução

estatisticamente igual, mas continua a tendência a menor tempo de execução para

maior frequência.

Experimento 2: Navegação Web com 2 núcleos ativos

Este experimento foi destinado a simular uma ação comum do usuário de um

smartphone, abrir um site. Assim como no Experimento 1 (um), este experimento

também usará a sequência de comandos da Tabela 7, mas com a diferença que as

frequências do processador serão combinadas com dois núcleos ativos e os dois

operando na mesma frequência.

Abaixo segue o resultado dos experimentos expressos em forma de um gráfico, o

eixo vertical e horizontal representam o consumo energético em Joules e as

frequências do dispositivo respectivamente.

702MHz

810MHz

918MHz

1026MHz

1134MHz

1242MHz

1350MHz

1458MHz

1566MHz

1674MHz

1782MHz

1890MHz

Consumo (J) 161.92 160.30 161.84 153.36 153.50 153.59 153.94 155.13 156.17 156.13 160.88 169.12

Tempo (s) 103.00 102.87 102.00 100.77 99.93 98.40 96.47 95.13 94.33 93.07 92.77 92.23

0.00

20.00

40.00

60.00

80.00

100.00

120.00

140.00

160.00

180.00

71

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 46 – Gráfico do Consumo Energético com dois núcleos ativos no smartphone

Samsung Galaxy S3 (Experimento Navegação Web).

O gráfico da Figura 46 apresenta os resultados para o dispositivo Samsung

Galaxy S3. Pode-se perceber que, como no experimento 1 (um), a frequência que

apresenta menor consumo energético não é nenhuma das extremidades, nem a menor

nem a maior. A frequência de 1100MHz é a mais indicada para prover eficiência

energética no contexto do experimento, ou seja, utilizando dois núcleos ativos e usando

a funcionalidade Navegação Web.

Como era previsto, quanto maior a frequência do processador, menor é o tempo

necessário para executar o experimento. Quanto menor a frequência, maior o tempo de

execução.

No gráfico da Figura 47 são apresentados os resultados do experimento para o

smartphone Samsung Galaxy S4. Neste experimento pode-se perceber que o menor

consumo energético se deu utilizando as frequências de 810MHz, 918MHz e 1026MHz.

O menor tempo de execução está associado a maior frequência, a de 1890MHz. As

frequências recomendadas para o menor consumo energético são: 810MHz, 918MHz e

1026MHz. Para uma execução mais rápida é indicado a frequência de 1890MHz. A

frequência de 1458MHz também é recomendada para balancear essas variáveis de

consumo energético e tempo de execução, ela apresentou um consumo razoável

considerando os demais e um tempo de execução intermediário.

400MHz

500MHz

600MHz

700MHz

800MHz

900MHz

1000MHz

1100MHz

1200MHz

1300MHz

1400MHz

Consumo (J) 136.79 134.98 136.23 134.65 135.52 139.04 137.69 128.57 134.91 147.93 176.55

Tempo (s) 102.00 95.80 92.00 88.00 86.40 84.03 82.87 81.87 80.77 79.37 78.40

0.0020.0040.0060.0080.00

100.00120.00140.00160.00180.00200.00

72

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 47 – Gráfico do Consumo Energético com dois núcleos ativos no smartphone

Samsung Galaxy S4 (Experimento Navegação Web).

Experimento 3: Navegação Web com 3 núcleos ativos

Este experimento é a complementação dos dois anteriores, Experimento 1 (um) e

Experimento 2 (dois). Nestes serão examinados os resultados energéticos e o tempo

de execução para o experimento da Tabela 7 com três núcleos ativos operando nas

frequências disponíveis nos aparelhos. Os três núcleos operam na mesma frequência

no experimento.

No gráfico da Figura 48 são expostos os dados coletados do experimento para o

Samsung Galaxy S3. Segundo os dados do experimento, a frequência com menor

média de consumo energético é a de 500MHz, possuindo 132,6 Joules e um tempo de

execução de 95 segundos. Também é perceptível a grande diferença no tempo de

execução comparando essa frequência com a máxima, de 1400MHz, sendo uma

diferença de 16,6 segundos.

Para alcançar o menor consumo energético, a mais indicada é a de 500MHz.

Porém, a frequência de 800MHz apresenta um aumento do consumo energético

pequeno e uma diminuição do tempo de execução relevante. Para alcançar o menor

consumo tempo de execução, a mais indicada é a de 1400MHz.

702MHz

810MHz

918MHz

1026MHz

1134MHz

1242MHz

1350MHz

1458MHz

1566MHz

1674MHz

1782MHz

1890MHz

Consumo (J) 152.59 147.44 148.52 150.08 162.14 161.24 155.22 157.59 165.94 176.52 181.68 182.84

Tempo (s) 102.60 102.20 98.00 95.80 88.20 87.00 86.87 86.64 88.64 83.75 81.67 78.67

0.0020.0040.0060.0080.00

100.00120.00140.00160.00180.00200.00

73

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 48 – Gráfico do Consumo Energético com três núcleos ativos no smartphone

Samsung Galaxy S3 (Experimento Navegação Web).

Os resultados do gráfico da Figura 49 têm os valores coletados para o

experimento utilizando o aparelho Samsung Galaxy S4. A frequência mais indicada

para prover eficiência energética é a de 810MHz por apresentar um consumo de 142J,

o mais baixo de todos. Como o esperado, o tempo de execução vai diminuindo

proporcionalmente ao aumento da frequência do processador, com exceção da

frequência mais alta, a de 1890MHz. Esse comportamento nos permite visualizar uma

tendência para a não utilização das frequências extremas, como 400MHz e 1400MHz

neste caso, pois apresentam os piores resultados quando avaliado o balanceamento do

consumo energético e do tempo de execução.

Figura 49 – Gráfico do Consumo Energético com três núcleos ativos no smartphone

Samsung Galaxy S4 (Experimento Navegação Web).

400MHz

500MHz

600MHz

700MHz

800MHz

900MHz

1000MHz

1100MHz

1200MHz

1300MHz

1400MHz

Consumo (J) 139.48 132.67 145.51 139.87 140.51 146.65 152.00 152.80 159.30 168.39 165.87

Tempo (s) 101.20 95.00 90.20 87.40 84.80 83.00 83.00 81.60 80.20 79.80 78.40

0.00

20.00

40.00

60.00

80.00

100.00

120.00

140.00

160.00

180.00

Jou

les

486MHz

594MHz

702MHz

810MHz

918MHz

1026MHz

1134MHz

1242MHz

1350MHz

1458MHz

1566MHz

1674MHz

1782MHz

1890MHz

Consumo (J) 177.2 169.9 160.2 142.0 149.4 149.8 161.0 163.9 168.9 164.4 159.9 162.4 155.2 184.5

Tempo (s) 108.1 103.2 99.80 97.40 87.40 86.60 81.60 81.20 78.20 78.20 76.40 75.20 74.00 81.20

0.00

20.00

40.00

60.00

80.00

100.00

120.00

140.00

160.00

180.00

200.00

Jou

les

74

SIDARTHA AZEVEDO LOBO DE CARVALHO

O consumo energético também não é diretamente proporcional à frequência

utilizada. Algumas frequências, mesmo mais altas, podem apresentar consumos

energéticos menores, isso pode ser provado nos experimentos de Carroll e Weiser

(2013).

O trabalho mencionado realiza experimentos energéticos em um Samsung

Galaxy S III e em um kit de desenvolvimento para tablets, o MDP/T. Foram realizados

experimentos de stress do processador nas duas plataformas citadas. Ficou constatado

que as frequência de 800MHz a 1000MHz no MDP e de 600MHz a 1000MHz no

Galaxy S3 são as que possuem menor consumo energético. Essa informação contrasta

com o esperado, previa-se ter o menor consumo energético para a menor frequência.

Essa informação foi comprovada para testes com um até quatro núcleos ativos no

processador e foi verdadeira para todos os casos. O incremento de núcleos destacou

mais ainda a particularidade mencionada.

Experimento 4: Navegação Web com 4 núcleos ativos

Para finalizar esta categoria de experimentos que utilizam Navegação Web como

caso de teste, será analisado o consumo energético das frequências disponíveis nos

aparelhos utilizando quatro núcleos ativos, todos com a mesma frequência.

No gráfico da Figura 50 estão os resultados coletados para o consumo energético

e tempo de execução do experimento Navegação Web com quatro núcleos ativos no

smartphone Samsung Galaxy S3. O consumo se mostrou menor nas frequências de

500MHz, 600MHz, 700MHz e 800MHz com valores quase iguais. O tempo de

execução varia em 9,4 segundos do mais rápido para o mais lento, sendo a frequência

mais indicada para prover eficiência energética a de 800MHz, por possuir o menor

consumo energético.

O tempo de execução diminui regularmente com o incremento da frequência,

enquanto o consumo energético apresenta melhores resultados em frequências

intermediárias e não nas extremidades.

75

SIDARTHA AZEVEDO LOBO DE CARVALHO

Figura 50 – Gráfico do Consumo Energético com quatro núcleos ativos no smartphone

Samsung Galaxy S3 (Experimento Navegação Web).

No gráfico da Figura 51 são apresentados os valores coletados no experimento

para o Samsung Galaxy S4. A frequência que apresentou menor consumo energético

foi a de 918MHz com um tempo de execução em 89,6 segundos. Mais uma vez o

tempo de execução decrementa com o incremento da frequência de operação do

processador e o consumo energético é variável não seguindo uma sequência

esperada, onde a menor frequência deveria acarretar menor consumo energético.

O tempo de execução do teste foi muito próximo para a maioria dos

experimentos. Isso pode ser justificado porque o teste está sendo executado com

quatro núcleos ativos e o experimento Navegação Web não necessita de muito

processamento. Por não haver a necessidade de processamento pesado, as

frequências mais baixas operando em mais núcleos executam o trabalho proposto em

um tempo muito parecido com o das frequências mais altas.

Figura 51 – Gráfico do Consumo Energético com quatro núcleos ativos no smartphone

Samsung Galaxy S4 (Experimento Navegação Web).

400MHz

500MHz

600MHz

700MHz

800MHz

900MHz

1000MHz

1100MHz

1200MHz

1300MHz

1400MHz

Consumo (J) 153.55 140.56 140.99 140.68 139.40 142.22 142.56 156.86 162.85 170.71 183.34

Tempo (s) 101.10 94.20 90.20 87.90 84.80 83.20 81.40 81.30 80.00 78.70 78.60

0.00

20.00

40.00

60.00

80.00

100.00

120.00

140.00

160.00

180.00

200.00

Jou

les

486MHz

594MHz

702MHz

810MHz

918MHz

1026MHz

1134MHz

1242MHz

1350MHz

1458MHz

1566MHz

1674MHz

1782MHz

1890MHz

Consumo (J) 187.3 176.6 177.3 179.1 171.3 175.9 183.7 185.7 185.6 182.8 186.1 191.5 198.5 207.2

Tempo (s) 112.4 104.0 100.3 97.40 89.60 91.20 84.10 86.00 84.80 82.40 81.80 79.00 77.67 76.10

0.00

50.00

100.00

150.00

200.00

250.00

Jou

les

76

SIDARTHA AZEVEDO LOBO DE CARVALHO

Para finalizar essa sequência de experimentos com foco em Navegação Web,

ficou constatado que as frequências de operação alteram o consumo energético do

dispositivo e o tempo de execução do aplicativo. Ficou provado que nem sempre a

menor frequência apresenta menor consumo energético e que não se devem usar as

frequências extremas quando se tem necessidade de eficiência energética.

As frequências indicadas para prover eficiência energética em um cenário de

Navegação Web ficaram em 500MHz e 1100MHz no Samsung Galaxy S3 e de

594MHz a 1674MHz no Samsung Galaxy S4 independente da quantidade de núcleos

utilizados.

Esses resultados são importantes para auxiliar na construção de novos

governors. Com experimentos em diversos cenários é possível criar um algoritmo mais

preciso para ser adicionado ao governor. Essa inteligência pode ser alcançada através

da identificação do cenário do usuário no smartphone e então aplicar a frequência de

operação mais indicada, tanto para prover eficiência energética como desempenho.

Um governor que faça a escolha da frequência ideal deverá ser melhor que os

disponíveis atualmente. Quanto mais cenários forem analisados, mais preciso será o

governor. Os governors atuais fazem estimativas genéricas, dentre eles temos: uso de

processador, memória e dispositivos ativos.

Experimento 5: Stream de Vídeo com 4 núcleos ativos

Reprodução de vídeos pela Web tem se tornado uma ação comum no uso dos

smartphones e isso impulsionou a necessidade de prover melhorias energéticas neste

tipo de aplicação. Neste experimento buscou-se a melhor configuração para a

eficiência energética na reprodução de vídeos utilizando conexão Wifi. Para simular o

uso desta funcionalidade, foi utilizado o comando Open YouTube Video juntamente

com o comando Sleep, o primeiro para abrir o vídeo e o segundo para simular a

permanência do usuário assistindo ao vídeo. Foi utilizado o vídeo mais visto do site

YouTube até a presente data da escrita deste documento: clipe musical Gangnam Style

do Koreano Psy, disponível no site do YouTube. Após a abertura do vídeo, aguarda-se

120 segundos e então o consumo energético da sequência de reprodução é calculado.

Neste experimento o tempo não é contabilizado, pois é igual para todos os

experimentos, já que o tempo de reprodução de um vídeo é constante.

Sequência de ações no ambiente:

77

SIDARTHA AZEVEDO LOBO DE CARVALHO

Tabela 8 - Sequência de passos para o experimento Stream de Vídeo

Comando 1 Open YouTube Video

https://www.youtube.com/watch?v=9bZkp7q19f0

Comando 2 Sleep (120)

No gráfico da Figura 52 estão os dados coletados durante o experimento Stream

de Vídeo para o Samsung Galaxy S3. A frequência com menor consumo energético é a

de 700MHz, mais uma vez comprovando a hipótese que as frequências extremas não

são recomendadas para prover eficiência energética.

É perceptível que a frequência de 700MHz e as próximas a ela são as mais

energeticamente eficientes. Essa informação pode ser utilizada para gerar algoritmos

de escalonamento inteligentes e serem incorporados na produção de novos governors

para o sistema operacional Android.

As frequências mais baixas como 400MHz e 500MHz apresentam um consumo

elevado comparado com as frequências próximas mais altas. Para executar um

trabalho computacional é necessário executar por mais tempo em frequências mais

baixas e assim consumindo mais energia, enquanto as frequências mais altas

consomem mais energia e executam em menos tempo.

Figura 52 – Gráfico do Consumo Energético com quatro núcleos ativos no smartphone

Samsung Galaxy S3 (Experimento Stream de Vídeo).

No gráfico da Figura 53 são apresentados os dados para o experimento de

Stream de Vídeo para o smartphone Samsung Galaxy S4. Novamente é analisado o

consumo energético das diferentes frequências de operação do processador.

Novamente os experimentos mostram o consumo mínimo sendo com a frequência de

400MHz

500MHz

600MHz

700MHz

800MHz

900MHz

1000MHz

1100MHz

1200MHz

1300MHz

1400MHz

Consumo (J) 196.16 200.39 182.29 179.57 183.47 187.07 190.39 195.51 199.92 220.41 229.73

0.00

50.00

100.00

150.00

200.00

250.00

Jou

les

78

SIDARTHA AZEVEDO LOBO DE CARVALHO

702MHz e as próximas a ela também apresentam consumo inferior quando

comparadas com as mais distantes.

Figura 53 – Gráfico do Consumo Energético com quatro núcleos ativos no smartphone

Samsung Galaxy S4 (Experimento Stream de Vídeo).

Com esses resultados, pode-se indicar que as frequências próximas de 700MHz

são as mais energeticamente eficientes para o uso de Stream de Vídeo. Esse resultado

é verdade tanto para o smartphone Samsung Galaxy S3 como para o Samsung Galaxy

S4.

Diante dos resultados expostos nos experimentos 1 (um) ao 5 (cinco), é clara a

aproximação do consumo energético das frequências mais econômicas para as

combinações de 1 (um), 2 (dois), 3 (três) ou 4 (quatro) núcleos ativos, porém variando

significativamente em tempo de execução, quando analisado.

Feito os experimentos, chegou-se a conclusão que o número máximo de núcleos

ativos no processador deve ser utilizado quando uma aplicação está em execução para

obter-se eficiência energética sem perda de desempenho. A partir deste fato, que foi

observado nos experimentos, os próximos foram conduzidos com o número máximo de

núcleos ativos e alternando as frequências de operação. Uma análise mais detalhada

sobre este fato pode ser visto no trabalho de Carroll e Heiser (2013).

Experimento 6: Governors Padrões do Android na Navegação Web

A partir dos resultados dos experimentos, foi possível perceber um crescimento

contínuo do consumo energético com o aumento das frequências do processador e

com a quantidade crescente de núcleos ativos. Utilizar frequências mais altas e a

486MHz

594MHz

702MHz

810MHz

918MHz

1026MHz

1134MHz

1242MHz

1350MHz

1458MHz

1566MHz

1674MHz

1782MHz

1890MHz

Consumo (J) 243.4 239.3 229.9 233.6 234.4 241.3 284.1 288.0 285.6 308.4 312.5 324.4 340.5 368.1

0.00

50.00

100.00

150.00

200.00

250.00

300.00

350.00

400.00

Jou

les

79

SIDARTHA AZEVEDO LOBO DE CARVALHO

quantidade crescente de núcleos ativos implica em menor tempo de execução. Para

este experimento que não requer muito processamento, manter a frequência de

operação em um nível alto e constante de operação, ocasionou uma perda da

eficiência energética, pois o teste fixou a frequência e não permitiu o chaveamento para

frequências mais baixas quando com pouca carga de processamento.

Neste experimento serão analisados os consumos energéticos dos governors

padrões do Android para o smartphone Samsung Galaxy S3 e Samsung Galaxy S4.

Nos experimentos anteriores foi possível estabelecer uma frequência ideal que tenderia

a ter um menor consumo energético. Os resultados são discutidos abaixo.

Figura 54 – Gráfico do Consumo Energético dos Governors padrões do Android e do

algoritmo da frequência ideal no smartphone Samsung Galaxy S3 (Experimento Navegação Web).

Pode ser visto no gráfico da Figura 54 referente ao experimento com o

smartphone Samsung Galaxy S3, utilizando quatro núcleos na frequência máxima foi

alcançado o menor tempo de execução e também o maior consumo energético. No

gráfico, 1C-700Mhz significa um núcleo (core) ativo operando na frequência de

700MHz, o mesmo se aplica para o 4C-1400MHz.

Os governors realizam chaveamentos de frequências baseados na demanda por

processamento e com isso conseguem obter um consumo energético menor que o 4C-

1400MHz, porém com um tempo maior de execução.

A partir dos dados coletados é possível criar algoritmos mais inteligentes para

serem incorporados aos governors. Ao invés de chavear para frequências mínimas e

máximas, e utilizando em muitos casos somente a carga do processador, pode ser feito

OnDemand Performance Pegasus Q 1C-700MHz 4C-1400MHz

Consumo (J) 144.98 158.82 142.88 115.80 183.34

Tempo (s) 89.07 80.03 87.83 110.43 78.60

0.00

20.00

40.00

60.00

80.00

100.00

120.00

140.00

160.00

180.00

200.00

80

SIDARTHA AZEVEDO LOBO DE CARVALHO

o chaveamento da frequência máxima para uma frequência ideal e com perda mínima

de desempenho.

As abordagens que não utilizam chaveamentos (1C-700MHz e 4C-1400MHZ)

foram implementadas como um governor Android e comparadas com os nativos do

sistema operacional, que são: OnDemand, Performance, PegasusQ no Galaxy S3 e

Interactive no Galaxy S4. O governor PegasusQ deixou de ser utilizado a partir do

Galaxy S3, todas as versões superiores contam com o governor Interactive como o

padrão. O Interactive também é utilizado em diversos smartphones Motorola.

Figura 55 – Gráfico do Consumo Energético dos Governors padrões do Android e do

algoritmo da frequência ideal no smartphone Samsung Galaxy S4 (Experimento Navegação Web).

No gráfico da Figura 55 referente ao aparelho Samsung Galaxy S4, o menor

tempo não coincidiu com o esperado que corresponde a utilizar o máximo de núcleos

na frequência máxima (4C-1890MHz), mas é um valor muito próximo, como foram

utilizadas médias, pode ter havido ruído nos experimentos e gerado essa pequena

diferença.

Os valores presentes no gráfico correspondem aos extremos, o menor consumo e

o maior consumo, o menor tempo de execução e o maior e a comparação com os

governors padrões.

A configuração 3C-1782MHz foi a que apresentou o menor tempo de execução,

mas como pode ser observado no perfil performance, que é o funcionamento sempre

em modo otimizado, e na configuração 4C-1890MHz, que os tempos de execução são

bem próximos, o que abre a possibilidade de uma possível pequena falha nos

OnDemand Performance Interactive 3C-810MHz 3C-1782MHz4C-1890

MHz

Consumo (J) 133.26 132.76 125.59 142.00 155.28 207.28

Tempo (s) 82.87 76.27 79.63 97.40 74.00 76.10

0.00

50.00

100.00

150.00

200.00

250.00

Jou

les

81

SIDARTHA AZEVEDO LOBO DE CARVALHO

experimentos ocasionando esse tempo menor para a configuração 3C-1782Mhz, pois

não se justifica por qualquer outra maneira conhecida.

Para a ação navegação Web em análise, ficou constatado que utilizar a

frequência ótima sem chaveamentos não é uma boa opção para prover eficiência

energética. Também ficou comprovado que ações que não exigem muito

processamento devem ser utilizadas com um algoritmo que realize chaveamentos para

a frequência mínima quando em modo mínimo de processamento.

Experimento 7: Governors Padrões do Android no Stream de Vídeo

Neste experimento os valores energéticos dos governors do Android são

comparados juntamente com a frequência com menor consumo energético obtida nos

experimentos anteriores.

No gráfico da Figura 56 estão os valores energéticos para o smartphone

Samsung Galaxy S3. O eixo vertical indica o consumo energético enquanto o horizontal

são os governors ou a frequência fixa. Neste experimento o tempo também não é

contabilizado, pois se trata de reprodução por um determinado tempo de um vídeo, ou

seja, o tempo é igual para todos.

Figura 56 – Gráfico do Consumo Energético dos Governors padrões do Android e do

algoritmo da frequência ideal no smartphone Samsung Galaxy S3 (Experimento Stream de Vídeo).

Pode ser percebido no gráfico da Figura 56 que o menor consumo energético

pertence à frequência fixa de 700MHz com quatro núcleos ativos. Os governors

PegasusQ e Performance foram os que apresentaram consumos energéticos mais

Ondemand Performance PegasusQ 4C-700MHz

Consumo (J) 240.69 199.63 201.32 179.57

0.00

50.00

100.00

150.00

200.00

250.00

300.00

Jou

les

82

SIDARTHA AZEVEDO LOBO DE CARVALHO

próximo do mínimo, e valores quase iguais entre si. Essa aproximação desses dois

governors se dá pela constante necessidade de processamento em funcionalidades

como o Stream de Vídeo, enquanto o Ondemand ficou com um consumo mais elevado.

Isso pode se justificar pela alta taxa de chaveamentos de frequências que acontecem

no dispositivo com o governor operando.

Figura 57 – Gráfico do Consumo Energético dos Governors padrões do Android e do algoritmo da frequência ideal no smartphone Samsung Galaxy S4 (Experimento Stream

de Vídeo).

No gráfico da Figura 57 estão os valores coletados para os experimentos

energéticos de Stream de Vídeo com os principais governors do aparelho Samsung

Galaxy S4. Novamente a frequência fixa de 4C-700MHz obteve o menor consumo

energético comparado aos demais governors.

Os resultados energéticos dos demais governors saíram como o esperado, o

Interactive que é o padrão no Samsung Galaxy S4 obteve o segundo menor valor de

consumo enquanto o Ondemand estava em terceiro lugar e o Performance foi o menos

energeticamente eficiente.

Pode-se perceber nos experimentos 5 (cinco) e 7 (sete) que a frequência ideal

para prover eficiência energética para a funcionalidade Stream de Vídeo é a de

700MHz com o número máximo de núcleos ativos, tanto para o aparelho Samsung

Galaxy S3 quanto para o Samsung Galaxy S4. Provavelmente essa característica pode

ser estendida para os demais smartphones, mas serão necessários testes nos

dispositivos alvos para comprovar a hipótese.

Ondemand Performance Interactive 4C-700MHz

Consumo (J) 237.65 275.81 239.46 229.96

200.00

210.00

220.00

230.00

240.00

250.00

260.00

270.00

280.00

Jou

les

83

SIDARTHA AZEVEDO LOBO DE CARVALHO

Experimento 8: Análise da Carga de Processamento

Neste último experimento, é testada a outra vertente de funcionamento do

ambiente proposto, a avaliação energética de um aplicativo Android criado por

terceiros. Ou seja, um aplicativo que não fazendo parte do conjunto de aplicativos

padrões do sistema operacional é testado.

O aplicativo consiste em criar threads que realizam operações matemáticas para

sobrecarregar o processador até o nível desejado. Os níveis desejados nos

experimentos são: 25%, 50% e 75% de carga no processador. Inicialmente a

porcentagem de 100% foi testada, porém foi retirada dos experimentos por ocasionar

travamentos nos aparelhos e impossibilitar o teste. A função para calcular o nível de

carga foi implementada no aplicativo juntamente com uma interface gráfico para

permitir a iteração automática do teste. O aplicativo continua criando threads até que o

nível de carga desejada seja alcançado e o mantém destruindo ou criando novas

threads.

Na Tabela 9 está um exemplo dos comandos utilizados para realizar a

automatização deste experimento pela plataforma proposta. O primeiro comando é

responsável por selecionar o campo para inserção da porcentagem de carga do

processador que se deseja alcançar. No comando 2, o valor é inserido no campo e

então o botão para começar o processo de carga é pressionado, o último comando se

assemelha ao Sleep utilizado nos experimentos anteriores, é um tempo de espera para

que a carga de processador seja alcançada e o aplicativo não encerre o teste.

Tabela 9 – Comandos MonkeyTalk (Experimento Carga do Processador)

Comando 1 Input et_cpuStressPercentage tap

Comando 2 Input et_cpuStressPercentage enterText 25.0

Comando 3 Button Start tap

Comando 4 Input et_cpuStressPercentage tap %thinktime=600000

O experimento foi realizado para a combinação de 1 (um) à 4 (quatro) núcleos

ativos do processador com a frequência máxima de operação, sendo a mesma para

todos os núcleos ativos. No gráfico da Figura 58, podem-se observar os consumos

energéticos para as combinações de núcleos ativos e a porcentagem de carga de

processador. O eixo vertical apresenta os valores de corrente consumida em

miliampéres enquanto o eixo horizontal representa os núcleos ativos e a porcentagem

84

SIDARTHA AZEVEDO LOBO DE CARVALHO

de carga do processador. Neste experimento não foi levado em conta o tempo em

consideração, pois o consumo energético é regular durante o tempo. Como foi visto

anteriormente, a energia consumida é proporcional à tensão e a corrente consumida

pelo dispositivo, como foi utilizada uma tensão constante de 4.8V para o Samsung

Galaxy S3 e de 4.9V para o Samsung Galaxy S4, a potência consumida é diretamente

proporcional a corrente.

Como o esperado, os consumos energéticos são maiores com o incremento da

porcentagem de carga do processador e também aumentam com o incremento da

quantidade de núcleos ativos.

Figura 58 – Gráfico da Corrente pela Carga de Processamento em variados núcleos no

smartphone Samsung Galaxy S4 (Experimento Carga de Processamento).

Realizando uma proporção simples, dividindo o valor da corrente pela

porcentagem de carga, chega-se a corrente necessária para 1% de carga no

processador, sendo 11,6 para 25%, 6,3 para 50% e 4,6 para 75% utilizando 1 (um)

núcleo ativo. Essa proporção de maior consumo energético para baixas carga de

processamento se repete nos experimentos para 2 (dois), 3 (três) e 4 (quatro) núcleos.

Com esses dados é possível afirmar que é mais energeticamente eficiente utilizar

cargas de processamento maiores e a quantidade máxima de núcleos ativos para

aplicativos ou funcionalidades cpu-bound.

Deve haver uma análise mais aprofundada para verificar qual frequência de

operação é mais eficiente com a combinação dos núcleos ativos. Isso não é o foco

deste trabalho, mas permite demonstrar que o ambiente possibilita que seja feita essa

análise de forma parcialmente automatizada, assim como foi feito no trabalho de Carroll

e Heiser (2013) de forma manual.

1 Núcleo 2 Núcleos 3 Núcleos 4 Núcleos

25% 290 380 500 640

50% 315 450 620 750

75% 350 510 690 900

0

100

200

300

400

500

600

700

800

900

1000

Co

rre

nte

(m

A)

85

SIDARTHA AZEVEDO LOBO DE CARVALHO

Para finalizar este trabalho, na Tabela 10 é exibido um resumo das

funcionalidades que o ambiente proposto oferece comparado aos demais trabalhos

encontrados na literatura consultada. As funcionalidades analisadas são descritas em

termos de vantagens, ou seja, o que o sistema proposto oferece que não é permitido

por pelo menos um dos demais.

Este trabalho fornece uma análise energética dos testes executados, entende-se

análise energética como todo o processo de enriquecimento dos dados coletados e

geração de meios que permitam a análise de forma simplificada. O trabalho proposto

também permite o controle dos núcleos do processador do dispositivo em teste,

característica relevante para o estudo aprofundado do comportamento energético do

processador em diferentes cenários, adicionalmente, também é possível configurar a

frequência de cada núcleo individualmente, o que permite uma granulação ainda mais

fina na análise energética.

A seleção de governors também é uma característica particular a este ambiente,

eles atuam no gerenciamento das frequências do processador para escolher a mais

indicada dependendo da quantidade de processamento desejado.

Alguns trabalhos da literatura possuem as características de multidispositivos,

multiplataforma e multilinguagem. Elas são bastante úteis para prover escalabilidade ao

sistema e permitir uma abrangência maior dos cenários de teste. Esses mesmos

trabalhos possuem testes em aplicativos, mas nenhum permite testes de

funcionalidades nativas do sistema operacional, como é permitido pelo ambiente deste

trabalho.

86

SIDARTHA AZEVEDO LOBO DE CARVALHO

Tabela 10 – Tabela comparativa do ambiente proposto com os demais trabalhos da literatura

Vantagens Ambiente

Proposto

Power

Monitor Energino Xamarin APPThwack

Monkey

Mobile

Cloud

Perfecto

Mobile

Permite Análise

Energética Sim Não Não Não Não Não Não

Controle de

Núcleos Ativos Sim Não Não Não Não Não Não

Configuração da

Frequência

Individual do

Núcleo do

Processador

Sim Não Não Não Não Não Não

Configuração de

Governors Sim Não Não Não Não Não Não

Testes em

Aplicativos Sim Não Não Sim Sim Sim Sim

Testes em

Funcionalidades

do Sistema

Operacional

Sim Não Não Não Não Não Não

Acesso à

Multidispositivos Sim Não Não Sim Sim Sim Sim

Multiplataforma Sim Não Não Sim Sim Sim Sim

Multilinguagem Sim Não Não Sim Sim Sim Sim

Interface Web Sim Não Não Sim Sim Sim Sim

87

SIDARTHA AZEVEDO LOBO DE CARVALHO

5. CONCLUSÕES E TRABALHOS FUTUROS

O crescimento dos smartphones e sistemas operacionais mobile destacaram

ainda mais o problema da fragmentação de software e dispositivos. Esses smartphones

estão aumentando o número de funcionalidades, consumindo mais energia, enquanto

as baterias não acompanham este ritmo. Para equilibrar o alto consumo de energia e a

capacidade não crescente das baterias, fazem-se necessárias técnicas que promovam

um menor consumo energético.

Este trabalho apresentou um ambiente para medição energética em smartphones

com foco no sistema operacional Android. O ambiente permite a análise energética das

funcionalidades de diversos smartphones simultaneamente através de gráficos de

dados energéticos e desempenho.

O ambiente proposto difere dos demais trabalhos relacionados por utilizar a

abordagem energética no problema da fragmentação, automatizando testes e

permitindo a replicação em diversos dispositivos simultaneamente. Não foram

encontrados na literatura trabalhos que se propusessem a minimizar o problema da

fragmentação e que permitissem análise energética dos testes.

Para testar o ambiente proposto foram realizados 8 (oito) macro experimentos

que representam algumas das principais utilidades de um smartphone. Os resultados

foram explanados e sugestões de técnicas que permitem eficiência energética

discutidas.

5.1 Contribuições

As contribuições resultantes deste trabalho de pesquisa e desenvolvimento foram as seguintes:

Desenvolvimento de uma infraestrutura barata para aquisição de sinais de

corrente e tensão de dispositivos alimentados por bateria e que permite a

comunicação com o computador através da conexão USB.

Um ambiente que permite a replicação de testes criados pelos usuários em

diversas configurações do dispositivo e em vários dispositivos

simultaneamente, além de gráficos que possibilitam a análise energética do

teste realizado.

Experimentos que demonstram lacunas para o desenvolvimento de técnicas

para prover eficiência energética em funcionalidades comuns dos usuários de

smartphones.

88

SIDARTHA AZEVEDO LOBO DE CARVALHO

5.2 Limitações

Devido ao restrito tempo após o completo desenvolvimento do ambiente, não foi

possível o teste do ambiente proposto por pessoas que trabalhem na área. Essa

validação traria mais visibilidade e possíveis correções para a aplicação do ambiente

em escala empresarial.

O trabalho poderia ter implementado técnicas para redução do consumo de

energia no sistema operacional Android, técnicas como: DVFS, otimizações nas

transmissões de dados, otimizações em aplicativos, dentre outras.

Os testes ficaram restritos a somente dois smartphones, mesmo a plataforma

permitindo o teste em mais smartphones simultaneamente. Isso aconteceu por

restrições no orçamento da pesquisa.

5.3 Trabalhos Futuros

O autor sugere como trabalho futuro a incorporação de mais dispositivos no

ambiente, a validação de uso por especialistas e a divulgação da plataforma em um

site Web.

A divulgação do ambiente bem validado na Web permitirá que outros estudantes

sugiram melhorias no ambiente, seja usado em testes de outros pesquisados e até

incorporado nas grandes indústrias fabricantes de smartphones.

A adição de mais dispositivos no ambiente irá proporcionar uma abrangência

maior dos testes e assegurar que a técnica correta seja empregada em cada

dispositivo.

O uso do ambiente por programadores comuns irá fomentar o uso de técnicas

que promovam eficiência energética em diversos aplicativos. Isso acarretará em uma

diminuição do consumo energético do aplicativo desenvolvido por eles e assim o

smartphone do usuário terá mais tempo de uso sem necessidade de recarrega.

Uma análise estatística mais elaborada seria necessária para criar modelos

energéticos de predição do consumo de energia em smartphones.

89

SIDARTHA AZEVEDO LOBO DE CARVALHO

REFERÊNCIAS ALEXA. Alexa Top Sites. 2014. Disponível em <http://www.alexa.com/topsites>. Acesso em: 01 jan. 2015. ALTAMIMI, M. et al. Energy-as-a-Service (EaaS): On the Efficacy of Multimedia Cloud Computing to Save Smartphone Energy. IEEE 5th International Conference on Cloud Computing (CLOUD), pp. 764-771, 2012. ANDROID DEVELOPER. Battery Monitoring. 2014. Disponível em < http://developer.Android.com/training/monitoring-device-state/battery-monitoring.html >. Acesso em: 20 nov. 2014. ANDROID DEVELOPER. Android, the world's most popular mobile platform. 2015. Disponível em < http://developer.android.com/about/index.html >. Acesso em: 02 mar. 2015. APPLE DEVELOPER. Apple’s Instruments. 2014. Disponível em < https://developer.apple.com/library/ios/documentation/AnalysisTools/Reference/Instr uments_User_Reference/Introduction/Introduction.html#//apple_ref/doc/uid/TP400113 55-CH1-SW1 >. Acesso em: 20 nov. 2014. APPTHWACK. AppThwack. 2014. Disponível em <https://www.appthwack.com/>. Acesso em: 08 dez. 2014. CARROLL, A. e HEISER, G. An analysis of power consumption in a smartphone. 2010. USENIXATC’10: Proceedings of the 2010 USENIX conference on USENIX annual technical conference. Berkeley, CA, USA: USENIX Association, pp. 21–34. 2010. CARROLL, A. e HEISER, G. Mobile Multicores: Use Them or Waste Them. Proceedings of the 5th Workshop on Power-Aware Computing and Systems (HotPower’13). 2013. CHANG, Y.M.; HSIU, P.C.; CHANG, Y.H.; CHANG, C.W. A Resource-Driven DVFS Scheme for Smart Handheld Devices. ACM Trans. on Embedded Computer Systems, 13(3):53:1–53:22, 2013. CHARTS4J. Site do projeto Charts4J. 2015. Disponível em <https://code.google.com/p/charts4j/>. Acesso em: 01 jan. 2015. DOGAR, F.; STEENKISTE, P.; PAPAGIANNAKI, K. Catnap: exploiting high bandwidth wireless interfaces to save energy for mobile devices. Proceedings of the International Conference on Mobile Systems, Applications, and Services (Mobisys). 2010. DOMEIKA, M. Software Development for Embedded Multi-core Systems: A Practical Guide Using Embedded Intel Architecture. Newnes, Newton, MA, 2008.

90

SIDARTHA AZEVEDO LOBO DE CARVALHO

DONG, M.; LAI, P.; LI, Z. Can We Identify Smartphone App by Power Trace?. Proceedings of the 8th Asia and South Pacific Design Automation Conference (ASP-DAC). 2013. ENERGINO PROJECT. Energino. 2014. Disponível em < http://www.energino-project.org/ >. Acesso em: 20 nov. 2014. GOMES, K. et al. Energino: A hardware and software solution for energy consumption monitoring. Proceedings of the 10th International Symposium on Modeling and Optimization in Mobile, Ad Hoc and Wireless Networks (WiOpt). 2012. GORDON, M.; ZHANG, L; TIWANA, B. Power Tutor. 2014. Disponível em < http://ziyang.eecs.umich.edu/projects/powertutor/ >. Acesso em: 20 nov. 2014. GRACE, M. et al. What is eating up battery life on my smartphone: a case study. International Conference on Energy Aware Computing, 2012. HUANG, J. et al. A close examination of performance and power characteristics of 4G LTE networks. Proceedings of the 10th international conference on Mobile systems, applications, and services, June 25-29, Low Wood Bay, Lake District, UK. 2012. HUANG, J. AppACTS: Mobile App Automated Compatibility Testing Service. International Conference on Mobile Cloud Computing, Services, and Engineering (MobileCloud), IEEE. 2014. KALIC, G.; BOJIC, I.; KUSEK, M. Energy consumption in Android phones when using wireless communication technologies. Proceedings of the 35th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO). 2012. KANG, J.; SEO, S. Usage pattern analysis of smartphones. Proceedings of the Asia Pacific Network Operations and Management Symposium (APNOMS). 2011. KEITHLEY. Keithley 2304A. 2014. Disponível em < http://www.keithley.com/products/dcac/highspeedpower/battery/?mn=2304A >. Acesso em: 20 nov. 2014. KEYSIGHT. Agilent 66319D. 2014a. Disponível em < http://www.keysight.com/en/pd-1000000819%3Aepsg%3Apro-pn-66319D/dual-mobile-comm-dc-source-battery-emulation-dvm?cc=BR&lc=por >. Acesso em: 20 nov. 2014. KEYSIGHT. Agilent E3640A. 2014b. Disponível em < http://www.keysight.com/en/pd-836868-pn-E3640A/30w-power-supply-8v-3a-or-20v-15a?cc=BR&lc=por >. Acesso em: 20 nov. 2014. KHAIRY, A.; AMMAR, H.; BAHGAT, R. Smartphone energizer: extending smartphone's battery life with smart offloading. Proceedings of the International Conference on Wireless Communications and Mobile Computing (IWCMC). 2013.

91

SIDARTHA AZEVEDO LOBO DE CARVALHO

KWOK, A. et al. Energy-performance tradeoffs in smartphone applications. Proceedings of the Green Phones USENIX. 2011. LIANG, Y; LAI, P; CHIOU, C. An energy conservation dvfs algorithm for the Android operating system, Journal of Convergence, Vol. 1, pp.93-100. 2010. LIANG, W.; LAI, P. Design and Implementation of a Critical Speed-Based DVFS Mechanism for the Android Operating System. Proceedings of the 5th International Conference on Embedded and Multimedia Computing (EMC). 2010. LINEAR TECHNOLOGY. LTC2942. 2014. Disponível em < http://www.linear.com/product/LTC2942 >. Acesso em: 20 nov. 2014. MAVEN. The Central Repository. 2014. Disponível em <http://search.maven.org/#search|ga|1|jssc>. Acesso em: 05 dez. 2014. MONKEYMOBILE. Cloud Monkey Mobile. 2014. Disponível em <https://www.cloudmonkeymobile.com>. Acesso em: 08 dez. 2014. MONSOON SOLUTIONS. Power Monitor. 2014. Disponível em < https://www.msoon.com/LabEquipment/PowerMonitor/ >. Acesso em: 20 nov. 2014. NATIONAL INSTRUMENTS. O que é Aquisição de Dados. 2014a. Disponível em < http://www.ni.com/data-acquisition/what-is/pt/ >. Acesso em: 20 nov. 2014. NATIONAL INSTRUMENTS. NI PXI-6229 DAQ. 2014b. Disponível em < http://sine.ni.com/nips/cds/view/p/lang/pt/nid/14137 >. Acesso em: 20 nov. 2014. NATIONAL INSTRUMENTS. USB-6210 DAQ. 2014c. Disponível em < http://sine.ni.com/nips/cds/view/p/lang/pt/nid/203223>. Acesso em: 20 nov. 2014. NATIONAL INSTRUMENTS. USB-6016 DAQ. 2014d. Disponível em < http://sine.ni.com/nips/cds/view/p/lang/pt/nid/14041 >. Acesso em: 20 nov. 2014. NOKIA DEVELOPER. Nokia Energy Profiler. 2014. Disponível em < http://developer.nokia.com/community/discussion/showthread.php/160912-Nokia-Energy-Profiler>. Acesso em: 20 nov. 2014. PALIT, R; NAIK, K; SINGH, A. Impact of Packet Aggregation on Energy Consumption in Smartphones. In Proceedings of the 7th International Wireless Communications and Mobile Computing Conference, Istanbul, Turkey, pp. 589-594. 2011. PALLIPADI, V. e STARIKOVSKIY, A. The ondemand governor: past, present and future. In Proceedings of Linux Symposium, vol. 2, pp. 223-238, 2006. PATHAK, A.; HU, Y.; ZHANG, M. Where is the energy spent inside my app?: fine grained energy accounting on smartphones with Eprof. Proceedings of the 7th ACM European Conference on Computer Systems (EuroSys). 2012. PERFECTOMOBILE. Perfecto Mobile Ltd. 2014. Disponível em <http://www.perfectomobile.com/>. Acesso em: 08 dez. 2014.

92

SIDARTHA AZEVEDO LOBO DE CARVALHO

PERRUCCI, G. P. et al. On the Impact of 2G and 3G Network Usage for Mobile Phones Battery Life. Euroepan Wireless Conference, 2009. PERRUCCI, G.P.; FITZEK, F.H.P; WIDMER, J. Survey on Energy Consumption Entities on the Smartphone Platform, IEEE Vehicular Technology Conference (VTC Spring), 2011. RXTX. RXTX.ORG Library. 2014. Disponível em <http://www.rxtx.org>. Acesso em: 22 mar. 2014. SAMSUNG. Samsung Galaxy S3. 2014a. Disponível em <http://www.samsung.com/global/galaxys3/ >. Acesso em: 05 dez. 2014. SAMSUNG. Samsung Galaxy S4-GT-I9505ZKANZC. 2014b. Disponível em <http://www.samsung.com/nz/consumer/mobile-phone/smartphone/smartphone/GT-I9505ZKANZC >. Acesso em: 05 dez. 2014. SHIN, D. et al. Online estimation of the remaining energy capacity in mobile systems considering system-wide power consumption and battery characteristics. In Proc. of Asia South Pacific Design Automation Conference (ASP-DAC), 2013. SILVA-FILHO, A. G. et al. Energy-Aware technology-based DVFS mechanism for the Android operating system. Brazilian Symposium on Computing System Engineering (SBESC), 2012. STATISTA. The Statistics Portal. Disponível em: < http://www.statista.com/statistics/278305/daily-activations-of-Android-devices >. Acesos em: 24 nov. 2014. TALEB, S. et al. On the design of energy-aware 3G/Wifi heterogeneous networks under realistic conditions. Proceedings of the 27th International Conference on Advanced Information Networking and Applications Workshops. 2013. XAMARIN. Xamarin Platform. 2014. Disponível em < http://www.xamarin.com/ >. Acesso em: 08 dez. 2014. XU, F. et al. Optimizing background email sync on smartphones. Proceeding of the 11th annual international conference on Mobile systems, applications, and services, June 25-28, Taipei, Taiwan. 2013. YOON, C. et al. AppScope: application energy metering framework for Android smartphones using kernel activity monitoring. Proceedings of the 2012 USENIX conference on Annual Technical Conference, p.36-36, June 13-15, Boston, MA. 2012.

93

SIDARTHA AZEVEDO LOBO DE CARVALHO

APÊNDICE A – Funcionalidades x Comandos ADB

Este apêndice contém os comandos ADB referentes as funcionalidades

utilizadas neste trabalho. Os códigos foram estruturas pelo autor e tomaram como base

pesquisas na literatura.

Aplicativos

Funcionalidade Instalar Aplicativo:

1: adb -s <Serial Aparelho> install <Arquivo.apk>

Funcionalidade Desinstalar Aplicativo:

1: adb -s <Serial Aparelho> uninstall <Arquivo.apk>

Funcionalidade Abrir Aplicativo:

1: adb -s <Serial Aparelho> shell am start -n <Activity>

Rede

Funcionalidade Ativar/Desativar Wifi:

1: adb -s <Serial Aparelho> shell am start -a Android.intent.action.MAIN -n

com.Android.settings/.Wifi.WifiSettings

2: adb -s <Serial Aparelho> shell input keyevent 19 // Repetir 2x para garantir que a

seleção estará no ponto mais alto da tela (back button)

3: adb -s <Serial Aparelho> shell input keyevent 22 //Seleciona botão de ativar e

desativar

4: adb -s <Serial Aparelho> shell input keyevent 66 //Aperta botão

Funcionalidade Selecionar 2G (Samsung Galaxy S3 e Samsung Galaxy S4):

1: adb shell am start -a Android.settings.DATA_ROAMING_SETTINGS

2: adb shell input keyevent 20 // Repetir 5x (Botão Baixo)

3: adb shell input keyevent 19 // Botão Cima

4: adb shell input keyevent 66 // Botão Selecionar

5: adb shell input keyevent 20 // Repetir 4x (Selecionar Cancel)

6: adb shell input keyevent 19 // Repetir 2x (Seleciona opção “GSM”)

7: adb shell input keyevent 66 // Botão Selecionar

94

SIDARTHA AZEVEDO LOBO DE CARVALHO

8: adb shell input keyevent 22 // Botão Ok (Mudar Rede)

9: adb shell input keyevent 66 // Botão Selecionar

10: adb shell input keyevent 4 // Repetir 3x (Botão Voltar)

Funcionalidade Selecionar 3G (Samsung Galaxy S3 e Samsung Galaxy S4):

1: adb shell am start -a Android.settings.DATA_ROAMING_SETTINGS

2: adb shell input keyevent 20 // Repetir 5x (Botão Baixo)

3: adb shell input keyevent 19 // Botão Cima

4: adb shell input keyevent 66 // Botão Selecionar

5: adb shell input keyevent 20 // Repetir 4x (Selecionar Cancel)

6: adb shell input keyevent 19 // Seleciona opção “WCDMA”

7: adb shell input keyevent 66 // Botão Selecionar

8: adb shell input keyevent 22 // Botão Ok (Mudar Rede)

9: adb shell input keyevent 66 // Botão Selecionar

10: adb shell input keyevent 4 // Repetir 3x (Botão Voltar)

Funcionalidade Selecionar LTE (Samsung Galaxy S4):

1: adb -s <Serial Aparelho> shell am start -a

Android.settings.DATA_ROAMING_SETTINGS

2: adb -s <Serial Aparelho> shell input keyevent 20 // Repetir 5x (Botão Baixo)

3: adb -s <Serial Aparelho> shell input keyevent 19 // Botão Cima

4: adb -s <Serial Aparelho> shell input keyevent 66 // Botão Selecionar

5: adb -s <Serial Aparelho> shell input keyevent 19 // Repetir 4x (Selecionar LTE)

6: adb -s <Serial Aparelho> shell input keyevent 66 // Botão Selecionar

7: adb -s <Serial Aparelho> shell input keyevent 22 // Botão Ok (Confirmar)

8: adb -s <Serial Aparelho> shell input keyevent 66 // Botão Selecionar

9: adb -s <Serial Aparelho> shell input keyevent 4 // Repetir 3x (Botão Voltar)

Funcionalidade Identificar Rede (2G, 3G, 4G ou Indefinido):

1: adb -s <Serial Aparelho> shell dumpsys connectivity

Resultado:

Active network: mobile

NetworkInfo: type: mobile[EDGE] //Para saber que está usando redes 2G

NetworkInfo: type: mobile[HSPA] // Para saber que está usando redes 3G

95

SIDARTHA AZEVEDO LOBO DE CARVALHO

Funcionalidade Identificar Estado Wifi:

1: adb -s <Serial Aparelho> shell dumpsys Wifi

Processador

Funcionalidade Escolher Governorr:

1: adb -s <Serial Aparelho> shell su -c "echo <Governorr>” >

/sys/devices/system/cpu/cpu0/cpufreq/scaling_governorr

Funcionalidade Definir Frequências do Processador:

1: adb -s <Serial Aparelho> shell su –c “stop mpdecision”

2: adb -s <Serial Aparelho> shell su –c “ "userspace" >

/sys/devices/system/cpu/cpu0/cpufreq/scaling_governorr”

3: adb -s <Serial Aparelho> shell su –c "echo "<Frequência em MHz>" >

/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq" // Define Frequência Mínima

de Operação do Núcleo

4: adb -s <Serial Aparelho> shell su –c "echo "<Frequência em MHz>" >

/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq" // Define Frequência Máxima

de Operação do Núcleo

5: adb -s <Serial Aparelho> shell su –c "echo "<Frequência em MHz>" >

/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed" // // Define Frequência Atual

de Operação do Núcleo

Funcionalidade Ativar Núcleos do Processador:

1: adb -s <Serial Aparelho> shell su –c “ "1" > /sys/devices/system/cpu/cpuX/online”

//Onde X é o número do núcleo a ser ativado, no formato: 0, 1, 2, 3...

Funcionalidade Desativar Núcleos do Processador:

1: adb -s <Serial Aparelho> shell su –c “ "0" > /sys/devices/system/cpu/cpuX/online”

//Onde X é o número do núcleo a ser ativado, no formato: 0, 1, 2, 3...

Dispositivo

Funcionalidade Ativar Tela:

1: adb -s <Serial Aparelho> shell dumpsys power

96

SIDARTHA AZEVEDO LOBO DE CARVALHO

2: Se ResultadoComando1 contém mScreenOn=True ou contém SCREEN_ON_BIT,

executa ação 3, se não, executa ação 4

3: adb -s <Serial Aparelho> shell input keyevent 26 //Repete 2x

4: adb -s <Serial Aparelho> shell input keyevent 26

Funcionalidade Informações sobre o estado energético do aparelho:

1: adb -s <Serial Aparelho> shell dumpsys power

Funcionalidade Fazer Chamada:

1: adb -s <Serial Aparelho> shell am start -a Android.intent.action.CALL -d tel:555-5555

Funcionalidade Enviar E-mail:

1: adb shell am start -n

com.google.Android.gm/com.google.Android.gm.ComposeActivityGmail -d

email:[email protected] --es subject 'Título do E-mail' --es body 'Corpo do E-mail'

2: adb -s <Serial Aparelho> shell input keyevent 19 //Selecionar Botão Enviar

3: adb -s <Serial Aparelho> shell input keyevent 23 //Simular toque para o Botão Enviar

Funcionalidade Abrir Browser / Vídeo YouTube:

1: adb -s <Serial Aparelho> shell am start -a Android.intent.action.VIEW -d

'http://www.ufpe.com.br'

2: adb -s <Serial Aparelho> shell input keyevent 23 //Esta linha deve ser editável de

acordo com o dispositivo alvo. Se houver mais de um cliente HTTP instalado,

aparecerá uma tela para escolher com qual abrir. Esse comando serve para selecionar

o padrão.

Funcionalidade Enviar SMS:

1: adb -s <Serial Aparelho> shell am start -a Android.intent.action.SENDTO -d

sms:08198765432 --es sms_body "Texto da Mensagem" --ez exit_on_sent true

2: Sleep (1) //Tempo necessário para abrir o aplicativo

3: adb -s <Serial Aparelho> shell input keyevent 22

4: adb -s <Serial Aparelho> shell input keyevent 66