SlideShare une entreprise Scribd logo
1  sur  29
Escreva sua App Android sem gastar energia
Felipe Pedroso
Community Manager

Globalcode – Open4education
Agenda
Por que economizar?
Vilões do consumo
Como medir?
O que fazer para economizar?

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

Globalcode – Open4education
E o mais importante!

Globalcode – Open4education
Os Vilões do consumo
Tela
Processador
GPU

I/O
Disco?
Rede

GPS
Sua App?
Globalcode – Open4education
Tela

Globalcode – Open4education
GPS

Globalcode – Open4education
Wakelock
Mecanismo para indicar que sua aplicação precisa
que o dispositivo fique “ligado”
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
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
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 definir direções para
navegação

gps-lock

Mantém o lock enquanto
usa GPS

YouTube

Assistir a um vídeo

PowerManagerService

Wakelock mantido
durante o período em que
o vídeo é reproduzido

Music
Player

Tocar uma música

PowerManagerService

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

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

“Prevent phone from sleeping.”

Globalcode – Open4education
Como medir?
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 (precisa de acesso root )

Globalcode – Open4education
Como medir?
/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

adb shell dumpsys battery

Globalcode – Open4education
Como medir?

Globalcode – Open4education
Economizando

Por onde começar?
Por quem gasta mais (hotspots)
O que for mais rápido ou fácil de fazer =P

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

Debug & Teste

Otimize o consumo

Otimize o desempenho

Globalcode – Open4education
Deixe-me dormir!

A bateria do seu dispositivo poderia durar semanas!

Globalcode – Open4education
Economizando
Cuidado com I/O!
Principalmente comunicação em rede

Não use Wakelock
Confie no Android, ele é legal
Se usar, escolha o mais adequado para sua App
NUNCA segure o wakelock sem necessidade

Use BroadcastReceiver só quando necessário
Otimize sua aplicação gráfica
Fundo de tela escuro?
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 Analyzers
Conjunto de ferramentas para análise e otimização de
aplicações com forte uso de gráficos

Globalcode – Open4education
Ciclo de Vida

Globalcode – Open4education
Android System Services

Globalcode – Open4education
Novidades – Android e Intel
Bay Trail
Beacon Mountain
Intel Software Day 22 e 23 Outubro

Emulador
HAXM

http://www.softwareday.com.br

Globalcode – Open4education
Globalcode – Open4education
Beacon Mountain

Globalcode – Open4education
www.softwareday.com.br

Globalcode – Open4education
Take aways
Economizar energia == Usuário feliz (true)
Wakelocks: evite, mas se necessário use com
moderação
Otimizar gráficos faz bem para a saúde do telefone

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
Felipe Pedroso
@felipeapedroso
felipe.pedroso@intel.com
http://software.intel.com

Globalcode – Open4education

Contenu connexe

Plus de Intel Software Brasil

Desafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataformaDesafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataformaIntel Software Brasil
 
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 XEIntel Software Brasil
 
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...Intel Software Brasil
 
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 paralelaIntel Software Brasil
 
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çãoIntel Software Brasil
 
Intel Technologies for High Performance Computing
Intel Technologies for High Performance ComputingIntel Technologies for High Performance Computing
Intel Technologies for High Performance ComputingIntel Software Brasil
 
Benchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoBenchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoIntel Software Brasil
 
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/VivoIntel Software Brasil
 
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...Intel Software Brasil
 
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-HTML5Intel Software Brasil
 
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 desempenhoIntel Software Brasil
 
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 DayIntel Software Brasil
 
Using multitouch and sensors in Java
Using multitouch and sensors in JavaUsing multitouch and sensors in Java
Using multitouch and sensors in JavaIntel Software Brasil
 

Plus de Intel Software Brasil (20)

Desafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataformaDesafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataforma
 
Yocto - 7 masters
Yocto - 7 mastersYocto - 7 masters
Yocto - 7 masters
 
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
 
Intel tools to optimize HPC systems
Intel tools to optimize HPC systemsIntel tools to optimize HPC systems
Intel tools to optimize HPC systems
 
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...
 
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
 
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
 
Notes on NUMA architecture
Notes on NUMA architectureNotes on NUMA architecture
Notes on NUMA architecture
 
Intel Technologies for High Performance Computing
Intel Technologies for High Performance ComputingIntel Technologies for High Performance Computing
Intel Technologies for High Performance Computing
 
Benchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenhoBenchmarking para sistemas de alto desempenho
Benchmarking para sistemas de alto desempenho
 
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
 
Html5 fisl15
Html5 fisl15Html5 fisl15
Html5 fisl15
 
IoT FISL15
IoT FISL15IoT FISL15
IoT FISL15
 
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
 
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
 
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
 

Escreva sua App Android sem gastar energia

Notes de l'éditeur

  1. In terms of power, we measure the average device power of a smart phone with a LCD display when system is in idle with display on. We change the display backlight level from 10% to 100%. Figure 2 below shows the trend of the average power associated with backlight change. The figure shows, the higher the backlight brightness is, the more power the device consumes. Therefore, if the application provides the UI for the user to decrease the brightness level, the device battery can last longer. In this way, the user can trade-off some tolerable user experience to extend the battery life time.
  2. ACQUIRE___WAKEUP -> Alarme -> SMS -> Ligação -> …. Mostraquetemosserviços de Sistema rodando
  3. ComparandoYoutube e Musica Player -> Pressione o botão de travar a tela-> Aparece a primeiradiferença entrewakelocks
  4. Sesuaempresa tem Apps legaisouvocê é um desenvolvedorusando frameworks NDK, converse comigoquenãoprecisarádescertanto o nível!
  5. Skype, era umavez …É possíveldesativaralguns Broadcaster receivers mesmoquedefinidos no AndroidManifestDependendo da tecnologia da suatela, a cor dos pixels podegastarmenosenergia