Melhorias holísticas
O Plug-in do Android para Gradle (AGP) é usado para criar apps Android. Muitas ferramentas de melhoria de desempenho dependem de novas versões do AGP. Para acessar as melhorias mais recentes, os apps precisam usar a versão mais recente do AGP.
Avaliação Recomendação
AGP 7.2 e versões anteriores (0 pontos)
Muitas ferramentas de performance não estão disponíveis ou estão desatualizadas.

As versões do AGP até a 7.2 não oferecem suporte a perfis de referência nem a perfis de inicialização. As ferramentas de minificação e otimização também estão desatualizadas e não oferecem melhorias de performance mais recentes. Essa é uma grande oportunidade perdida em termos de impacto na inicialização do app e no desempenho de execução.

Faça upgrade urgente para uma versão mais recente do AGP e melhore o suporte a ferramentas de performance.

Ao fazer upgrade para uma versão mais recente do AGP, você terá acesso às ferramentas de desempenho mais recentes. Isso permitirá que você melhore o desempenho do app e a satisfação do usuário.
Confira as orientações do Assistente de upgrade do AGP para saber como fazer upgrade para uma versão mais recente do AGP.

AGP 7.3 (1 ponto)
Suporte muito limitado para ferramentas de performance de alto impacto.

O Plug-in do Android para Gradle (AGP) 7.3 oferece suporte básico para perfis de referência. Embora os perfis de referência funcionem, esse app não vai conseguir aproveitar ao máximo. Além disso, os perfis de inicialização não são compatíveis com essa versão. As ferramentas de minificação e otimização também estão desatualizadas e não oferecem melhorias recentes de performance. Essa é uma oportunidade de desempenho perdida para inicialização e execução de apps.

Faça upgrade para uma versão mais recente do AGP e melhore o suporte a ferramentas de performance.

O aumento de versão principal de 7 para 8 pode ser assustador, mas vale a pena o investimento do ponto de vista de desempenho. Ao fazer upgrade para uma versão mais recente do AGP, você terá acesso às ferramentas de desempenho mais recentes. Isso melhora significativamente a performance de inicialização e execução. Isso permitirá que você melhore o desempenho do app e a satisfação do usuário.
Confira as orientações do Assistente de upgrade do AGP para saber como fazer upgrade para uma versão mais recente do AGP.

AGP 7.4 a 8.1 (cinco pontos)
Suporte limitado a ferramentas de performance de alto impacto.

As versões 7.4 a 8.1 do Plug-in do Android para Gradle (AGP) oferecem suporte a perfis de referência. A partir do AGP 8.0, os perfis de referência podem ser usados com um plug-in dedicado do Gradle. Os perfis de inicialização não são compatíveis com o AGP 8.2. As ferramentas de minificação e otimização também estão desatualizadas e não oferecem melhorias de performance mais recentes.

Faça upgrade para uma versão mais recente do AGP assim que possível.

O aumento da versão principal de 7 para 8 pode ser assustador, mas vale o investimento do ponto de vista do desempenho. Ao fazer upgrade para uma versão mais recente do AGP, você terá acesso às ferramentas de performance mais recentes. Isso permitirá que você melhore o desempenho de inicialização e de execução do app, além da satisfação do usuário.
Confira as orientações do Assistente de upgrade do AGP para saber como fazer upgrade para uma versão mais recente do AGP.

AGP 8.2 a 8.5 (15 pontos)
A maioria das ferramentas de performance de alto impacto desbloqueadas.

Os perfis de referência e de inicialização estão totalmente disponíveis ao usar o Plug-in do Android para Gradle versão 8.2 ou mais recente. Você também pode usar o plug-in de perfis de referência para Gradle. As melhorias internas com otimizações do R8 também são recentes e têm grande impacto. Faça upgrade para uma versão mais recente do AGP para melhorar a performance de inicialização e execução, já que ela também traz uma versão mais recente do R8.

