Le prestazioni su Wear OS sono un aspetto essenziale da considerare per le app, in quanto molti dispositivi Wear OS hanno risorse CPU e GPU limitate rispetto ai dispositivi mobili più grandi. Con l'introduzione di animazioni più ricche ed effetti dinamici in Material 3 Expressive, devi convalidare e migliorare il rendimento dei flussi di lavoro chiave della tua app.
Utilizza la guida Prestazioni di Jetpack Compose per configurare e sviluppare la tua app per ottenere prestazioni ottimali utilizzando Jetpack Compose. Questo documento mette in evidenza alcune delle tecniche descritte.
Inoltre, crea e segui strategie di misurazione del rendimento per verificare che le tecniche descritte in questo documento funzionino come previsto per la tua app.
Tecniche essenziali per migliorare il rendimento
Inizia con i tipi di strumenti per il rendimento più efficaci: profili di base (inclusi i profili di avvio) e l'ottimizzatore di codice R8.
Prima di iniziare, ti consigliamo di aggiornare la dipendenza Compose almeno alla versione 1.8, che ha introdotto diverse nuove funzionalità significative e migliorato la stabilità complessiva della libreria. Consulta le istruzioni in Dichiarare le dipendenze per scoprire come eseguire l'aggiornamento. Per saperne di più, consulta il nostro post del blog sulla release 1.8 e la novità di Compose di I/O.
Profili di base
Utilizza i profili di base per migliorare le prestazioni della tua app. Raggruppa le classi e i metodi che rappresentano i workflow chiave della tua app, che il sistema può precompilare utilizzando un profilo di base. Ciò può ridurre i tempi di avvio, diminuire i frame instabili e offrire ulteriori miglioramenti delle prestazioni.
Ogni libreria Jetpack Compose viene fornita con le proprie regole del profilo. Quando la tua app dipende da una libreria, le regole del profilo della libreria vengono unite automaticamente e distribuite con l'APK della tua app per la precompilazione.
Verifica i profili di base utilizzando le seguenti tecniche:
- Utilizza i test macrobenchmark.
- Utilizza comandi ADB specifici per convalidare lo stato della configurazione del profilo della tua app.
I passaggi per entrambe le tecniche sono spiegati nella guida Misurazione e convalida del rendimento.
Profili startup
In quanto sottoinsieme dei profili di base, i profili di avvio ottimizzano ulteriormente le classi e i metodi che contengono per ridurre la latenza di avvio dell'app.
L'aggiunta di un profilo di avvio aumenterà le dimensioni dell'APK della tua app, quindi prima di aggiungerne uno alla release di produzione, assicurati di valutare il compromesso tra dimensioni dell'APK e latenza di avvio.
Una volta che hai familiarizzato con la configurazione dei profili di base, leggi Creare un profilo di avvio per iniziare.
R8
Utilizza il compilatore R8 per ridurre e ottimizzare le app. R8 rimuove codice e risorse inutilizzati, riscrive il codice per ottimizzare le prestazioni di runtime e altro ancora.
Nelle guide su come migliorare il rendimento (panoramica), esamina le considerazioni per R8, inclusi i passaggi chiave per rimuovere le risorse inutilizzate.
Misurazione e convalida del rendimento
Per informazioni sulle strategie generali di misurazione del rendimento su Android, consulta Panoramica della misurazione del rendimento delle app. Questa sezione contiene alcune delle tecniche descritte in questa documentazione.
Scegli una variante di build per le misurazioni
Sebbene la modalità di debug sia utile per individuare molti problemi, comporta un costo significativo in termini di prestazioni, non utilizza i profili di base e può rendere difficile individuare i problemi del codice che potrebbero influire negativamente sulle prestazioni.
Per comprendere con precisione il rendimento della tua app, esegui l'app in modalità di rilascio.
Devi trarre conclusioni definitive sul rendimento solo utilizzando test eseguiti con app in esecuzione con opzioni di build di rilascio e su dispositivi reali.
Tuttavia, durante i test di benchmark, utilizza la variante di build di benchmark, che presenta alcune differenze chiave rispetto al debug della release. Per maggiori dettagli, consulta la guida alla configurazione di Macrobenchmark.
Convalidare i profili di base dell'app
Inizia controllando lo stato del tuo profilo:
adb shell dumpsys package dexopt | grep -A 1 $PACKAGE_NAME
Se lo stato non è status=speed-profile
, le regole del profilo non sono ancora state
applicate per ottimizzare l'app.
Le regole vengono applicate utilizzando un job in background eseguito quando il dispositivo è in carica e inattivo. Puoi attivarlo manualmente eseguendo il comando seguente dopo l'avvio dell'app e dopo che è trascorso un tempo sufficiente per consentire all'installatore di profili di eseguire il bootstrap del profilo in background. In genere richiede circa 40 secondi.
adb shell cmd package bg-dexopt-job
A questo punto, puoi eseguire di nuovo il comando precedente per verificare che lo stato sia ora
speed-profile
.
Per le situazioni in cui l'ottimizzazione viene eseguita durante l'installazione, vedi Caricare lateralmente il profilo di base.
API UI Automator
Utilizza l'API UI Automator per confrontare singole parti dell'interfaccia utente quando esamini i percorsi degli utenti per individuare potenziali ottimizzazioni.
Funziona automatizzando le interazioni dell'interfaccia utente in modo programmatico.
Test macrobenchmark
I macrobenchmark testano casi d'uso più ampi della tua app, in particolare l'avvio dell'app e manipolazioni complesse della UI. Per iniziare, consulta la guida all'implementazione.
Per un esempio di utilizzo dei macrobenchmark per convalidare le prestazioni dei profili di base, consulta gli esempi di prestazioni su GitHub.
Libreria JankStats
Utilizza la libreria JankStats per monitorare e analizzare i problemi di prestazioni nelle applicazioni.
Per un esempio, vedi l'esempio di JankStats su GitHub.
Traccia di sistema
Con i nuovi tipi di animazione introdotti da Material 3 Expressive, puoi utilizzare la funzionalità System Trace in Android Studio per esaminare e diagnosticare la latenza nei percorsi utente potenzialmente problematici. Con queste informazioni, puoi verificare il contenuto dei profili di base e ispezionare la logica del codice per individuare i punti con potenziali inefficienze.
Strumenti aggiuntivi
Oltre agli strumenti di miglioramento delle prestazioni, gli sviluppatori possono utilizzare altri strumenti per migliorare la loro produttività e il loro flusso di lavoro.
Strumenti di produttività di Android Studio
Android Studio fornisce diversi strumenti che possono ridurre il tempo che dedichi alla ricerca di modi per migliorare il rendimento.
Ad esempio, utilizzando strumenti come Live Edit e Composable Previews, puoi identificare l'interfaccia utente instabile, insieme alle aree associate nel codice della tua app, per migliorare le prestazioni.
Esegui tutti i test finali delle prestazioni su una suite di dispositivi Wear OS fisici che rappresenti accuratamente la tua base utenti di destinazione.
Ciò è particolarmente importante quando esegui la migrazione a Material 3 Expressive, che introduce funzionalità come i caratteri flessibili e la trasformazione delle forme nella tua app.
Se esegui la migrazione dalle visualizzazioni, consulta la nostra guida alla migrazione e le nostre best practice per le prestazioni di Jetpack Compose per verificare che le UI della tua app siano efficienti quando utilizzi Jetpack Compose.
Altre risorse
Per rimanere al passo con le ultime novità sulle prestazioni di Android, consulta la sezione Notizie e video più recenti nella guida alle prestazioni delle app.