SlideShare uma empresa Scribd logo
Globalcode – Open4education
TDC2014
Escreva sua App sem gastar energia,
agora no KitKat
George H. Silva
Android Community Manager
Globalcode – Open4education
TDC2014
Agenda
Qual o problema?
Novidades KitKat
Estudo de consumo de energia
Globalcode – Open4education
TDC2014
Lembre-se!
Processos em Batch!
Emulador está lento?
HAXM
Medindo consumo de energia
GPA
Globalcode – Open4education
TDC2014
Por 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
TDC2014
Quem 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
TDC2014
Palestra - Ubiratan Soares
Escolha de estrutura de dados
Uso de memória
Melhores algoritmos
Garbage Collection
Globalcode – Open4education
TDC2014
Arquitetura da solução
Globalcode – Open4education
TDC2014
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
TDC2014
Permissões necessárias
“Prevent phone from sleeping.”
AndroidManifest.xml:
Globalcode – Open4education
TDC2014
Mudanç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
TDC2014
Mantendo a tela ligada
Globalcode – Open4education
TDC2014
Mantendo 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
TDC2014
Mantendo a CPU ligada
Liberando o wakelock
wakeLock.release();
Globalcode – Open4education
TDC2014
Serviços em background
Caso você tenha problemas com serviços
dorminhocos…
WakefulBroadcastReceiver
Globalcode – Open4education
TDC2014
Então chegou o KitKat
Globalcode – Open4education
TDC2014
WakeLock Detector
Fonte:
https://android.googlesource.com/platform/frameworks/base/+/3714141d287c965ea3451831dd5167f63f8db87b%5E%21/
Globalcode – Open4education
TDC2014
Controle de permissões
Globalcode – Open4education
TDC2014
Android Runtime (ART)
Histórico: Pré Froyo
Froyo
JIT – Just in Time
Kit Kat
AOT – Ahead of Time Compiling
Globalcode – Open4education
TDC2014
AlarmManager
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
TDC2014
Leitura 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
E os Zumbis?
Globalcode – Open4education
TDC2014
Como medir
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
Consumida
Tempo de Regojizo
 

