Le prestazioni su Wear OS sono un aspetto essenziale 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 in questa guida.
Crea e segui strategie di misurazione del rendimento per verificare che queste tecniche funzionino come previsto per la tua app.
Tecniche essenziali per migliorare il rendimento
Inizia con i tipi di strumenti di profilazione più efficaci: profili di base (inclusi i profili di avvio) e lo strumento di ottimizzazione del codice R8.
Aggiorna la dipendenza Compose alla versione 1.8 o successive, che ha introdotto diverse nuove funzionalità significative e migliorato la stabilità complessiva della libreria. Consulta le istruzioni riportate in Dichiarare le dipendenze per scoprire come aggiornare. Per saperne di più, leggi il nostro blog sulla release 1.8 e la novità di Compose di I/O.
Profili di base
Per migliorare il rendimento della tua app, utilizza i profili di base. 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, ridurre i frame scattosi 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 di 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, valuta il compromesso tra dimensioni dell'APK e latenza di avvio.
Per iniziare, leggi l'articolo Creare un profilo startup.
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 Migliora il rendimento - Panoramica, leggi 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 descrive alcune delle tecniche illustrate 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 di codice che potrebbero influire sulle prestazioni.
Per comprendere con precisione il rendimento della tua app, esegui l'app in modalità di rilascio.
Trarre conclusioni definitive sul rendimento solo dai test eseguiti con app in esecuzione con le 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 è carico e inattivo. Per attivare manualmente questa operazione, esegui il comando seguente dopo l'avvio dell'app e dopo che è trascorso un tempo sufficiente per consentire al programma di installazione del profilo di eseguire il bootstrap del profilo in background. In genere, questa procedura richiede circa 40 secondi.
adb shell cmd package bg-dexopt-job
Poi, esegui di nuovo il comando precedente per verificare che lo stato sia speed-profile
.
Per le situazioni in cui l'ottimizzazione avviene durante l'installazione, consulta Caricare in sideload il profilo di base.
API UI Automator
L'API UI Automator automatizza le interazioni in modo programmatico. Utilizza questa API per confrontare singole parti dell'interfaccia utente quando esamini i percorsi degli utenti per potenziali ottimizzazioni.
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, utilizza la funzionalità Traccia sistema in Android Studio per esaminare e diagnosticare la latenza nei percorsi utente potenzialmente problematici. Con queste informazioni, verifica i contenuti dei profili di base e identifica potenziali inefficienze nella logica del codice.
Strumenti aggiuntivi
Oltre agli strumenti per il miglioramento del rendimento, puoi utilizzare altri strumenti per migliorare la tua produttività e il tuo flusso di lavoro.
Strumenti di produttività di Android Studio
Android Studio fornisce diversi strumenti che possono ridurre il tempo che dedichi all'identificazione dei miglioramenti delle prestazioni.
Ad esempio, utilizzando strumenti come Live Edit e Anteprime componibili, puoi identificare gli elementi dell'interfaccia utente instabili, 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.