escreva sua app sem gastar energia, agora no kitkat

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

Upload: intel-software-brasil

Post on 29-Nov-2014

251 views

Category:

Mobile


1 download

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

TRANSCRIPT

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