37
Android Performance Felipe Silveira [email protected]

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

Embed Size (px)

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

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

Android Performance

Felipe [email protected]

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

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

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

Por quê?

Quando?

Como?

Preciso contratar algum serviço?

Que ferramentas usar?

É realmente eficaz?

A minha app precisa?Que hora é o sorvete?

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

Por quê?

Quando?

Como?Que ferramentas usar?

É realmente eficaz?

A minha app precisa?Que hora é o sorvete?

Preciso contratar algum serviço?

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

Por quê?

Page 6: Android performance - Construindo aplicações rápidas de verdade
Page 7: Android performance - Construindo aplicações rápidas de verdade

Frustrado?É assim que seu usuário se

sente quando sua aplicação demora para

responder!

Page 8: Android performance - Construindo aplicações rápidas de verdade
Page 9: Android performance - Construindo aplicações rápidas de verdade

Vantagem Competitiva!

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

Quando?

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

"Premature optimization is the root of all evil"

Donald Knuth (1974)

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

Fazer corretamente

Analisar problemas+

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

First things first!

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

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

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

Na minha Barra forte?

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

Como?

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

Medir

Identificar o problema

Corrigir o problema

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

CPU / RAM / Views

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

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

Page 20: Android performance - Construindo aplicações rápidas de verdade
Page 21: Android performance - Construindo aplicações rápidas de verdade

… ou o dmtracedump!

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

Mas não se esqueça da RAM!

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

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

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

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

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

A performance de suas views é importante!

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

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

E use o hierarchyviewer!

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

Sem esquecer do lint!

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

Boas práticas!

Page 29: Android performance - Construindo aplicações rápidas de verdade
Page 30: Android performance - Construindo aplicações rápidas de verdade

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

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

Otimize suas queries!

Faça joins!

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

Trate o seu DB com carinho

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

Utilize a estrutura de dados mais indicada para cada caso!

Tome decisões corretas

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

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

Lembre-se que o GC é muito lento.

Economize Memória

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

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

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

Use multithreading!

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

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

deve ser feita na main thread!

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

Obrigado!

[email protected]

felipesilveira.com.br

linkedin.com/in/felipesilveira

twitter.com/felipesilveira

github.com/felipesilveira