Monzo aumenta as métricas de performance em até 35% com uma atualização simples do R8
Leitura de 2 min
O Monzo é um banco digital do Reino Unido com 15 milhões de clientes e em crescimento. Conforme o app crescia, a equipe de engenharia identificou o tempo de inicialização como uma área crítica para melhorias, mas se preocupou que isso exigiria mudanças significativas na base de código.
Ao ativar totalmente as otimizações do R8, o Monzo conseguiu uma redução de 35% na taxa de ANR (O app não está respondendo). Essa mudança simples provou que otimizações impactantes nem sempre exigem esforços complexos de engenharia.
Como melhorar a performance com o modo completo do R8
O Monzo identificou o modo completo do R8 como uma correção fácil que valia a pena testar. E funcionou, melhorando o desempenho em todos os aspectos:
- Confiabilidade de inicialização:as inicializações a frio melhoraram em 30%, as com estado salvo em 24% e as a quente em 14%.
- Velocidade de inicialização:os tempos de inicialização P50 melhoraram em 11% e os tempos de inicialização P90 em 12%.
- Eficiência:o tamanho geral do app foi reduzido em 9%.
- Estabilidade:redução de 35% nos ANRs.
Ativar otimizações com uma única mudança
Muitos apps Android usam um arquivo de configuração padrão desatualizado que desativa a maioria das funcionalidades do otimizador R8. A principal mudança que o Monzo fez para melhorar o desempenho foi substituir o arquivo padrão proguard-android.txt por proguard-android-optimize.txt. Essa mudança remove a instrução -dontoptimize e permite que o R8 faça o trabalho corretamente.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}Depois de fazer essa alteração, vale a pena conferir os arquivos de configuração do Keep. Esses arquivos informam ao R8 quais partes do código não devem ser modificadas (geralmente porque são chamadas dinamicamente ou por bibliotecas externas). Organizar as regras de Keep desnecessárias significa que o R8 pode fazer mais.
Como melhorar o desempenho da rolagem com perfis de referência
Para melhorar ainda mais a experiência do usuário, o Monzo implementou os perfis de referência, visando especificamente a performance de rolagem e renderização no feed principal. Essa estratégia garantiu que as jornadas mais comuns do usuário (abrir o app e rolar o feed) fossem totalmente otimizadas. O impacto na renderização foi substancial: o desempenho de rolagem P90 ficou 71% mais rápido, e o desempenho de rolagem P95 melhorou em 87%. Agora, a rolagem do app está mais suave do que antes.
O Monzo incorporou isso ao processo de lançamento para manter essas melhorias ao longo do tempo. "Acionamos a geração do perfil de referência todos os dias da semana (antes de executar nossos builds noturnos) e confirmamos as mudanças mais recentes após a conclusão", explica Neumayer.
Acompanhar o Modern Android Development
A experiência do Monzo mostra o que é possível quando você se mantém atualizado com as recomendações de ferramentas de build do Android. Embora os apps legados geralmente tenham dificuldades com o uso de reflexão complexa, o Monzo achou a transição simples ao documentar as regras de manutenção corretamente. "Sempre adicionamos um comentário explicando por que as regras de retenção estão em vigor, para sabermos quando é seguro removê-las", observa Neumayer.
O conselho de Neumayer para outras equipes? Verifique regularmente se as suas práticas estão de acordo com os padrões atuais: "Confira as recomendações mais recentes do Google sobre o desempenho do app e verifique se você está seguindo todas as orientações mais recentes".
Para começar e saber mais sobre o R8, acesse https://d.android.com/r8
-
Estudos de casoO Grab é o principal superapp do Sudeste Asiático, oferecendo serviços de entrega, mobilidade e serviços financeiros para milhões de usuários em oito países em um único app.
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • Leitura de 5 min -
Estudos de casoO WhatsApp é a maior plataforma de mensagens do mundo, atendendo a bilhões de usuários em todo o mundo. É a ferramenta de comunicação padrão para pessoas em diversas regiões, conectando usuários por mensagens privadas, confiáveis e seguras.
Niharika Arora, Tracy Agyemang, Mayank Jain • Leitura de 8 min -
Estudos de casoA missão do Tinder é incentivar e inspirar conexões reais, facilitando e tornando mais divertido o encontro de pessoas solteiras de todas as gerações.
Ajesh Pai, Ulises Uriel Verduzco Díaz , Tracy Agyemang • Leitura de 4 min
Receba os insights mais recentes sobre o desenvolvimento para Android na sua caixa de entrada toda semana.