Fique por dentro das versões do AGP.

As versões mais recentes do AGP vão manter o app atualizado com as ferramentas de desempenho mais recentes. Isso permite melhorar a performance do app e a satisfação do usuário. O desempenho da inicialização e do tempo de execução do app pode ser melhorado com as melhorias avançadas do R8, dos perfis de referência e das otimizações de layout DEX.

AGP 8.6+ (20 pontos)
Suporte totalmente desbloqueado a ferramentas de desempenho de alto impacto

Ao usar a versão mais recente do AGP, esse app pode utilizar plenamente as ferramentas de desempenho mais recentes. Melhorias internas com o R8, os perfis de referência e as otimizações de layout DEX têm suporte total. Use essas ferramentas para melhorar o desempenho do app e a satisfação do usuário.

Continue assim.

Fique por dentro das versões mais recentes do AGP para garantir que o app sempre use as ferramentas de performance mais recentes. Verifique se o perfil de inicialização está configurado corretamente e se a configuração R8 está funcionando como esperado. Confira as orientações gerais de desempenho para saber como melhorar o desempenho do tempo de execução do app.

Melhorias holísticas
O compilador R8 oferece melhorias de desempenho em muitas áreas. O tamanho do app, o tempo de inicialização, a renderização no momento de execução, o uso de memória, as falhas, os ANRs e muito mais são aprimorados com a aplicação de técnicas de minificação e otimização. Para aproveitar ao máximo essas melhorias, os apps precisam usar o R8 no modo completo para minimizar e otimizar o código.
Avaliação Recomendação
Não ativado (0 pontos)
Esse app não tem muitas melhorias de desempenho.

Não usar o redimensionamento e a otimização de código com o R8 é uma grande oportunidade perdida para melhorar o desempenho do app. Muitas melhorias internas só estão disponíveis quando o R8 está ativado.

Ative o R8 com urgência para liberar melhorias importantes de desempenho.

Ative as otimizações do R8 assim que possível. Isso vai proporcionar muitas melhorias de desempenho. Depois, faça outra avaliação para receber mais orientações.

Modo de compatibilidade ou exceções importantes (-dontoptimize, -dontshrink) (5 pontos)
Desativar as otimizações é uma grande oportunidade perdida para melhorar a performance do app.

O desempenho de execução deste app não está totalmente otimizado. Essa é uma grande oportunidade perdida para melhorar o desempenho do app.

Aproveite o potencial de performance ativando as otimizações do R8.

Ative as otimizações do R8 assim que possível e remova todas as exceções -dontoptimize e -dontshrink. Isso também vai permitir ativar outras otimizações, como as Otimizações de layout DEX. Depois que o R8 for ativado no modo completo, volte para fazer outra avaliação e receber mais orientações.

Modo completo do R8, minificado, otimizado e redução de recursos (20 pontos)
Potencial de alto desempenho desbloqueado.

Ao ativar as otimizações do R8, seu app fica em uma ótima posição para melhorias de desempenho que são fornecidas por otimização, ofuscação e redução de código. Esse app está pronto para realizar mais melhorias no desempenho de inicialização usando as Otimizações de layout DEX.

Verifique se as regras Keep estão atualizadas.

À medida que o app evolui, as regras do R8 precisam ser atualizadas para garantir que ele ainda esteja totalmente otimizado. Concentre os esforços de melhoria de desempenho em outras áreas. Você já leu sobre perfis de inicialização e otimizações de layout DEX?

Desempenho da inicialização

Os perfis de referência melhoram a velocidade de execução do código desde a primeira inicialização, oferecendo melhorias de desempenho para cada nova instalação e atualização do app. Essa otimização guiada por perfil (PGO, na sigla em inglês) permite que os apps otimizem a inicialização, reduzam os problemas de rendering e melhorem o desempenho geral do tempo de execução para usuários finais desde o primeiro lançamento. Um perfil de referência é criado e usado para a inicialização do app?

