Globalcode – Open4education
TDC2014
Escreva sua App sem gastar energia,
agora no KitKat
George H. Silva
Android Community Manager
Globalcode – Open4education
TDC2014Agenda
Qual o problema?
Novidades KitKat
Estudo de consumo de energia
Globalcode – Open4education
TDC2014Lembre-se!
Processos em Batch!
Emulador está lento?
HAXM
Medindo consumo de energia
GPA
Globalcode – Open4education
TDC2014Por que energia?
A Intel tem ótimas ferramentas te auxiliar?
Sim
Mas não é por isso?
Por que eu já fiz uma palestra sobre isso?
Não por que não consigo repetir muito uma palestra
Então por quê?
Globalcode – Open4education
TDC2014Quem se arrisca?
Primeira preocupação das plataformas móveis
O Mercado evolui muito de um ano para o outro
… e o Android KitKat não me deixa mentir
Energia permeia todos os aspectos da mobilidade
Globalcode – Open4education
TDC2014Palestra - Ubiratan Soares
Escolha de estrutura de dados
Uso de memória
Melhores algoritmos
Garbage Collection
Globalcode – Open4education
TDC2014Wakelock
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
TDC2014Permissões necessárias
“Prevent phone from sleeping.”
AndroidManifest.xml:
Globalcode – Open4education
TDC2014Mudanças recentes
Alguns Wakelocks foram “deprecated”:
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
Globalcode – Open4education
TDC2014Mantendo a tela ligada
Não precise se preocupar em “liberar a tela”, mas caso seja o
seu caso:
getWindow().clearFlags(WindowManager
.LayoutParams.FLAG_KEEP_SCREEN_ON)
Globalcode – Open4education
TDC2014Serviços em background
Caso você tenha problemas com serviços
dorminhocos…
WakefulBroadcastReceiver
Globalcode – Open4education
TDC2014WakeLock Detector
Fonte:
https://android.googlesource.com/platform/frameworks/base/+/3714141d287c965ea3451831dd5167f63f8db87b%5E%21/
Globalcode – Open4education
TDC2014Android Runtime (ART)
Histórico: Pré Froyo
Froyo
JIT – Just in Time
Kit Kat
AOT – Ahead of Time Compiling
Globalcode – Open4education
TDC2014AlarmManager
O que já era uma ótima estratégia
Ficou mais flexível:
targetSdkVersion = 19
Métodos set() e setRepeating() serão “inexatos”
Novo método setWindow()
Nova Alternativa setExact()
Globalcode – Open4education
TDC2014Leitura de Sensores
Ao invés de tratar evento por evento, faça uma
operação em Batch
Exige suporte em Hardware, mas é compatível
com dispositivos sem esse suporte
Novo sensor: Step counter
Cuidado, eventos em batch não serão entregues para
Apps dorminhocas
Globalcode – Open4education
TDC2014
Altura
(m)
Vazão
(l/h)Capacidade (l)
Consumo (l)
Consumo = Vazão x Tempo
Capacidade Tempo de Regojizo
Vazão Tempo de Regojizo
Globalcode – Open4education
TDC2014
Tensão
(V)
Potência
(mW)Capacidade (mWh)
Consumo (mWh)
Consumo = Potência x Tempo
Capacidade Tempo de Regojizo
Potência
ConsumidaTempo de Regojizo
Globalcode – Open4education
TDC2014Quem são os gastões?
Tela
Processador
GPU
I/O
Disco?
Rede
GPS
Sua App
Globalcode – Open4education
TDC2014Consumo da bateria
Exercício
Para um consumo médio de 764mA. Quanto tempo dura
uma bacteria de:
A) 1960 mAh
B) 6800 mAh
Respostas:
A) 2horas 30minutos
B) 9 horas
Globalcode – Open4education
TDC2014Emulador (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
TDC2014Silvermont
Novo processador Atom
Evolução da tecnologia 32nm para 22nm
3x mais desempenho ou;
5x menos consumo de energia
O Futuro nos espera … 14nm
Conteúdo Online em Português
para dar suporteao Desenvolvedor
Quatro NovasComunidadesde Software
locais
Anunciando Melhoriasno Suporte aoDesenvolvedorBrasileiro
Comunidades Intel Developer Zone
Globalcode – Open4education
TDC2014Referê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://software.intel.com/en-us/articles/intel-hardware-accelerated-
execution-manager/
https://developer.android.com/about/versions/android-4.4.html
Globalcode – Open4education
TDC2014Contato
George H. Silva
@ghsilva
http://software.intel.com/android