Globalcode – Open4education
TDC2014
Quem são os gastões?
Tela
Processador
GPU
I/O
Disco?
Rede
GPS
Sua App
Globalcode – Open4education
TDC2014
Globalcode – Open4education
TDC2014
Globalcode – Open4education
TDC2014
Consumo 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
TDC2014
Globalcode – Open4education
TDC2014
Globalcode – Open4education
TDC2014
Emulador (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
TDC2014
Silvermont
Novo processador Atom
Evolução da tecnologia 32nm para 22nm
3x mais desempenho ou;
5x menos consumo de energia
O Futuro nos espera … 14nm
Globalcode – Open4education
TDC2014
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 Developer Zone
Globalcode – Open4education
TDC2014
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://software.intel.com/en-us/articles/intel-hardware-accelerated-
execution-manager/
https://developer.android.com/about/versions/android-4.4.html
Globalcode – Open4education
TDC2014
Contato
George H. Silva
@ghsilva
george.silva@intel.com
http://software.intel.com/android

Mais conteúdo relacionado

PDF
Desafios do Desenvolvimento Multi-plataforma
PDF
Desafios do Desenvolvimento Multiplataforma
PDF
Clean Code/Architecture com Android e Flutter
ODP
Palestra: Desenvolvendo Produtos sobre a Plataforma Pentaho - Pentaho Day 2013
PDF
Desenvolvendo Produtos sobre a Plataforma Pentaho
PPTX
TDC2016POA | Trilha Web - Realidade Virtual com WebVR
PPT
Palestra sobre Localização e Globalização
PDF
Reprogramando Design
Desafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multiplataforma
Clean Code/Architecture com Android e Flutter
Palestra: Desenvolvendo Produtos sobre a Plataforma Pentaho - Pentaho Day 2013
Desenvolvendo Produtos sobre a Plataforma Pentaho
TDC2016POA | Trilha Web - Realidade Virtual com WebVR
Palestra sobre Localização e Globalização
Reprogramando Design

Mais procurados (20)

PDF
Programação Exploratória / Ensaio
PPTX
Android Study Jam - GDG Dois Vizinhos - Primeira Reunião
PDF
Computação Física com Arduino, Program-ME e Java
PDF
TDC2015 - Um drone para chamar de seu
PDF
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
PPTX
Iniciando desenvolvimento para Android
PDF
Desenvolvimento de Jogos Multiplataforma
PPTX
Linear Engineering
PPTX
TDC2018SP | Trilha Comp Cognitiva - Reconhecimento de imagens com IA: Aplicac...
PPT
Desenvolvedor 2.0
PPTX
[TDC SP 2016] A importância da negociação para a vida e a TI
PDF
Desenvolvendo Aplicações Android com Qt
PDF
GDG Devfest Paraná 2016
PPT
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
PPTX
Strider CD - Deploy Contínuo com JavaScript
PPTX
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
PPTX
TDC2016SP - Trilha Análise de Negócios
PDF
Desenvolvendo Widgets QML para o KDE Plasma
PPTX
Design de Software com ASP.NET MVC
Programação Exploratória / Ensaio
Android Study Jam - GDG Dois Vizinhos - Primeira Reunião
Computação Física com Arduino, Program-ME e Java
TDC2015 - Um drone para chamar de seu
Lições aprendidas com a Re (escrita |design) de uma aplicação PHP
Iniciando desenvolvimento para Android
Desenvolvimento de Jogos Multiplataforma
Linear Engineering
TDC2018SP | Trilha Comp Cognitiva - Reconhecimento de imagens com IA: Aplicac...
Desenvolvedor 2.0
[TDC SP 2016] A importância da negociação para a vida e a TI
Desenvolvendo Aplicações Android com Qt
GDG Devfest Paraná 2016
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
Strider CD - Deploy Contínuo com JavaScript
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2016SP - Trilha Análise de Negócios
Desenvolvendo Widgets QML para o KDE Plasma
Design de Software com ASP.NET MVC
Anúncio

Destaque (18)

PDF
PDF
Desenvolvimento e análise de performance de jogos Android com Coco2d-HTML5
PDF
Html5 fisl15
PDF
Yocto - 7 masters
PDF
Intel tools to optimize HPC systems
PPTX
Modernização de código em Xeon® e Xeon Phi™
PDF
Principais conceitos técnicas e modelos de programação paralela
PDF
Benchmarking para sistemas de alto desempenho
PDF
Principais conceitos e técnicas em vetorização
PDF
Getting the maximum performance in distributed clusters Intel Cluster Studio XE
PDF
Vetorização e Otimização de Código - Intel Software Conference 2013
PDF
Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference
PDF
Intel Technologies for High Performance Computing
PDF
Computação Paralela: Benefícios e Desafios - Intel Software Conference 2013
PDF
Intel® MPI Library e OpenMP* - Intel Software Conference 2013
PDF
Notes on NUMA architecture
PDF
Methods and practices to analyze the performance of your application with Int...
PDF
CV-LucianoPalma
Desenvolvimento e análise de performance de jogos Android com Coco2d-HTML5
Html5 fisl15
Yocto - 7 masters
Intel tools to optimize HPC systems
Modernização de código em Xeon® e Xeon Phi™
Principais conceitos técnicas e modelos de programação paralela
Benchmarking para sistemas de alto desempenho
Principais conceitos e técnicas em vetorização
Getting the maximum performance in distributed clusters Intel Cluster Studio XE
Vetorização e Otimização de Código - Intel Software Conference 2013
Identificando Hotspots e Intel® VTune™ Amplifier - Intel Software Conference
Intel Technologies for High Performance Computing
Computação Paralela: Benefícios e Desafios - Intel Software Conference 2013
Intel® MPI Library e OpenMP* - Intel Software Conference 2013
Notes on NUMA architecture
Methods and practices to analyze the performance of your application with Int...
CV-LucianoPalma
Anúncio

Mais de Intel Software Brasil (15)

PDF
Yocto no 1 IoT Day da Telefonica/Vivo
PDF
IoT TDC Floripa 2014
PDF
Otávio Salvador - Yocto project reduzindo -time to market- do seu próximo pr...
PDF
Html5 tdc floripa_2014
PDF
O uso de tecnologias Intel na implantação de sistemas de alto desempenho
PDF
Escreva sua App Android sem gastar energia - Intel Sw Day
PPTX
Using multitouch and sensors in Java
PDF
Entenda de onde vem toda a potência do Intel® Xeon Phi™
PDF
Across the Silicon Spectrum: Xeon Phi to Quark – Unleash the Performance in Y...
PDF
Livros eletrônicos interativos com html5 e e pub3
PDF
Intel XDK New - Intel Software Day 2013
PDF
Hackeando a Sala de Aula
PPTX
Android Native Apps Hands On
PPTX
Android Fat Binaries
PPTX
Android Native Apps Development
Yocto no 1 IoT Day da Telefonica/Vivo
IoT TDC Floripa 2014
Otávio Salvador - Yocto project reduzindo -time to market- do seu próximo pr...
Html5 tdc floripa_2014
O uso de tecnologias Intel na implantação de sistemas de alto desempenho
Escreva sua App Android sem gastar energia - Intel Sw Day
Using multitouch and sensors in Java
Entenda de onde vem toda a potência do Intel® Xeon Phi™
Across the Silicon Spectrum: Xeon Phi to Quark – Unleash the Performance in Y...
Livros eletrônicos interativos com html5 e e pub3
Intel XDK New - Intel Software Day 2013
Hackeando a Sala de Aula
Android Native Apps Hands On
Android Fat Binaries
Android Native Apps Development

Escreva sua App sem gastar energia, agora no KitKat