Avaliação Recomendação
Nenhuma / desconhecida (0 ponto)
Não ter um perfil de referência é uma grande oportunidade perdida.

Os perfis de referência podem melhorar a velocidade de execução do código na primeira inicialização em cerca de 30%, evitando a interpretação e as etapas de compilação just-in-time (JIT) para caminhos de código incluídos. Verifique se o app tem um perfil de referência e adote a tecnologia se ele não tiver.

Adote os perfis de referência com urgência.

Os perfis de referência melhoram a velocidade de execução do código na primeira inicialização em cerca de 30%, evitando a interpretação e as etapas de compilação just-in-time (JIT) para caminhos de código incluídos. Confira as orientações sobre como adotar essas práticas e faça a avaliação novamente para receber uma pontuação atualizada.

Manualmente, uma vez ou com pouca frequência (2 pontos)
A automação é fundamental para manter os perfis de referência atualizados.

Atualizar perfis de referência manualmente pode ser um problema. especialmente se for apenas uma vez. Os perfis de referência precisam ser gerados novamente para cada versão para maximizar o potencial de ganho de desempenho na inicialização do app e no tempo de execução.

Invista na automação da criação de perfis de referência.

O plug-in do perfil de referência para Gradle é a maneira recomendada de automatizar a criação de perfis de referência. Ele pode ser configurado para gerar automaticamente um novo perfil para tipos de build específicos, como variantes ou builds de lançamento. A geração de perfil precisa ser automatizada para aproveitar a otimização de layout DEX.

Manualmente para cada versão (5 pontos)
A automação é fundamental para manter os perfis de referência atualizados.

Atualizar perfis de referência manualmente pode ser um problema. Além disso, um perfil de referência desatualizado não ajuda a melhorar o desempenho da inicialização ou do tempo de execução do app.

Invista na automação da criação de perfis de referência.

O plug-in do perfil de referência para Gradle é a maneira recomendada de automatizar a criação de perfis de referência. Ele pode ser configurado para gerar um perfil novo para tipos de build específicos, como variantes ou builds de lançamento, de forma automática.

Automatizado para cada versão (15 pontos)
A automação facilita a atualização dos perfis de referência.

Um perfil de referência atualizado é uma ótima maneira de melhorar a inicialização do app e o desempenho de execução. Fazer isso automaticamente para cada versão é uma maneira quase perfeita de garantir perfis de referência de alta qualidade.

Mantenha a cobertura do perfil de referência alta. Considere a geração de perfil noturna.

Os perfis de referência só são úteis se forem atualizados. Considere gerá-los todas as noites para detectar problemas com antecedência e garantir que a geração de perfis funcione bem quando um lançamento for necessário. Confira o plug-in do perfil de referência para Gradle para saber como automatizar ainda mais a criação do perfil de referência.

Automatizado para builds e lançamentos noturnos (20 pontos)
Essa é a melhor maneira de manter os perfis de referência atualizados.

Um perfil de referência que é gerado todas as noites e para cada versão é atualizado e fica pronto para ser usado para melhorar a inicialização do app e o desempenho de execução sempre que uma versão é lançada. Essa preparação dá ao seu app uma vantagem em relação à performance. Muito bem!

Continuar melhorando a cobertura do perfil de referência.

Você aprendeu a automatizar a geração de perfis de referência para este app. Continue assim. As jornadas do usuário cobertas pelo perfil de referência também precisam ser atualizadas regularmente e expandidas à medida que o app cresce. Isso garante que o perfil de referência esteja sempre atualizado e pronto para ser usado para melhorar a inicialização do app e o desempenho de execução.

Desempenho da startup

Os perfis de referência eliminam a necessidade de executar a compilação JIT enquanto um recurso é usado. Isso melhora o desempenho da renderização no tempo de execução. Adicionar perfis de referência para jornadas ideais do usuário pode melhorar o desempenho geral do app.

