escreva sua app android sem gastar energia - intel sw day
DESCRIPTION
Entenda como o Android usa Wakelocks, como medir o consumo de energia de sua App Android e técnicas para reduzir esse gasto.TRANSCRIPT
Globalcode – Open4education
Escreva sua App Android sem gastar energia
George H. Silva
Android Community Manager
Globalcode – Open4education
Agenda
Por que economizar?
Quem são os gastõesHardware
Wakelocks
MedindoConsumo de Energia
Identificando consumo da GPU
Economizando
Android Intel InsideO que não muda
Emulador
Novidades
Conclusão
Globalcode – Open4education
Lembre-se!
Wakelocks
Pensou em emulador?
HAXM
Pensou em desempenho gráfico
Intel GPA
Globalcode – Open4education
Por que economizar?
Experiência do Usuário
Sucesso da sua App
Globalcode – Open4education
Fato da vida real
Globalcode – Open4education
Quem são os gastões?
Tela
Processador
GPU
I/O
Disco?
Rede
GPS
Sua App
Globalcode – Open4education
Tela
Globalcode – Open4education
GPS
Globalcode – Open4education
Medindo
Defina uma metodologia para sua App
Dicas:
Use as mesmas pré condições
Entre em modo avião (operadora)
Deixe o brilho da tela no mínimo
Use sempre o mesmo dispositivo
Tenha o mínimo de Apps instaladas
Não use o adb por conexão USB
tcp/ip connection (precise de acesso root )
Globalcode – Open4education
Medindo 2
/sys/class/power_supply/battery/uevent datafile
Informações disponíveis
POWER_SUPPLY_NAME “usb”, “ac_charger”
POWER_SUPPLY_STATUS 0 / 1
POWER_SUPPLY_VOLTAGE_NOW uV / mV
POWER_SUPPLY_CURRENT_NOW uA
POWER_SUPPLY_CHARGE_FULL Watt-Hr
POWER_SUPPLY_CHARGE_NOW Watt-Hr
Globalcode – Open4education
Medindo 3
Globalcode – Open4education
Ciclo de desenvolvimento
Codificando sua aplicação
Debug & Teste
Otimize o desempenhoOtimize o consumo
Globalcode – Open4education
Economizando
Por onde começar?
Por quem gasta mais
O que for mais rápido ou fácil de fazer
Globalcode – Open4education
Ciclo de Vida
Globalcode – Open4education
Wakelock
Android assume que se a tela não está ligada, a
CPU também não precisa estar
Wakelock é uma “brecha legal” dentro da política
agressiva de economia de energia
Globalcode – Open4education
Como são usadosAplicação Ação feita Serviço que pegou
Wakelock
Comportamento
Todas Toque em qualquer UI Widget
(Botão ou ListView, etc)
PowerManagerService Solicita e libera o lock
após 5 segundos
Maps /
Navegação
Lançar a App de Maps ou
definer direções para
navegação
gps-lock Mantém o lock enquanto
usa GPS
YouTube Assistir à um vídeo PowerManagerService Wakelock mantido
durante o período em que
o video é reproduzido
Music
Player
Tocar uma musica PowerManagerService Wakelock mantido
durante o período em que
a música toca
Globalcode – Open4education
WakelockTipos CPU Tela Teclado
PARTIAL_WAKE_LOCK On Off Off
SCREEN_DIM_WAKE_LOCK On Dim Off
SCREEN_BRIGHT_WAKE_LOCK On Bright Off
FULL_WAKE_LOCK On Bright Bright
Flags Descrição
ACQUIRE_CAUSES_WAKEUP Force a tela e teclado a serem
ligados assim que o wakelock
for solicitado
ON_AFTER_RELEASE Reinicia o timeout para que a
tela seja desligada após a
liberação do wakelock
Globalcode – Open4education
Permissões necessárias
“Prevent phone from sleeping.”
AndroidManifest.xml:
Globalcode – Open4education
Melhore seus Gráficos
Assim como seu processador, sua unidade gráfica
consome energia
Estratégias para economia:
Simplifique as texturas
Diminua o uso de transparências
Diminua o número de objetos na tela
Diminua o FPS
Globalcode – Open4education
Como priorizar?
Intel Graphics Performance Analyzer
Conjunto de ferramentas para analize e otimização de
aplicações com forte uso de gráficos
Globalcode – Open4education
Conceitos básicos de GPU
Globalcode – Open4education
Vértices
Globalcode – Open4education
Primitivas
Globalcode – Open4education
Fragmentos
Rasterização Processamento de fragmentos
Globalcode – Open4education
Pixels
Globalcode – Open4education
Demo GPA
Testes “E se …”
Ajudam a identificar gargalos
Globalcode – Open4education
Economizando
Use I/O em batches
Principalmente comunicação em rede
Não use Wakelock
Confie no Android, ele é legal
Use o wakelock mais apropriado
Nunca segure o wakelock sem necessidade
Use broadcaster receivers só quando necessário
Otimize sua aplicação gráfica com GPA
Fundo de tela escuro
Globalcode – Open4education
Android System Services
Globalcode – Open4education
Novidades
Intel System Studio
Beacon Montain
Silvermont
Intel Software Day 22 e 23 Outubro
http://www.softwareday.com.br
Emulador
HAXM
Globalcode – Open4education
Silvermont
Novo processador Atom
Saindo de tecnologia 32nm para 22nm
3x mais desempenho ou;
5x menos consumo de energia
Globalcode – Open4education
Globalcode – Open4education
Referências
http://software.intel.com/articles/wakelocks-for-android
http://developer.android.com/training/monitoring-device-state/index.html
http://software.intel.com/articles/android-power-measurement-
techniques
http://developer.android.com/training/monitoring-device-state/index.html
http://software.intel.com/en-us/articles/developing-power-aware-
applications-on-android
http://software.intel.com/en-us/articles/intel-hardware-accelerated-
execution-manager/
http://software.intel.com/en-us/articles/installing-the-intel-atom-tm-
android-x86-emulator-image-add-on-from-the-android-sdk-manager/
http://software.intel.com/en-us/vcsource/tools/beaconmountain
Globalcode – Open4education
Contato
George H. Silva
@ghsilva
http://software.intel.com