A performance no Wear OS é uma consideração essencial para apps, já que muitos dispositivos Wear OS têm recursos limitados de CPU e GPU em comparação com dispositivos móveis maiores. Com a introdução de animações mais avançadas e efeitos dinâmicos no Material 3 Expressive, valide e melhore a performance dos principais fluxos de trabalho do seu app.
Use o guia Performance do Jetpack Compose para configurar e desenvolver seu app para uma performance ideal usando o Jetpack Compose. Este documento destaca algumas das técnicas descritas nesse guia.
Crie e siga estratégias de medição de performance para validar se essas técnicas funcionam como esperado no seu app.
Técnicas essenciais para melhorar a performance
Comece com os tipos de ferramentas de desempenho mais eficazes: perfis de referência (incluindo perfis de inicialização) e o otimizador de código R8.
Atualize sua dependência do Compose para a versão 1.8 ou mais recente, que introduziu vários recursos novos significativos e melhorou a estabilidade geral da biblioteca. Consulte as instruções em Declaração de dependências para saber como atualizar. Para saber mais, leia nosso blog sobre o lançamento da versão 1.8 e a conversa Novidades no Compose do I/O.
Perfis de referência
Para melhorar a performance do app, use perfis de referência. Agrupe as classes e os métodos que representam os principais fluxos de trabalho do app, que o sistema pode pré-compilar usando um perfil de referência. Isso pode reduzir os tempos de inicialização, diminuir os frames instáveis e oferecer melhorias adicionais de desempenho.
Cada biblioteca do Jetpack Compose vem com regras de perfil próprias. Quando o app depende de uma biblioteca, as regras de perfil da biblioteca são automaticamente mescladas e distribuídas com o APK do app para pré-compilação.
Verifique seus perfis de linha de base usando as seguintes técnicas:
- Use testes de macrobenchmark.
- Use comandos ADB específicos para validar o estado da configuração do perfil do app. As etapas para essas duas técnicas são explicadas no guia de medição e validação de performance.
Perfis de inicialização
Como um subconjunto dos perfis de referência, os perfis de inicialização otimizam ainda mais as classes e os métodos que contêm para reduzir a latência de inicialização do app.
Adicionar um perfil de inicialização aumenta o tamanho do APK do app. Portanto, antes de adicionar um à versão de produção, avalie a troca entre tamanho do APK e latência de inicialização.
Para começar, leia Criar um perfil de startup.
R8
Use o compilador R8 para reduzir e otimizar apps. O R8 remove códigos e recursos não utilizados, reescreve o código para otimizar o desempenho do tempo de execução e muito mais.
Nos guias da Visão geral de como melhorar a performance, leia as considerações sobre o R8, incluindo as etapas principais para remover recursos não utilizados.
Medição e validação de performance
Para saber mais sobre estratégias gerais de medição de performance no Android, consulte Visão geral da avaliação do desempenho de apps. Esta seção descreve algumas das técnicas discutidas nessa documentação.
Escolher uma variante de build para medições
Embora o modo de depuração seja útil para detectar muitos problemas, ele causa um custo de performance significativo, não usa perfis de referência e pode dificultar a detecção de problemas de código que podem afetar a performance.
Para entender melhor a performance do app, execute-o no modo de lançamento.
Tire conclusões finais sobre a performance apenas com base em testes realizados com apps executados com opções de build de lançamento e em dispositivos reais.
No entanto, ao fazer testes de comparativo de mercado, use a variante de build de comparativo de mercado, que tem algumas diferenças importantes da depuração de lançamento. Consulte o guia de configuração da Macrobenchmark para mais detalhes.
Validar os perfis de referência do app
Comece inspecionando o status do seu perfil:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
Se o status não for status=speed-profile
, as regras de perfil ainda não foram
aplicadas para otimizar o app.
As regras são aplicadas usando um job em segundo plano que é executado quando o dispositivo está carregado e inativo. Para acionar isso manualmente, execute o comando a seguir depois que o app for iniciado e tempo suficiente tiver passado para que o instalador do perfil inicialize o perfil em segundo plano. Esse processo geralmente leva cerca de 40 segundos.
adb shell cmd package bg-dexopt-job
Em seguida, execute o comando anterior novamente para verificar se o status é speed-profile
.
Para situações em que a otimização ocorre na instalação, consulte Transferir o perfil de referência por sideload.
API UI Automator
A API UI Automator automatiza interações de maneira programática. Use essa API para comparar partes discretas da interface ao inspecionar as jornadas do usuário em busca de possíveis otimizações.
Testes de Macrobenchmark
As macrobenchmarks testam casos de uso maiores do app, especialmente a inicialização e manipulações complexas de interface. Para começar, consulte o guia de implementação.
Para conferir um exemplo de uso de macrobenchmarks para validar a performance de perfis de linha de base, consulte os exemplos de performance no GitHub.
Biblioteca JankStats
Use a biblioteca JankStats para monitorar e analisar problemas de performance em aplicativos.
Consulte o exemplo da JankStats (em inglês) no GitHub.
Rastreamento do sistema
Com os novos tipos de animação introduzidos pelo Material 3 Expressive, use o recurso System Trace no Android Studio para inspecionar e diagnosticar a latência em jornadas do usuário potencialmente problemáticas. Com essas informações, verifique o conteúdo dos perfis de referência e identifique possíveis ineficiências na lógica do código.
Mais ferramentas
Além das ferramentas de melhoria de performance, você pode usar outras para aumentar a produtividade e o fluxo de trabalho.
Ferramentas de produtividade do Android Studio
O Android Studio oferece várias ferramentas que podem reduzir o tempo gasto para identificar melhorias de desempenho.
Por exemplo, usando ferramentas como Edição em tempo real e Pré-visualizações combináveis, é possível identificar elementos de interface instáveis, além das áreas associadas no código do app, para melhorias de desempenho.
Execute todos os testes finais de desempenho em um conjunto de dispositivos físicos Wear OS que representem com precisão sua base de usuários-alvo.
Isso é especialmente importante ao migrar para o Material 3 Expressive, que introduz recursos como fontes flexíveis e transformação de formas no seu app.
Se você estiver migrando de visualizações, confira nosso guia de migração e as práticas recomendadas para o desempenho do Jetpack Compose e verifique se as interfaces do seu app têm bom desempenho ao usar o Jetpack Compose.
Outros recursos
Para ficar por dentro das novidades sobre desempenho do Android, confira as Notícias e vídeos mais recentes no guia de desempenho de apps.