android performance - construindo aplicações rápidas de verdade

37
Android Performance Felipe Silveira [email protected]

Upload: felipe-silveira

Post on 05-Dec-2014

278 views

Category:

Technology


3 download

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.

TRANSCRIPT

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