Globalcode – Open4education
FISL 14
Escreva sua App Android sem gastar energia
George H. Silva
Android Community Manager
Globalcode – Open4education
FISL 14Agenda
Por que economizar?
Quem são os gastões
Hardware
Wakelocks
Medindo
Consumo de Energia
Identificando consumo da GPU
Economizando
Android Intel Inside
O que não muda
Emulador
Novidades
Conclusão
Globalcode – Open4education
FISL 14Lembre-se!
Wakelocks use só quando necessário
Pensou em emulador?
HAXM
Pensou em desempenho gráfico
GPA
Globalcode – Open4education
FISL 14Por que economizar?
Experiência do Usuário
Sucesso da sua App
Globalcode – Open4education
FISL 14Quem são os gastões?
Tela
Processador
GPU
I/O
Disco?
Rede
GPS
Sua App
Globalcode – Open4education
FISL 14Tela
Globalcode – Open4education
FISL 14GPS
Globalcode – Open4education
FISL 14Medindo
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
Globalcode – Open4education
FISL 14Medindo 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
FISL 14Ciclo de desenvolvimento
Codificando sua aplicação
Debug & Teste
Otimize o desempenhoOtimize o consumo
Globalcode – Open4education
FISL 14Economizando
Por onde começar?
Por quem gasta mais
O que for mais rápido ou fácil de fazer
Globalcode – Open4education
FISL 14Ciclo de Vida
Globalcode – Open4education
FISL 14Wakelock
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
FISL 14Como são usados
Aplicaçã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
FISL 14Wakelock
Tipos 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
FISL 14Permissões necessárias
“Prevent phone from sleeping.”
AndroidManifest.xml:
Globalcode – Open4education
FISL 14Medindo 3
Globalcode – Open4education
FISL 14Wakelock - demo
Globalcode – Open4education
FISL 14Melhore 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
FISL 14Como priorizar?
Intel Graphics Performance Analyzer
Conjunto de ferramentas para analize e otimização de
aplicações com forte uso de gráficos
Globalcode – Open4education
FISL 14Conceitos básicos de GPU
Globalcode – Open4education
FISL 14Vértices
Globalcode – Open4education
FISL 14Primitivas
Globalcode – Open4education
FISL 14Fragmentos
Rasterização Processamento de fragmentos
Globalcode – Open4education
FISL 14Pixels
Globalcode – Open4education
FISL 14Demo GPA
Testes “E se …”
Ajudam a identificar gargalos
Globalcode – Open4education
FISL 14Economizando
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
FISL 14Me deixe dormir
A bateria do seu dispositivo poderia durar semanas!
Globalcode – Open4education
FISL 14Emulador (HAXM)
Android SDK manager já contém
imagens Intel x86
Emulação muito mais rápida
com a tecnologia Intel® VT-x:
• HAXM para Mac e Windows
• KVM para Linux*
Globalcode – Open4education
FISL 14Novidades
Intel System Studio
Beacon Montain
Silvermont
Globalcode – Open4education
FISL 14Beacon Montain
Ambiente de Desenvolvimento da Intel para te
ajuda a desenvoler Apps Android
Ferramentas Intel:
•Intel® HAXM
•Intel® GPA System Analyzer
•Intel® Threading Building Blocks
•Intel® Software Manager
•Intel® Integrated Performance
Primitives Preview Outras feramentas:
•Google Android SDK (com ADT)
•Android NDK
•Eclipse
•Android Design
•Cygwin*
Globalcode – Open4education
FISL 14Silvermont
Novo processador Atom
Saindo de tecnologia 32nm para 22nm
3x mais desempenho ou;
5x menos consumo de energia
Parceiros de Software
Desenvolvedores
de Software
Comunidade Global
para Desenvolvimento
de Software e Negócios
Documentação Técnica,
Guias e Forums de apoio
Tendências e
Idéias
Recursos de Marketing
e Vendas
software.intel.com
Seu principal recurso para desenvolvimento de Software e Negócios
Conteúdo Online
em Português
para dar suporte
ao Desenvolvedor
Quatro Novas
Comunidades
de Software
locais
Anunciando Melhorias
no Suporte ao
Desenvolvedor
Brasileiro
Comunidades Intel Software Network
Globalcode – Open4education
FISL 14Referê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
FISL 14Contato
George H. Silva
@ghsilva
george.silva@intel.com
http://software.intel.com

