Jetpack Compose offre prestazioni eccellenti pronte all'uso. Configura la tua app utilizzando le best practice per evitare le insidie più comuni e ottimizzare le prestazioni dell'applicazione Compose.
Benchmarking di Jetpack Compose
Per convalidare le prestazioni di Jetpack Compose rispetto a Views, utilizziamo benchmark hero, 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 una griglia con immagini. Eseguiamo questi benchmark utilizzando l'app open source Pokedex, confrontando le implementazioni di Views e Compose.
Questi benchmark mostrano che Compose 1.9 e versioni successive corrispondono al rendimento di Views per jank durante lo scorrimento.
Per altre metriche e per scoprire di più sulle nostre metodologie, consulta i benchmark eroi.
Concetti fondamentali
Ecco alcuni dei concetti chiave per il rendimento in Compose:
- Fasi: comprendere le fasi di composizione, layout e disegno è fondamentale per ottimizzare il modo in cui Compose aggiorna la UI.
- Profili di baseline: questi profili precompilano il codice essenziale, consentendo avvii più rapidi delle app e interazioni più fluide.
- Stabilità: aumenta la stabilità della tua app per saltare in modo più efficiente le ricomposizioni non necessarie, migliorando le prestazioni.
Configurare correttamente l'app
Se le prestazioni della tua app sono scarse, potrebbe esserci un problema di configurazione. Un buon primo passo è controllare le seguenti opzioni di configurazione:
- Esegui la build in modalità di rilascio con R8:prova a eseguire l'app in modalità di rilascio. La modalità di debug è utile per individuare molti problemi, ma comporta un costo in termini di prestazioni e può rendere difficile individuare altri problemi. Devi anche attivare l'ottimizzazione e la riduzione con il compilatore R8 per garantire una build di release efficiente e performante.
- Utilizza i profili di base:i profili di base migliorano le prestazioni precompilando il codice per i percorsi utente critici. Compose include un profilo predefinito, ma idealmente dovresti crearne uno specifico per l'app. Scopri di più sui profili di base nella documentazione generale sulle prestazioni 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 la tua app con Compose, tieni presente le seguenti best practice:
- Evita calcoli costosi: utilizza
rememberper memorizzare nella cache i risultati di calcoli costosi. - Aiuta i layout pigri: fornisci chiavi stabili ai layout pigri utilizzando il parametro
keyper ridurre al minimo le ricomposizioni non necessarie. - Limita le ricomposizioni non necessarie: utilizza
derivedStateOfper limitare le ricomposizioni quando lo stato cambia rapidamente. - Defer state reads: posticipa le letture dello stato il più a lungo possibile inserendole in funzioni lambda.
- Utilizza i modificatori lambda per cambiare 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 in uno 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 le prestazioni del layout.
Risorse aggiuntive
- Guida alle prestazioni delle app: scopri best practice, librerie e strumenti per migliorare le prestazioni su Android.
- Ispeziona le prestazioni: ispeziona le prestazioni dell'app.
- Benchmarking: confronta le prestazioni dell'app.
- Avvio dell'app: ottimizza l'avvio dell'app.
- Profili di baseline: scopri di più sui profili di baseline.