Pós-Graduação em Ciência da Computação - UFPE · 2019-10-25 · Ao meu orientador, professor...
Transcript of Pós-Graduação em Ciência da Computação - UFPE · 2019-10-25 · Ao meu orientador, professor...
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