Quantas jornadas do usuário são cobertas pelos perfis de referência?
Avaliação Recomendação
Nenhuma / desconhecida (0 pontos)
Perder melhorias de desempenho no tempo de execução.

A performance de execução do app pode ser melhorada com a adoção de perfis de referência para jornadas ideais do usuário. Ao adotar apenas os perfis de referência para a inicialização do app, você perde uma ótima oportunidade de melhorar o desempenho de execução e a satisfação do usuário.

Adicione perfis de referência com urgência para melhorar o desempenho de execução.

Adote perfis de referência para inicialização do app e jornadas ideais do usuário. Essas são jornadas usadas por um grande número de usuários e são essenciais para a funcionalidade do app. Volte e refaça a avaliação para receber uma pontuação atualizada e mais orientações.

Inicialização do app +1 jornada do usuário (5 pontos)
Perder melhorias de desempenho no tempo de execução.

O desempenho do tempo de execução do app pode ser melhorado adotando perfis de referência para jornadas ideais do usuário. Ao adotar apenas perfis de referência para a inicialização do app ou uma única jornada do usuário, você perde uma ótima oportunidade de melhorar o desempenho de execução e a satisfação do usuário.

Implemente perfis de referência para mais jornadas do usuário.

Adote perfis de referência para mais jornadas do usuário. Ao fazer isso, o app vai continuar melhorando o desempenho do tempo de execução e a satisfação do usuário. Volte e refaça a avaliação para receber uma pontuação atualizada e mais orientações.

Inicialização do app +2 jornadas do usuário (10 pontos)
Os perfis de referência oferecem mais melhorias de desempenho.

Ao adotar perfis de referência para mais jornadas do usuário, esse app tem o potencial de melhorar a performance de execução e a satisfação do usuário.A performance de execução do app pode ser melhorada ao adotar perfis de referência para jornadas de usuário críticas.
Ao adotar perfis de referência apenas para a inicialização do app ou algumas jornadas do usuário, você perde uma ótima oportunidade de melhorar a performance de execução e a satisfação do usuário.

Continue adotando perfis de referência para mais jornadas do usuário.

Identifique mais jornadas de usuário que são essenciais para a funcionalidade do app e adote perfis de referência para elas. Ao fazer isso, o app vai continuar melhorando o desempenho do tempo de execução e a satisfação do usuário. Volte e refaça a avaliação para receber uma pontuação atualizada e mais orientações.

Inicialização do app +3 jornadas do usuário (15 pontos)
Cobertura excelente do perfil de referência.

Cobertura da inicialização do app e de várias jornadas de usuário importantes com perfis de referência é uma ótima maneira de melhorar a performance e a satisfação do usuário. Talvez haja mais jornadas de usuário que podem ser cobertas pelos perfis de referência. Mas esse app já está em ótima forma em termos de cobertura do perfil de referência. Continue o bom trabalho.

Ampliar a cobertura do perfil de referência para liberar todo o potencial de performance.

Continue promovendo a adoção do perfil de referência. Melhore a adoção do R8 para reduzir o tamanho do código e melhorar o desempenho geral do app no tempo de execução. Além disso, considere adotar as Otimizações de layout DEX para melhorar ainda mais a performance de inicialização do app.

Desempenho da inicialização

Os perfis de inicialização são usados pelo sistema de compilação para otimizar ainda mais as classes e os métodos que eles contêm, melhorando o layout do código nos arquivos DEX do APK. Com os perfis de inicialização, a inicialização do app geralmente é entre 15% e 30% mais rápida do que apenas com os perfis de referência.

O app usa perfis de inicialização para otimizar o layout dex?
Avaliação Recomendação
Não usado / desconhecido (0 pontos)
Grande oportunidade perdida de melhorar o desempenho da inicialização do app.

