Monzo aumenta le metriche di rendimento fino al 35% con un semplice aggiornamento R8
2 minuti di lettura
Monzo è una banca digitale del Regno Unito con 15 milioni di clienti e in continua crescita. Con lo scale up dell'app, il team di ingegneria ha identificato il tempo di avvio dell'app come un'area critica da migliorare, ma temeva che ciò avrebbe richiesto modifiche significative alla codebase.
Abilitando completamente le ottimizzazioni R8, Monzo ha ottenuto una riduzione massiccia del 35% della frequenza di errori "L'applicazione non risponde" (ANR). Questa semplice modifica ha dimostrato che le ottimizzazioni efficaci non richiedono sempre sforzi di ingegneria complessi.
Sbloccare ampi miglioramenti del rendimento con la modalità completa R8
Monzo ha identificato la modalità completa R8 come una soluzione semplice da provare e ha funzionato, migliorando il rendimento su tutta la linea:
- Affidabilità dell'avvio: gli avvii a freddo sono migliorati del 30%, quelli a caldo del 24% e quelli a caldo del 14%.
- Velocità di lancio: i tempi di lancio P50 sono migliorati dell'11% e quelli P90 del 12%.
- Efficienza: le dimensioni complessive dell'app sono state ridotte del 9%.
- Stabilità: riduzione degli errori ANR del 35%.
Abilitare le ottimizzazioni con una singola modifica
Molte app Android utilizzano un file di configurazione predefinito obsoleto che disabilita la maggior parte delle funzionalità dell'ottimizzatore R8. La modifica principale apportata da Monzo per sbloccare questi miglioramenti del rendimento è stata la sostituzione del file predefinito proguard-android.txt con proguard-android-optimize.txt. Questa modifica rimuove l'istruzione -dontoptimize e consente a R8 di svolgere correttamente il proprio lavoro.
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
)
}
}Dopo aver apportato questa modifica, ti consigliamo di esaminare i file di configurazione Keep. Questi file indicano a R8 quali parti del codice lasciare invariate (in genere perché vengono chiamate dinamicamente o da librerie esterne). La pulizia delle regole Keep non necessarie consente a R8 di fare di più.
Migliorare il rendimento dello scorrimento con i profili di baseline
Per migliorare ulteriormente l'esperienza utente, Monzo ha implementato i profili di baseline, rivolgendosi in particolare al rendimento di scorrimento e rendering nel feed principale. Questa strategia ha garantito che i percorsi utente più comuni, ovvero l'apertura dell'app e lo scorrimento del feed, fossero completamente ottimizzati. L'impatto sul rendering è stato sostanziale: il rendimento di scorrimento P90 è diventato il 71% più veloce e quello P95 è migliorato dell'87%. Ora lo scorrimento dell'app è più fluido di prima.
Monzo ha integrato questa funzionalità nel processo di release per mantenere questi miglioramenti nel tempo. "Attiviamo la generazione del profilo di baseline ogni giorno della settimana (prima di eseguire le build notturne) e applichiamo le ultime modifiche al termine", spiega Neumayer.
Tenersi al passo con lo sviluppo Android moderno
L'esperienza di Monzo dimostra cosa è possibile fare quando si rimane aggiornati con i consigli sugli strumenti di build di Android. Mentre le app legacy spesso hanno difficoltà con l'utilizzo complesso della reflection, Monzo ha trovato la transizione semplice documentando correttamente le regole Keep. "Aggiungiamo sempre un commento che spiega il motivo per cui le regole Keep sono in vigore, in modo da sapere quando è sicuro rimuoverle", osserva Neumayer.
Qual è il consiglio di Neumayer per gli altri team? Controlla regolarmente le tue pratiche rispetto agli standard attuali: "Dai un'occhiata agli ultimi consigli di Google sulle prestazioni delle app e verifica se stai seguendo tutti i consigli più recenti".
Per iniziare e scoprire di più su R8, visita la pagina https://d.android.com/r8
-
Case studyKarrot è un'app marketplace peer-to-peer iperlocale basata sulla community che consente agli utenti di acquistare, vendere e scambiare articoli con altri utenti verificati. Dal lancio in Corea del Sud nel 2015, la piattaforma si è espansa nei mercati globali, accumulando oltre 43 milioni di utenti registrati.
Thomas Ezan, Tracy Agyemang • 2 minuti di lettura -
Case studyNel mondo dinamico dei social media, l'attenzione degli utenti si guadagna o si perde rapidamente. Le app Meta (Facebook e Instagram) sono tra le piattaforme social più grandi del mondo e servono miliardi di utenti a livello globale.
Mayuri Khinvasara Khabya, Tracy Agyemang • 4 minuti di lettura -
Case studyLa creazione di un'app Android per un dispositivo indossabile significa che il vero lavoro inizia quando lo schermo si spegne.
Breana Tate, Tracy Agyemang • 4 minuti di lettura
Ricevi settimanalmente nella tua casella di posta gli ultimi approfondimenti sullo sviluppo Android.