FISL14: Android sem gastarenergia

  • 1.
    Globalcode – Open4education FISL14 Escreva sua App Android sem gastar energia George H. Silva Android Community Manager
  • 2.
    Globalcode – Open4education FISL14Agenda Por que economizar? Quem são os gastões Hardware Wakelocks Medindo Consumo de Energia Identificando consumo da GPU Economizando Android Intel Inside O que não muda Emulador Novidades Conclusão
  • 3.
    Globalcode – Open4education FISL14Lembre-se! Wakelocks use só quando necessário Pensou em emulador? HAXM Pensou em desempenho gráfico GPA
  • 4.
    Globalcode – Open4education FISL14Por que economizar? Experiência do Usuário Sucesso da sua App
  • 5.
    Globalcode – Open4education FISL14Quem são os gastões? Tela Processador GPU I/O Disco? Rede GPS Sua App
  • 6.
  • 7.
  • 8.
    Globalcode – Open4education FISL14Medindo 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
  • 9.
    Globalcode – Open4education FISL14Medindo 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
  • 10.
    Globalcode – Open4education FISL14Ciclo de desenvolvimento Codificando sua aplicação Debug & Teste Otimize o desempenhoOtimize o consumo
  • 11.
    Globalcode – Open4education FISL14Economizando Por onde começar? Por quem gasta mais O que for mais rápido ou fácil de fazer
  • 12.
  • 13.
    Globalcode – Open4education FISL14Wakelock 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
  • 14.
    Globalcode – Open4education FISL14Como são usados Aplicaçã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
  • 15.
    Globalcode – Open4education FISL14Wakelock Tipos 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
  • 16.
    Globalcode – Open4education FISL14Permissões necessárias “Prevent phone from sleeping.” AndroidManifest.xml:
  • 17.
  • 18.
  • 19.
    Globalcode – Open4education FISL14Melhore 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
  • 20.
    Globalcode – Open4education FISL14Como priorizar? Intel Graphics Performance Analyzer Conjunto de ferramentas para analize e otimização de aplicações com forte uso de gráficos
  • 21.
    Globalcode – Open4education FISL14Conceitos básicos de GPU
  • 22.
  • 23.
  • 24.
    Globalcode – Open4education FISL14Fragmentos Rasterização Processamento de fragmentos
  • 25.
  • 26.
    Globalcode – Open4education FISL14Demo GPA Testes “E se …” Ajudam a identificar gargalos
  • 27.
    Globalcode – Open4education FISL14Economizando 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
  • 28.
    Globalcode – Open4education FISL14Me deixe dormir A bateria do seu dispositivo poderia durar semanas!
  • 29.
    Globalcode – Open4education FISL14Emulador (HAXM) Android SDK manager já contém imagens Intel x86 Emulação muito mais rápida com a tecnologia Intel® VT-x: • HAXM para Mac e Windows • KVM para Linux*
  • 30.
    Globalcode – Open4education FISL14Novidades Intel System Studio Beacon Montain Silvermont
  • 31.
    Globalcode – Open4education FISL14Beacon Montain Ambiente de Desenvolvimento da Intel para te ajuda a desenvoler Apps Android Ferramentas Intel: •Intel® HAXM •Intel® GPA System Analyzer •Intel® Threading Building Blocks •Intel® Software Manager •Intel® Integrated Performance Primitives Preview Outras feramentas: •Google Android SDK (com ADT) •Android NDK •Eclipse •Android Design •Cygwin*
  • 32.
    Globalcode – Open4education FISL14Silvermont Novo processador Atom Saindo de tecnologia 32nm para 22nm 3x mais desempenho ou; 5x menos consumo de energia
  • 33.
    Parceiros de Software Desenvolvedores deSoftware Comunidade Global para Desenvolvimento de Software e Negócios Documentação Técnica, Guias e Forums de apoio Tendências e Idéias Recursos de Marketing e Vendas software.intel.com Seu principal recurso para desenvolvimento de Software e Negócios
  • 34.
    Conteúdo Online em Português paradar suporte ao Desenvolvedor Quatro Novas Comunidades de Software locais Anunciando Melhorias no Suporte ao Desenvolvedor Brasileiro Comunidades Intel Software Network
  • 35.
    Globalcode – Open4education FISL14Referê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
  • 36.
    Globalcode – Open4education FISL14Contato George H. Silva @ghsilva george.silva@intel.com http://software.intel.com