Android performance - Construindo aplicações rápidas de verdade

Preview:

DESCRIPTION

Slides da minha palestra no primeiro Mobile Day. Sua aplicação Android tem uma boa performance? Tem certeza que nada pode melhorar? Nesta palestra veremos como analisar e corrigir problemas de performance. Veremos ferramentas e métodos de análise de CPU, RAM e tudo mais que pode melhorar a performance de sua app.

Citation preview

Android Performance

Felipe Silveirafelipe@ciandt.com

Formado em Engenharia de Computação pela UNIFEI em 2007, trabalho com dispositivos móveis desde que me formei e com Android desde a versão 1.0 (2009)

26

Por quê?

Quando?

Como?

Preciso contratar algum serviço?

Que ferramentas usar?

É realmente eficaz?

A minha app precisa?Que hora é o sorvete?

Por quê?

Quando?

Como?Que ferramentas usar?

É realmente eficaz?

A minha app precisa?Que hora é o sorvete?

Preciso contratar algum serviço?

Por quê?

Frustrado?É assim que seu usuário se

sente quando sua aplicação demora para

responder!

Vantagem Competitiva!

Quando?

"Premature optimization is the root of all evil"

Donald Knuth (1974)

Fazer corretamente

Analisar problemas+

First things first!

Vale a pena colocar um guidão de carbono de alta performance...

Na minha Barra forte?

Como?

Medir

Identificar o problema

Corrigir o problema

CPU / RAM / Views

Para medir a performance de um cenário de sua aplicação, pode ser usado o traceview...

… ou o dmtracedump!

Mas não se esqueça da RAM!

A memória de sua aplicação pode ser analisada usando o DDMS.

E o MAT pode ser usado para analisar um dump de memória.

A performance de suas views é importante!

Faça interfaces leves, simples e rápidas!

E use o hierarchyviewer!

Sem esquecer do lint!

Boas práticas!

Avoid Creating Unnecessary Objects

Prefer Static Over Virtual

Use Static Final For Constants

Avoid Internal Getters/Setters

Use Enhanced For Loop Syntax

Consider Package Instead of Private Access with Private Inner Classes

Avoid Using Floating-Point

Know and Use the Libraries

Otimize suas queries!

Faça joins!

Não traga dados que você não precisa!

Trate o seu DB com carinho

Utilize a estrutura de dados mais indicada para cada caso!

Tome decisões corretas

Coloque na memória apenas o que é realmente necessário!

Lembre-se que o GC é muito lento.

Economize Memória

Mas nem sempre é possível ser rápido...

Use multithreading!

Nenhuma operação lenta - ou que pode ser lenta-

deve ser feita na main thread!

Obrigado!

felipe@ciandt.com

felipesilveira.com.br

linkedin.com/in/felipesilveira

twitter.com/felipesilveira

github.com/felipesilveira