Os perfis de inicialização são usados pelo sistema de compilação para otimizar ainda mais as classes e os métodos que eles contêm, melhorando o layout do código nos arquivos DEX do APK. Com os perfis de inicialização, a inicialização do app geralmente é de 15% a 30% mais rápida do que com os perfis de referência.
Os perfis de inicialização são usados para melhorar o desempenho da inicialização do app. Ao não adotar as Otimizações de layout DEX usando perfis de inicialização, esse app perde uma ótima oportunidade de melhorar a performance de inicialização e a satisfação do usuário.

Invista com urgência na adoção dos perfis de startups.

Adote as Otimizações de layout DEX usando perfis de inicialização. Isso melhora o desempenho de inicialização do app e a satisfação do usuário. O uso de otimizações de layout DEX exige o uso do AGP 8.2 ou mais recente e a ativação da minimização/R8.

Ponto de entrada principal (10 pontos)
Otimização do desempenho de inicialização para o ponto de entrada principal.

Usar perfis de inicialização para o ponto de entrada principal é uma ótima maneira de melhorar o desempenho de inicialização do app. O desempenho aprimorado do app tem um impacto positivo na experiência do usuário. Continue o bom trabalho.

Considere incluir mais pontos de entrada.

O ponto de entrada principal do app é o mais importante para um perfil de startup. Se o app tiver mais pontos de entrada, considere cobri-los com perfis de inicialização. Isso pode ser notificações ou ícones de inicialização complementares.

A maioria dos pontos de entrada (15 pontos)
Cobrir os pontos de entrada mais usados é uma ótima maneira de melhorar a performance de inicialização do app.

Uma experiência otimizada de inicialização é ótima para a satisfação do usuário. Ao adotar perfis de inicialização para a maioria dos pontos de entrada, esse app está em ótima forma em termos de desempenho de inicialização do ponto de vista das ferramentas. Continue o bom trabalho.

Investigue outras melhorias de desempenho e mantenha as regressões sob controle.

Garanta que o perfil de inicialização seja gerado automaticamente para cada build de lançamento automatizando a tarefa Otimizações de layout DEX com o plug-in de perfis de referência para Gradle.
Continue monitorando o desempenho da inicialização do app com as macrobenchmarks.

Adoção do Compose
As versões mais recentes do Jetpack Compose oferecem melhorias de desempenho em relação às versões anteriores. Para ter acesso a essas melhorias, os apps precisam usar a versão mais recente do Compose. O app usa a versão estável mais recente do Jetpack Compose?
Avaliação Recomendação
Não usar o Compose (5 pontos)
Comece a usar o Compose

O Jetpack Compose é um kit de ferramentas moderno recomendado pelo Android para criar interfaces nativas. Ele simplifica e acelera o desenvolvimento da UI no Android. Dê vida ao seu app rapidamente com menos código, ferramentas eficientes e APIs Kotlin intuitivas.

Comece a migrar sua interface para o Jetpack Compose

O Jetpack Compose permite interoperabilidade com o sistema de visualizações atual. Há várias estratégias para migrar partes da sua interface para o Compose e aproveitar os benefícios que ele oferece. Confira nossa documentação sobre as estratégias de migração ou, como alternativa, confira nosso codelab para um projeto mais prático.

Compose 2022.10.00 a 2023.10.01 (1 ponto)
Muitos recursos novos e melhorias de desempenho estão faltando!

Ao continuar usando uma versão antiga do Jetpack Compose, você vai perder todos os novos recursos e melhorias. O Jetpack Compose foi projetado para ser desagregado do sistema Android para que os desenvolvedores possam decidir quando fazer upgrade.

Fazer upgrade para uma versão mais recente assim que possível

O desempenho continua sendo nossa prioridade, e, ao fazer upgrade, você pode notar melhorias significativas em todos os aspectos. Estamos vendo uma melhoria de cerca de 20% na performance de rolagem, 12% no tempo de inicialização e 22% na performance dos elementos combináveis de texto. Confira mais informações sobre as melhorias que foram adicionadas ao Jetpack Compose 2024.01.00 na postagem do blog de lançamento (link em inglês).

