36
Globalcode – Open4education TDC2014 Escreva sua App sem gastar energia, agora no KitKat George H. Silva Android Community Manager

Escreva sua App sem gastar energia, agora no KitKat

Embed Size (px)

DESCRIPTION

Conheça as novidades que o KitKat trouxe relacionadas a economia, como isso pode afetar sua aplicação e como você pode ajudar o Android a gastar menos energia

Citation preview

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

TDC2014Arquitetura da solução

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

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

TDC2014Mantendo a CPU ligada

Liberando o wakelock

wakeLock.release();

Globalcode – Open4education

TDC2014Serviços em background

Caso você tenha problemas com serviços

dorminhocos…

WakefulBroadcastReceiver

Globalcode – Open4education

TDC2014Então chegou o KitKat

Globalcode – Open4education

TDC2014WakeLock Detector

Fonte:

https://android.googlesource.com/platform/frameworks/base/+/3714141d287c965ea3451831dd5167f63f8db87b%5E%21/

Globalcode – Open4education

TDC2014Controle de permissões

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

TDC2014E os Zumbis?

Globalcode – Open4education

TDC2014Como 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

ConsumidaTempo de Regojizo

Globalcode – Open4education

TDC2014Quem são os gastões?

Tela

Processador

GPU

I/O

Disco?

Rede

GPS

Sua App

Globalcode – Open4education

TDC2014

Globalcode – Open4education

TDC2014

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

TDC2014

Globalcode – Open4education

TDC2014

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

Globalcode – Open4education

TDC2014

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

[email protected]

http://software.intel.com/android