android performance - construindo aplicações rápidas de verdade
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
Android Performance
Felipe [email protected]
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!
felipesilveira.com.br
linkedin.com/in/felipesilveira
twitter.com/felipesilveira
github.com/felipesilveira