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 le prestazioni dei flussi di lavoro chiave della tua app.
Utilizza la guida alle prestazioni di Jetpack Compose per configurare e sviluppare la tua app per prestazioni ottimali utilizzando Jetpack Compose. Questo documento evidenzia alcune delle tecniche descritte in questa guida.
Crea e segui le strategie di misurazione delle prestazioni per verificare che queste tecniche funzionino come previsto per la tua app.
Tecniche essenziali per il miglioramento delle prestazioni
Inizia con i tipi di strumenti per le prestazioni più efficaci: profili di baseline (inclusi i profili di avvio) e l'ottimizzatore di 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. Per scoprire come eseguire l'aggiornamento, consulta le istruzioni in Dichiarare le dipendenze. Per saperne di più, leggi il nostro blog sulla release 1.8 e il Novità di Compose I/O talk.
Profili di baseline
Per migliorare le prestazioni della tua app, utilizza i profili di baseline. Raggruppa le classi e i metodi che rappresentano i flussi di lavoro chiave della tua app, che il sistema può precompilare utilizzando un profilo di baseline. In questo modo è possibile ridurre i tempi di avvio, ridurre i frame instabili e offrire ulteriori miglioramenti delle prestazioni.
Ogni libreria Jetpack Compose viene fornita con le proprie regole di profilo. Quando la tua app dipende da una libreria, le regole del profilo della libreria vengono unite e distribuite automaticamente con l'APK della tua app per la precompilazione.
Verifica i profili di baseline 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 alla misurazione e alla convalida delle prestazioni.
Profili di avvio
Come sottoinsieme dei profili di baseline, 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 le dimensioni dell'APK e la latenza di avvio.
Per iniziare, leggi Creare un profilo di avvio.
R8
Utilizza il compilatore R8 per ridurre e ottimizzare le app. R8 rimuove il codice e le risorse inutilizzati, riscrive il codice per ottimizzare le prestazioni di runtime e altro ancora.
Nelle guide Panoramica sul miglioramento delle prestazioni, leggi le considerazioni per R8, inclusi i passaggi chiave per rimuovere le risorse inutilizzate.
Misurazione e convalida delle prestazioni
Per scoprire di più sulle strategie generali di misurazione delle prestazioni su Android, consulta Panoramica sulla misurazione delle prestazioni delle app. Questa sezione descrive alcune delle tecniche trattate in questa documentazione.
Scegliere una variante di compilazione 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 baseline e può rendere difficile individuare i problemi di codice che potrebbero influire sulle prestazioni.
Per comprendere con precisione le prestazioni della tua app, esegui l'app in modalità di release.
Trarre conclusioni definitive sulle prestazioni solo dai test eseguiti con le app in esecuzione con le opzioni di build di release e su dispositivi reali.
Tuttavia, quando esegui test di benchmark, utilizza la variante di compilazione di benchmark, che presenta alcune differenze fondamentali rispetto al debug di release. Per maggiori dettagli, consulta la guida alla configurazione di Macrobenchmark.
Convalidare i profili di baseline dell'app
Inizia esaminando 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 che viene eseguito quando il dispositivo è carico e inattivo. Per attivarlo manualmente, esegui il seguente comando 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 localmente il profilo di baseline.
API UI Automator
L'API UI Automator automatizza le interazioni a livello di programmazione. Utilizza questa API per eseguire il benchmark di parti discrete dell'UI quando esamini i percorsi utente per potenziali ottimizzazioni.
Test macrobenchmark
I macrobenchmark testano casi d'uso più ampi della tua app, in particolare l'avvio dell'app e le manipolazioni complesse dell'UI. Per iniziare, consulta la guida all'implementazione.
Per un esempio di utilizzo dei macrobenchmark per convalidare le prestazioni dei profili di baseline, 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, consulta l'esempio di JankStats su GitHub.
Traccia di sistema
Con i nuovi tipi di animazione introdotti da Material 3 Expressive, utilizza la funzionalità Traccia di sistema in Android Studio per esaminare e diagnosticare la latenza nei percorsi utente potenzialmente problematici. Con queste informazioni, verifica i contenuti dei profili di baseline e identifica potenziali inefficienze nella logica del codice.
Strumenti aggiuntivi
Oltre agli strumenti per il miglioramento delle prestazioni, puoi utilizzare altri strumenti per migliorare la produttività e il flusso di lavoro.
Strumenti di produttività di Android Studio
Android Studio offre diversi strumenti che possono ridurre il tempo necessario per identificare i miglioramenti delle prestazioni.
Ad esempio, utilizzando strumenti come Live Edit e Anteprime componibili, puoi identificare gli elementi dell'UI instabili, insieme alle aree associate nel codice dell'app, per migliorare le prestazioni.
Esegui tutti i test finali delle prestazioni su una suite di dispositivi Wear OS fisici che rappresenti con precisione la tua base di utenti target.
Questo è 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's siano efficienti quando utilizzi Jetpack Compose.
Altre risorse
Per rimanere aggiornato sulle ultime novità relative alle prestazioni di Android, consulta le ultime notizie e i video nella guida alle prestazioni delle app.