38

Gerenciamento de memoria

Embed Size (px)

DESCRIPTION

Minha palestra na Android Conference Brasil

Citation preview

Stefan Horochovec• Consultor Rich Internet Applications – Avanti Prima;• Instrutor: Adobe Flex e Java – RIACycle;• Instrutor: Android – RIACycle; • Espec. em Eng. de Software e Gestão de Projetos;• Autor: Oreilly, InsideRIA, iMasters;• Blog: http://www.horochovec.com.br• Twitter: http://twitter.com/horochovec

Agenda• Introdução;• Recursos SDK;

– largeHeap;– CG;– Bitmaps;

• Ferramentas de auxílio;– Logcat;– DDMS;– MAT;

• Surpresa da RIACycle;• Perguntas;

INTRODUÇÃO

Gerenciamento de Memória

Desafio?Problema?

Gerenciamento de Memória

Gerenciamento de Memória

Gerenciamento de Memória

Gerenciamento de Memória

HTC Dream

196mb

Gerenciamento de Memória

Motorola Milestone

256mb

Gerenciamento de Memória

Motorola Milestone 2

512mb

Gerenciamento de Memória

Samsung Nexus

1gb

Gerenciamento de Memória

Galaxy Tab

512mb

Gerenciamento de Memória

Galaxy Tab 10.1

1gb

Gerenciamento de Memória

Tablet Wei Mini Tab

256mb

Gerenciamento de Memória

Nosso desafio é a diversidade de aparelhos

disponíveis ao usuário

Gerenciamento de Memória

Desafios são motivadores!

Gerenciamento de Memória

21 Milhões de usuários no Brasil usaram 3G em 2010

Gerenciamento de Memória

21 Milhões– 34% usaram o navegador– 15% ouviram música– 66% usaram sms– 32% instalaram uma app

RECURSOS SDK

Gerenciamento de Memória

android:largeHeap="true"

Gerenciamento de Memória

Garbage Collector

Gerenciamento de Memória

<= Froyo• Garbage Collector congela a aplicação;• Leitura de todo heap;• Tempo de parada maior que 100ms;

Gerenciamento de Memória

>= Gingerbread• Garbage Collector processo concorrente;• Leitura parcial;• Tempo de parada menor que 5ms;

Gerenciamento de Memória

Bitmaps

Gerenciamento de Memória

< Honeycomb• Imagem armazenado em outro objeto;• Difícil de debugar:

– Qualquer imagem tem o mesmo tamanho;• GC - recycle() (lento);

Gerenciamento de Memória

> Honeycomb• Imagem armazenada na memoria do

processo;• Fácil de debugar;• Garbage Collector processo concorrente;

FERRAMENTAS

Gerenciamento de Memória

LOGS/LOGCAT

Gerenciamento de Memória

• D/dalvikvm(1697): GC_EXPLICIT freed 209K, 37% free 5243K/8259K, external 0K/0K, paused 79ms

• [Tipo] [Tamanho], [Estatisticas], [Estatisticas Externas], [Tempo]

Gerenciamento de Memória

DDMS

Gerenciamento de Memória

Eclipse Memory Analyser(MAT)

SURPRESA RIACYCLE

http://riacycle.com/pacotemobile

http://riacycle.com/androidCódigo: ANDROIDSYS11

Referências

• Google IO;• Android Dev Guide;• Android Reference;• Android Developers;• Eclipse Memory Analyser; • Nielsen;

Perguntas?

OBRIGADO