Você pode identificar possíveis gargalos e melhorar a performance geral do app gravando a atividade do dispositivo durante um curto período e coletando rastros do tempo de inicialização do app. Nesta página, mostramos como configurar seu ambiente para testes de performance.
Usar a biblioteca Macrobenchmark
A biblioteca Macrobenchmark mede interações maiores do usuário final, como inicialização, interação com a interface e animações. A biblioteca oferece controle direto sobre o ambiente de performance que você está testando. Ela permite controlar a compilação, a inicialização e o encerramento do app para medir o tempo exato de inicialização. Isso também minimiza o ruído e as diferenças entre execuções de teste.
Usar dispositivos intermediários para identificar possíveis problemas de performance
Teste a performance em cada tipo de dispositivo do seu interesse. Dispositivos sofisticados com componentes rápidos podem ocultar problemas de performance em dispositivos mais antigos, lentos ou com pouca RAM. Dispositivos mais simples podem levar mais tempo para carregar dados ou executar códigos, facilitando a identificação de gargalos. Otimizar a performance para dispositivos mais simples geralmente também beneficia a otimização para dispositivos sofisticados.
Reduzir o ruído
- Rede: teste seus apps ou processos com velocidades de conexão Wi-Fi fortes e estáveis. Se o tempo de inicialização do app incluir uma solicitação de rede, é nesse momento que a variabilidade poderá ocorrer.
- Uso de RAM: não execute outros apps em segundo plano no dispositivo durante o teste de performance da inicialização.
- Bateria: confira se o dispositivo está carregado para evitar que a performance seja limitada por falta de energia do hardware.
Testar em builds de lançamento
Use builds de lançamento para testar a performance. Os builds de depuração são inadequados para depurar a performance, já que não oferecem otimização de compilação têm um impacto significativo.
No entanto, não há problema em usar um build de lançamento não ofuscado para identificar classes e
nomes de operações. Especificamente, recomendamos ativar a minificação
(R8) e desativar a ofuscação com
-dontobfuscate
no arquivo Proguard.
É mais fácil identificar layouts e recursos quando o build não está
ofuscado.
Inclua a flag profileable no manifesto para que seus eventos personalizados fiquem visíveis em builds não depuráveis. Essa flag está disponível no Android 10 (nível 29 da API) e mais recentes.
Adicionar rastros personalizados às operações do app
Adicione rastros personalizados ao app para facilitar a identificação de quais operações são realizadas em comparação com outras bibliotecas. Isso oferece mais contexto sobre o que o app está fazendo a todo momento.