Escreva sua App Android sem gastar energia
George H. Silva
Android Community Manager

Globalcode – Open4education
Agenda
Por que economizar?
Quem são os gastões
Hardware
Wakelocks

Medindo
Consumo de Energia
Identificando consumo da GPU

Economizando
Android Intel Inside
O que não muda
Emulador
Novidades

Conclusão

Globalcode – Open4education
Lembre-se!
Wakelocks
Pensou em emulador?
HAXM

Pensou em desempenho gráfico
Intel GPA

Globalcode – Open4education
Por que economizar?
Experiência do Usuário
Sucesso da sua App

Globalcode – Open4education
Fato da vida real

Globalcode – Open4education
Quem são os gastões?
Tela
Processador
GPU
I/O
Disco?
Rede

GPS
Sua App

Globalcode – Open4education
Tela

Globalcode – Open4education
GPS

Globalcode – Open4education
Medindo
Defina uma metodologia para sua App
Dicas:
Use as mesmas pré condições
Entre em modo avião (operadora)
Deixe o brilho da tela no mínimo
Use sempre o mesmo dispositivo
Tenha o mínimo de Apps instaladas
Não use o adb por conexão USB
tcp/ip connection (precise de acesso root )

Globalcode – Open4education
Medindo 2
/sys/class/power_supply/battery/uevent datafile
Informações disponíveis
POWER_SUPPLY_NAME
POWER_SUPPLY_STATUS
POWER_SUPPLY_VOLTAGE_NOW
POWER_SUPPLY_CURRENT_NOW
POWER_SUPPLY_CHARGE_FULL
POWER_SUPPLY_CHARGE_NOW

“usb”, “ac_charger”
0/1
uV / mV
uA

Watt-Hr
Watt-Hr

Globalcode – Open4education
Medindo 3

Globalcode – Open4education
Ciclo de desenvolvimento
Codificando sua aplicação

Debug & Teste

Otimize o consumo

Otimize o desempenho

Globalcode – Open4education
Economizando
Por onde começar?
Por quem gasta mais
O que for mais rápido ou fácil de fazer

Globalcode – Open4education
Ciclo de Vida

Globalcode – Open4education
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
Como são usados
Aplicação Ação feita
Todas

Serviço que pegou
Wakelock

Toque em qualquer UI Widget PowerManagerService
(Botão ou ListView, etc)

Comportamento
Solicita e libera o lock
após 5 segundos

Maps /
Lançar a App de Maps ou
Navegação definer direções para
navegação

gps-lock

Mantém o lock enquanto
usa GPS

YouTube

Assistir à um vídeo

PowerManagerService

Wakelock mantido
durante o período em que
o video é reproduzido

Music
Player

Tocar uma musica

PowerManagerService

Wakelock mantido
durante o período em que
a música toca

Globalcode – Open4education
Wakelock
Tipos
PARTIAL_WAKE_LOCK

CPU Tela
On Off

Teclado
Off

SCREEN_DIM_WAKE_LOCK

On

Dim

Off

SCREEN_BRIGHT_WAKE_LOCK On

Bright

Off

FULL_WAKE_LOCK

Bright

Bright

Flags
ACQUIRE_CAUSES_WAKEUP

ON_AFTER_RELEASE

On

Descrição
Force a tela e teclado a serem
ligados assim que o wakelock
for solicitado
Reinicia o timeout para que a
tela seja desligada após a
liberação do wakelock

Globalcode – Open4education
Permissões necessárias
AndroidManifest.xml:

“Prevent phone from sleeping.”

Globalcode – Open4education
Wakelock – demo

http://software.intel.com

Globalcode – Open4education
Melhore seus Gráficos
Assim como seu processador, sua unidade gráfica
consome energia
Estratégias para economia:
Simplifique as texturas
Diminua o uso de transparências
Diminua o número de objetos na tela
Diminua o FPS

Globalcode – Open4education
Como priorizar?
Intel Graphics Performance Analyzer
Conjunto de ferramentas para analize e otimização de
aplicações com forte uso de gráficos

Globalcode – Open4education
Conceitos básicos de GPU

Globalcode – Open4education
Vértices

Globalcode – Open4education
Primitivas

Globalcode – Open4education
Fragmentos

Rasterização

Processamento de fragmentos

Globalcode – Open4education
Pixels

Globalcode – Open4education
Demo GPA
Testes “E se …”
Ajudam a identificar gargalos

Globalcode – Open4education
Economizando
Use I/O em batches
Principalmente comunicação em rede

Não use Wakelock
Confie no Android, ele é legal

Use o wakelock mais apropriado
Nunca segure o wakelock sem necessidade

Use broadcaster receivers só quando necessário
Otimize sua aplicação gráfica com GPA
Fundo de tela escuro
Globalcode – Open4education
Android System Services

Globalcode – Open4education
Novidades
Intel System Studio
Beacon Montain
Silvermont
Intel Software Day 22 e 23 Outubro

Emulador
HAXM

http://www.softwareday.com.br

Globalcode – Open4education
Silvermont
Novo processador Atom
Saindo de tecnologia 32nm para 22nm
3x mais desempenho ou;
5x menos consumo de energia

Globalcode – Open4education
Globalcode – Open4education
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-measurementtechniques
http://developer.android.com/training/monitoring-device-state/index.html
http://software.intel.com/en-us/articles/developing-power-awareapplications-on-android
http://software.intel.com/en-us/articles/intel-hardware-acceleratedexecution-manager/
http://software.intel.com/en-us/articles/installing-the-intel-atom-tmandroid-x86-emulator-image-add-on-from-the-android-sdk-manager/
http://software.intel.com/en-us/vcsource/tools/beaconmountain

Globalcode – Open4education
Contato
George H. Silva
@ghsilva
george.silva@intel.com
http://software.intel.com

Globalcode – Open4education

Escreva sua App Android sem gastar energia - Intel Sw Day