Jetpack Compose offre prestazioni eccellenti fin da subito. Configura l'app utilizzando le best practice per evitare le insidie comuni e ottimizzare il rendimento dell'applicazione Compose.
Benchmark di Jetpack Compose
Per convalidare il rendimento di Jetpack Compose rispetto alle visualizzazioni, utilizziamo benchmark di riferimento, ovvero benchmark che si concentrano su percorsi utente importanti e reali, come l'avvio a freddo di un'app o lo scorrimento di un elenco o di una griglia con immagini. Eseguiamo questi benchmark utilizzando l'app Pokedex open source, confrontando le implementazioni di visualizzazioni e Compose.
Questi benchmark mostrano che Compose 1.9 e versioni successive corrispondono al rendimento delle visualizzazioni per quanto riguarda i blocchi durante lo scorrimento.
Per altre metriche e per scoprire di più sulle nostre metodologie, consulta Benchmark di riferimento.
Concetti fondamentali
Di seguito sono riportati alcuni dei concetti chiave per il rendimento in Compose:
- Fasi: comprendere le fasi di composizione, layout e disegno è fondamentale per ottimizzare la modalità di aggiornamento dell'UI di Compose.
- Profili di baseline: questi profili precompilano il codice essenziale, velocizzando l'avvio delle app e le interazioni.
- Stabilità: aumenta la stabilità dell'app per saltare in modo più efficiente le ricomposizioni non necessarie, migliorando il rendimento.
Configurare correttamente l'app
Se il rendimento dell'app è scarso, potrebbe esserci un problema di configurazione. Un buon primo passo è controllare le seguenti opzioni di configurazione:
- Compila in modalità Release con R8: prova a eseguire l'app in modalità release. La modalità di debug è utile per individuare molti problemi, ma comporta un costo in termini di rendimento e può rendere difficile l'individuazione di altri problemi. Dovresti anche attivare l'ottimizzazione e la riduzione con il compilatore R8 per garantire una build di release efficiente e con un buon rendimento.
- Utilizza i profili di baseline: i profili di baseline migliorano il rendimento precompilando il codice per i percorsi utente critici. Compose include un profilo predefinito, ma idealmente dovresti crearne anche uno specifico per l'app. Scopri di più sui profili di baseline nella documentazione generale sul rendimento di Android
Strumenti
Acquisisci familiarità con la suite di strumenti disponibili per misurare e analizzare il rendimento della tua app Compose.
Best practice
Quando sviluppi l'app con Compose, tieni presente queste best practice:
- Evita calcoli costosi: utilizza
rememberper memorizzare nella cache i risultati di calcoli costosi. - Aiuta i layout lazy: fornisci chiavi stabili ai layout lazy utilizzando il
keyparametro per ridurre al minimo le ricomposizioni non necessarie. - Limita le ricomposizioni non necessarie: utilizza
derivedStateOfper limitare le ricomposizioni quando lo stato cambia rapidamente. - Posticipa le letture dello stato: posticipa il più possibile le letture dello stato racchiudendole in funzioni lambda.
- Utilizza i modificatori lambda per modificare lo stato: utilizza modificatori basati su lambda
come
Modifier.offset { ... }per le variabili di stato che cambiano di frequente. - Evita le scritture all'indietro: non scrivere mai nello stato che è già stato letto in un elemento componibile.
Per maggiori dettagli, consulta la guida alle best practice.
Visualizzazioni
Se utilizzi le visualizzazioni anziché Compose, consulta la guida dedicata Migliorare il rendimento del layout.
Risorse aggiuntive
- Guida alle prestazioni dell'app: scopri le best practice, le librerie e gli strumenti per migliorare le prestazioni su Android.
- Ispeziona le prestazioni dell'app: Ispeziona le prestazioni dell'app.
- Benchmarking: esegui il benchmark delle prestazioni dell'app.
- Avvio dell'app: ottimizza l'avvio dell'app.
- Profili di baseline: scopri di più sui profili di baseline.