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 ricas e efeitos dinâmicos no Material 3 Expressive, é importante validar e melhorar o desempenho dos principais fluxos de trabalho do seu app.
Use o guia Performance do Jetpack Compose para configurar e desenvolver seu app com o Jetpack Compose e ter a melhor performance possível. Este documento destaca algumas das técnicas descritas nesse guia.
Crie e siga estratégias de medição de desempenho para validar se essas técnicas funcionam conforme o esperado para seu app.
Técnicas essenciais para melhorar o desempenho
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 a dependência do Compose para a versão 1.8 ou mais recente, que introduziu vários novos recursos significativos e melhorou a estabilidade geral da biblioteca. Consulte as instruções em Como declarar dependências para saber como atualizar. Para saber mais, leia nosso blog sobre a versão 1.8 (link em inglês) e assista à palestra do I/O Novidades no Compose (link em inglês).
Perfis de referência
Para melhorar o desempenho 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 diminuir os tempos de inicialização, reduzir os frames instáveis e oferecer outras melhorias 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 referência usando as seguintes técnicas:
- Use testes de macrobenchmark.
- Use comandos específicos do ADB para validar o estado de configuração do perfil do app. As etapas para as duas técnicas são explicadas no guia de medição e validação de desempenho.
Perfis de inicialização
Como um subconjunto de 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 compensação entre o tamanho do APK e a latência de inicialização.
Para começar, leia Criar um perfil de inicialização.
R8
Use o compilador R8 para reduzir e otimizar apps. O R8 remove códigos e recursos não utilizados, reescreve códigos para otimizar o desempenho no tempo de execução e muito mais.
Nos guias de visão geral para 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 as estratégias gerais de medição de desempenho no Android, consulte Visão geral da avaliação do desempenho de apps. Nesta seção, descrevemos 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 desempenho significativo, não usa perfis de referência e pode dificultar a detecção de problemas de código que podem afetar o desempenho.
Para entender melhor a performance do app, execute-o no modo de lançamento.
Tire conclusões finais sobre o desempenho apenas de testes realizados com apps em execução 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 em relação à depuração de versões. 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 abaixo 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 novamente o comando anterior 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 forma programática. Use essa API para comparar partes discretas da interface ao inspecionar jornadas do usuário em busca de possíveis otimizações.
Testes de Macrobenchmark
As macrocomparações 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 ver um exemplo de como usar macrobenchmarks para validar o desempenho de perfis de referência, consulte os exemplos de desempenho no GitHub.
Biblioteca JankStats
Use a biblioteca JankStats para monitorar e analisar problemas de desempenho 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 Rastreamento do sistema 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 desempenho, você pode usar outras ferramentas para melhorar sua produtividade e seu 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 a Edição em tempo real e as prévias de combináveis, é possível identificar elementos da interface instáveis, além das áreas associadas no código do app, para melhorar o desempenho.
Execute todos os testes de desempenho finais em um conjunto de dispositivos Wear OS físicos 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 app.
Se você estiver migrando de visualizações, confira o guia de migração e nossas práticas recomendadas para o desempenho do Jetpack Compose para verificar se as IUs do app têm um bom desempenho ao usar o Jetpack Compose.
Outros recursos
Para ficar atualizado com as novidades sobre o desempenho do Android, confira as notícias e os vídeos mais recentes no guia de desempenho do app.