Performance do Jetpack Compose no Wear OS

A performance no Wear OS é uma consideração de app essencial, 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 nele.

Além disso, crie e siga estratégias de medição de performance para validar se as técnicas neste documento estão funcionando conforme o esperado para seu app.

Técnicas essenciais para melhorar a performance

Comece com os tipos de ferramentas de desempenho mais impactantes: perfis de referência (incluindo perfis de inicialização) e o otimizador de código R8.

Antes de começar, recomendamos que você atualize sua dependência do Compose para pelo menos a versão 1.8, que introduziu vários novos recursos significativos e melhorou a estabilidade geral da biblioteca. Consulte as instruções em Declaração de dependências para saber como atualizar e, para mais informações, confira nosso blog sobre o lançamento da versão 1.8 e a conversa O que há de novo no Compose do I/O.

Perfis de referência

Use perfis de referência para melhorar a performance do app. 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 base. 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 seu 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 diminuir 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.

Quando você se sentir confortável com a configuração dos perfis de referência, leia Criar um perfil de inicialização para começar.

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 sobre como melhorar a visão geral do desempenho, revise 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 contém algumas das técnicas abordadas 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 prejudicar a performance.

Para entender melhor a performance do app, execute-o no modo de lançamento.

Só tire conclusões finais sobre o desempenho usando 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, que tem algumas diferenças importantes em relação à 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. Você pode acioná-lo manualmente executando o comando abaixo depois que o app for iniciado e tempo suficiente tiver passado para permitir que o instalador do perfil inicialize o perfil em segundo plano. Isso 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 agora é speed-profile.

Para situações em que a otimização é realizada na instalação, consulte Transferir o perfil de referência por sideload.

API UI Automator

Use a API UI Automator para comparar partes discretas da interface ao inspecionar as jornadas do usuário em busca de possíveis otimizações.

Ela funciona automatizando interações de interface de maneira programática.

Testes de Macrobenchmark

As macrobenchmarks testam casos de uso maiores do app, especialmente a inicialização e manipulações complexas de interface. Consulte o guia de implementação para começar.

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, é possível usar o recurso Rastreamento do sistema no Android Studio para inspecionar e diagnosticar a latência em fluxos de usuários potencialmente problemáticos. Com essas informações, você pode verificar o conteúdo dos seus perfis de linha de base e inspecionar a lógica do código para procurar lugares com possíveis ineficiências.

Mais ferramentas

Além das ferramentas de melhoria de desempenho, há outras que os desenvolvedores podem usar para aumentar a produtividade e melhorar o fluxo de trabalho.

Ferramentas de produtividade do Android Studio

O Android Studio oferece várias ferramentas que podem reduzir o tempo gasto procurando maneiras de melhorar o desempenho.

Por exemplo, usando ferramentas como Edição em tempo real e Pré-visualizações combináveis, é possível identificar uma interface instável, além das áreas associadas no código do app, para melhorar o 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 segmentada.

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.