SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
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

Mais procurados

Mais procurados (20)

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

Destaque

Desenvolvimento e análise de performance de jogos Android com Coco2d-HTML5
Desenvolvimento e análise de performance de jogos Android com Coco2d-HTML5Desenvolvimento e análise de performance de jogos Android com Coco2d-HTML5
Desenvolvimento e análise de performance de jogos Android com Coco2d-HTML5
Intel Software Brasil
 

Destaque (18)

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

Semelhante a Escreva sua App sem gastar energia, agora no KitKat

Semelhante a Escreva sua App sem gastar energia, agora no KitKat (20)

TDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featureTDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e feature
 
TDC2018SP | Trilha Smart Cities - Ensino de IoT e medicoes climaticas, o que ...
TDC2018SP | Trilha Smart Cities - Ensino de IoT e medicoes climaticas, o que ...TDC2018SP | Trilha Smart Cities - Ensino de IoT e medicoes climaticas, o que ...
TDC2018SP | Trilha Smart Cities - Ensino de IoT e medicoes climaticas, o que ...
 
Utilizando os Sensores dos Ultrabooks
Utilizando os Sensores dos UltrabooksUtilizando os Sensores dos Ultrabooks
Utilizando os Sensores dos Ultrabooks
 
TDC2018SP | Trilha IA - Big Data e Machine Learning: Desafios e oportunidades...
TDC2018SP | Trilha IA - Big Data e Machine Learning: Desafios e oportunidades...TDC2018SP | Trilha IA - Big Data e Machine Learning: Desafios e oportunidades...
TDC2018SP | Trilha IA - Big Data e Machine Learning: Desafios e oportunidades...
 
TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...
TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...
TDC2018SP | Trilha Cloud - Como eu reduzi cerca de 50% do custo de Cloud da e...
 
TDCSP2018 - Trilha Cloud - Redução de custo - Flávio Pimenta
TDCSP2018 - Trilha Cloud - Redução de custo - Flávio PimentaTDCSP2018 - Trilha Cloud - Redução de custo - Flávio Pimenta
TDCSP2018 - Trilha Cloud - Redução de custo - Flávio Pimenta
 
Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...
Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...
Internet das Coisas (IoT) – Um estudo de caso para economia de energia elétri...
 
Desenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e SpringDesenvolvimento RIA com GWT e Spring
Desenvolvimento RIA com GWT e Spring
 
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
Proposta para Aceleração de Desempenho de Algoritmos de Visão Computacional e...
 
TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#
TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#
TDC SP 2017 Trilha .NET - TechWar: Threads, ThreadPools e Tasks em C#
 
[TDCPOA2019] Upstream Kanban: exercitando a eficácia criativa do seu fluxo de...
[TDCPOA2019] Upstream Kanban: exercitando a eficácia criativa do seu fluxo de...[TDCPOA2019] Upstream Kanban: exercitando a eficácia criativa do seu fluxo de...
[TDCPOA2019] Upstream Kanban: exercitando a eficácia criativa do seu fluxo de...
 
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDKTDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
TDC2016SP - Evoluindo aplicações mobile com o Google VR SDK
 
TDC2016SP - Trilha Embarcados
TDC2016SP - Trilha EmbarcadosTDC2016SP - Trilha Embarcados
TDC2016SP - Trilha Embarcados
 
Usando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em LibrasUsando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em Libras
 
TDC Connections - Offline first - Como este requisito impacta seu projeto?
TDC Connections - Offline first - Como este requisito impacta seu projeto?TDC Connections - Offline first - Como este requisito impacta seu projeto?
TDC Connections - Offline first - Como este requisito impacta seu projeto?
 
Treinamento hadoop - dia1
Treinamento hadoop - dia1Treinamento hadoop - dia1
Treinamento hadoop - dia1
 
Conectando Coisas com IFTTT
Conectando Coisas com IFTTTConectando Coisas com IFTTT
Conectando Coisas com IFTTT
 
TDC 2014 - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...
TDC 2014  - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...TDC 2014  - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...
TDC 2014 - Trilha de Testes - Palestra "Quando meus testes terminam, se os b...
 
FISL14: Android sem gastarenergia
FISL14: Android sem gastarenergiaFISL14: Android sem gastarenergia
FISL14: Android sem gastarenergia
 
Através do espelho
Através do espelhoAtravés do espelho
Através do espelho
 

Mais de Intel Software Brasil

Using multitouch and sensors in Java
Using multitouch and sensors in JavaUsing multitouch and sensors in Java
Using multitouch and sensors in Java
Intel Software Brasil
 

Mais de Intel Software Brasil (15)

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

Escreva sua App sem gastar energia, agora no KitKat