Compose 00/01/2024 a 2024.08.00 (2 pontos)
A versão mais recente do Jetpack Compose oferece melhor performance e novos recursos

Ao não adotar as versões mais recentes do Jetpack Compose, você não recebe todas as correções de bugs, melhorias de desempenho e novos recursos em que estamos trabalhando para ajudar a criar interfaces incríveis.

Fazer upgrade para a versão mais recente para mais melhorias de desempenho

Com a atualização para a versão mais recente do Compose, observamos uma melhoria de 17% no desempenho do tempo até o primeiro pixel nos nossos comparativos de mercado. Nesta versão, também ativamos por padrão o novo modo de pular com força, que permite reduzir drasticamente as composições desnecessárias. Além disso, melhoramos a API de indicação para permitir a criação lenta de ondulações, otimizamos a representação interna do Compose para uma estrutura de dados mais eficiente e começamos a gerar códigos mais eficientes.

Confira mais informações sobre o que foi lançado na postagem do blog sobre o Compose 2024.09.00 (link em inglês).

Compose mais recente e estável (5 pontos)
Parabéns! Esse app está atualizado com a versão estável mais recente do Compose.

Usar a versão mais recente do Compose é uma ótima maneira de aproveitar as melhorias de desempenho em cada nova versão.

Continue assim

Fique por dentro das versões estáveis mais recentes do Compose para continuar aproveitando as melhorias de desempenho e as correções de bugs. Não é preciso fazer nada nessa área.

Monitoramento e otimização
Chamar reportFullyDrawn() usando o FullyDrawnReporter ou ReportDrawn() informa ao sistema quando o app está pronto para interação com um usuário. Isso permite o acesso à métrica TTFD. Essa métrica pode ser usada para comparações e permite a criação aprimorada de perfis de inicialização.
Avaliação Recomendação
Não usar reportFullyDrawn() / FullyDrawnReporter (0 pontos)
Não ter acesso a melhorias e métricas de desempenho.

Não informar quando o app está pronto para uso é uma oportunidade perdida para entender o tempo de inicialização do app com mais detalhes. O uso dessa API permite que o sistema Android forneça métricas de desempenho mais detalhadas e permite o monitoramento do tempo para renderização total.
Se o app estiver executando o carregamento lento e a exibição inicial não incluir todos os recursos, como quando o app estiver buscando imagens da rede, talvez seja melhor adiar a chamada de reportFullyDrawn() até que o app se torne utilizável para que você possa incluir a população da lista como parte do tempo de referência. Também é importante que o framework do Android saiba onde um perfil de inicialização deve parar de ser medido.

Adote reportFullyDrawn() / FullyDrawnReporter para acessar métricas de performance mais detalhadas.

Use a API FullyDrawnReporter para informar quando o app estiver pronto para uso. Isso vai desbloquear métricas de performance mais detalhadas e permitir o monitoramento do Tempo para desenho completo.

Uso de reportFullyDrawn() / FullyDrawnReporter (5 pontos)
Acesso a métricas de desempenho de inicialização do app mais detalhadas.

Esse app usa a API FullyDrawnReporter para informar quando está pronto para uso. Isso desbloqueia métricas de desempenho mais detalhadas e permite o monitoramento do Tempo para desenho completo.

Use as informações do TTFD para entender e melhorar o desempenho da inicialização do app.

O framework do Android e o Google Play Console oferecem métricas de desempenho detalhadas para o Time to Fully Drawn. Use essas métricas para entender e melhorar o desempenho de inicialização do app.
Ao usar as macrobenchmarks, você também pode inspecionar os rastros para ver exatamente o que está acontecendo durante a inicialização do app.

Pontuação de desempenho estático do app

(0/7 perguntas respondidas)