Performance de aplicativos Android: Dicas, exemplos e conceitos

50
Performance de aplicativos Dicas, exemplos e conceitos David Tiago Conceição @davidtiagocon #PerfAndroidTDC

Transcript of Performance de aplicativos Android: Dicas, exemplos e conceitos

Performance de aplicativos

Dicas, exemplos e conceitos

David Tiago Conceição@davidtiagocon

#PerfAndroidTDC

More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any

other single reason....William A. Wulf

Effective Java: Programming Language GuideJoshua Bloch - 2001

Otimização

Ciclos de melhoria de performance

1. Reunir informações2. Adquirir uma visão3. Ações e ajustes

Android Performance - Udacityudacity.com/course/android-performance--ud825

Performance de renderização

● Novo quadro a cada 16ms● “Skipped frame”

○ Visível no ADB Log

Performance de renderização

● Liberar a main thread● Multithreading

○ AsyncTask○ Handler○ Thread○ IntentService

Performance de renderização

● Programação reativa● Event Buses

Performance de renderização

● Callbacks na main thread

Performance de renderização

Performance de renderização

● Operações de I/O

Performance de renderização

Medindo tempos

● Depuração GPU

Medindo tempos

Medindo tempos

Performance de renderização

● Overdraw

Overdraw

Overdraw

● Detectando

Overdraw

Overdraw

Overdraw

Overdraw

Overdraw

● Sobreposição de planos de fundo● Hierarquia de layouts

Analisando layouts

● Hierarchy viewer

Analisando layouts

Analisando layouts

Analisando layouts

Analisando layouts

Memória

Android Performance - Udacity udacity.com/course/android-performance--ud825

Memória

Android Performance - Udacity udacity.com/course/android-performance--ud825

Memória

Memória

Memória

Memória

Memória

Memória

● LeakCanary○ github.com/square/leakcanary

Memória e Imagens

● Conversão em bitmaps

Memória e Imagens

● 3264x2448● 3,2MB

Memória e Imagens

Memória e Imagens

Memória e Imagens

Memória e Imagens

Memória e Imagens

Memória e Imagens

Memória

● Seja um bom cidadão○ Ciclo de vida○ onTrimMemory(level)

CPU Performance

CPU Performance

CPU Performance

Network Performance

● Antecipação de transferências● Segmentação das transferências

Network Performance

● Formatos e protocolos enxutos○ HTTP/2 e SPDY○ WebP

Network Performance

● Libs○ Volley○ OkHTTP○ Retrofit

OBRIGADO!David Tiago Conceição

@[email protected]

#PerfAndroidTDC