Case Studies
Monzo aumenta le metriche di rendimento fino al 35% con un semplice aggiornamento R8
Lettura di 2 minuti
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ò richiedesse 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 di impatto non richiedono sempre sforzi di ingegneria complessi.
Sbloccare miglioramenti del rendimento su vasta scala con la modalità completa di R8
Monzo ha identificato la modalità completa di 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 (di solito 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 moderno di Android
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
Continua a leggere
-
Case Studies
Durante il lavoro con il team di relazioni con gli sviluppatori Android, il team di ingegneria di Reddit ha utilizzato il punteggio di rendimento dell'app per valutare la propria app.
Ben Weiss • Lettura di 4 minuti
-
Case Studies
TikTok è una piattaforma globale di video brevi nota per la sua enorme base di utenti e le sue funzionalità innovative.
Ben Trengrove, Ajesh Pai • Lettura di 2 minuti
-
Case Studies
Nel mondo dinamico dei social media, l'attenzione degli utenti si guadagna o si perde rapidamente. Le app di Meta (Facebook e Instagram) sono tra le piattaforme social più grandi del mondo e servono miliardi di utenti a livello globale.
Mayuri Khinvasara Khabya • Lettura di 4 minuti
Segui gli aggiornamenti
Ricevi ogni settimana nella tua casella di posta le ultime informazioni sullo sviluppo di Android.