A otimização do código DEX é uma descoberta do Android vitals que ajuda você a monitorar e melhorar a qualidade, o tamanho e o desempenho da compilação do app. A otimização e a ofuscação do código usando o R8 ou ferramentas alternativas (como otimizadores compatíveis com ProGuard ou pós-processadores DEX secundários) reduzem o tamanho do DEX do app, melhoram o desempenho de execução e minimizam a ocupação de memória.
Os arquivos DEX, ou Dalvik Executable, contêm o código compilado usado
para executar o app. Isso normalmente inclui código Java e Kotlin, em vez de
código C++ compilado ou arquivos .so.
O Android vitals informa métricas de otimização de código DEX para todos os apps e jogos, mas só aplica limites para aqueles que atendem a requisitos específicos de tamanho.
Detectar o problema
O Android vitals pode alertar você quando os níveis de otimização do código DEX do app estão baixos. Isso inclui ofuscação, redução e otimização para apps e jogos que usam o R8. Para apps que não usam o R8, o Android vitals tenta verificar as taxas de otimização, redução e ofuscação, mas volta para as heurísticas de ofuscação como um proxy quando necessário.
Monitorar o status da otimização
O Android vitals pode ajudar a melhorar o desempenho do seu app alertando você pelo Play Console quando o app não atende aos percentuais mínimos definidos para otimização de código. Para definições detalhadas de redução, otimização e ofuscação, consulte Usar o Analisador de configuração do R8.
Para apps criados com o patch mais recente do AGP versão 8.10 ou mais recente, essas
porcentagens são extraídas do arquivo r8.json incluído.
Em versões mais antigas do AGP ou quando o arquivo r8.json não está incluído, as porcentagens são calculadas com base no arquivo mapping.txt, se incluído, ou usando heurísticas DEX se o arquivo de mapeamento não estiver disponível.
Para apps otimizados com um otimizador de código alternativo, o Android vitals realiza uma análise para estimar a porcentagem de classes, métodos e campos ofuscados no pacote de app.
Tamanho total mínimo do DEX
O Android vitals calcula métricas de otimização de código para todos os apps, mas você só vai receber alertas se o pacote de app atender aos seguintes requisitos de tamanho total de DEX:
- Apps: o pacote contém pelo menos 10 MB de código DEX medido como tamanho não compactado.
- Jogos: o pacote contém pelo menos 50 MB de código DEX medido como tamanho não compactado
O Android vitals mostra o tamanho DEX do app, mas você também pode medir isso localmente usando a linha de comando:
unzip -l <yourapp>.aab | grep -E '\.dex$' | awk '{sum+=$1} END {print sum}'
Para inspecionar os metadados exatos que o Android vitals usa para calcular suas pontuações,
extraia o arquivo r8.json do pacote de apps:
unzip -p <yourapp>.aab BUNDLE-METADATA/com.android.tools/r8.json