O Jetpack Compose oferece uma excelente performance por padrão. Configure seu app usando as práticas recomendadas para evitar armadilhas comuns e otimizar o desempenho do aplicativo do Compose.
Habilidades do Android
Ver no GitHubDesempenho do Jetpack Compose
android skills add jetpack-compose-performanceComo fazer comparativos de mercado do Jetpack Compose
Para validar o desempenho do Jetpack Compose em relação às visualizações, usamos comparativos de mercado hero, que se concentram em jornadas importantes e reais do usuário, como a inicialização a frio de um app ou a rolagem de uma lista ou grade com imagens. Realizamos esses comparativos de mercado usando o app Pokedex de código aberto, comparando as implementações de Visualizações e Compose.
Esses comparativos de mercado mostram que o Compose tem o mesmo desempenho de instabilidade das visualizações ao rolar desde o Compose 1.9.0 (alcançando 0% de instabilidade no Pixel 6).
| Versão do Compose | Dispositivo | Instabilidade excessiva em visualizações (pp) |
|---|---|---|
| 1.3.3 | Pixel 3a | +0,35 |
| 1.4.3 | Pixel 3a | +0,41 |
| 1.5.4 | Pixel 3a | +0,42 |
| 1.6.8 | Pixel 3a | +0,21 |
| 1.7.8 | Pixel 3a | +0,36 |
| 1.8.0 | Pixel 3a | +0,38 |
| 1.9.0 | Pixel 3a | 0 |
| 1.10.0 | Pixel 3a | 0 |
| 1.11 | Pixel 6 | 0 |
| 1.12 | Pixel 6 | 0 |
Para mais métricas e informações sobre nossas metodologias, consulte Hero benchmarks.
Principais conceitos
Estes são alguns dos principais conceitos de desempenho no Compose:
- Fases: entender as fases de composição, layout e desenho é crucial para otimizar a forma como o Compose atualiza a interface.
- Perfis de referência: esses perfis pré-compilam códigos essenciais, o que resulta em inicializações de apps mais rápidas e interações mais suaves.
- Estabilidade: entenda como o Compose compara parâmetros durante a recomposição para que você possa pular o trabalho desnecessário sem introduzir verificações de igualdade dispendiosas.
Configurar o app corretamente
Se o app tiver uma performance ruim, pode haver um problema de configuração. Um bom ponto de partida é verificar as opções de configuração abaixo:
- Criar no modo de lançamento com o R8: tente executar o app no modo de lançamento. O modo de depuração é útil para detectar muitos problemas, mas causa um custo de performance e pode dificultar a detecção de outros problemas. Você também precisa ativar a otimização e a redução com o compilador R8 para garantir um build de lançamento eficiente e de alta performance.
- Use perfis de referência: eles melhoram o desempenho ao pré-compilar o código para jornadas ideais do usuário. O Compose inclui um perfil padrão, mas o ideal é que você também crie um específico para o app. Saiba mais sobre os perfis de referência na documentação geral de desempenho do Android
Ferramentas
Conheça o pacote de ferramentas disponíveis para ajudar você a medir e analisar o desempenho do seu app do Compose.
Práticas recomendadas
Ao desenvolver seu app com o Compose, lembre-se destas práticas recomendadas:
- Evite cálculos caros: use
rememberpara armazenar em cache os resultados de cálculos caros. - Ajude layouts lentos: forneça parâmetros
keyecontentTypeestáveis para layouts lentos para minimizar recomposições desnecessárias e permitir a reutilização de slots. - Limite recomposições desnecessárias: use
computedStateOf(no Compose 1.13 e versões mais recentes) ouderivedStateOfpara limitar recomposições ao ler estados que mudam rapidamente. - Adiar leituras de estado: adie as leituras de estado pelo maior tempo possível envolvendo-as em funções lambda.
- Use modificadores lambda para mudar o estado: use modificadores baseados em lambda,
como
Modifier.offset { ... }, para variáveis de estado que mudam com frequência. - Evite gravações inversas: nunca grave em um estado que já foi lido em um elemento combinável.
Para mais detalhes, consulte o guia de práticas recomendadas.
Visualizações
Se você estiver trabalhando com visualizações em vez do Compose, consulte o guia dedicado Melhorar o desempenho do layout.
Outros recursos
- Guia de desempenho do app: descubra práticas recomendadas, bibliotecas e ferramentas para melhorar o desempenho no Android.
- Inspecionar o desempenho: inspecione o desempenho do app.
- Comparativo de mercado: compare o desempenho do app.
- Inicialização do app: otimize a inicialização do app.
- Perfis de referência: entenda os perfis de referência.