Prestazioni di Jetpack Compose su Wear OS

Le prestazioni su Wear OS sono un aspetto essenziale per le app, poiché 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 Prestazioni di Jetpack Compose per configurare e sviluppare la tua app per ottenere prestazioni ottimali utilizzando Jetpack Compose. Questo documento evidenzia alcune delle tecniche descritte nella guida.

Crea e segui strategie di misurazione del rendimento 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: i profili di riferimento (inclusi i profili di avvio) e l'ottimizzatore del codice R8.

Aggiorna la dipendenza Compose alla versione 1.8 o successive, che ha introdotto diverse nuove funzionalità significative e ha migliorato la stabilità complessiva della libreria. Per scoprire come eseguire l'aggiornamento, consulta le istruzioni in Dichiarazione delle dipendenze. Per scoprire di più, leggi il nostro blog sulla release 1.8 e il talk di I/O Novità di Compose.

Profili di riferimento

Per migliorare le prestazioni della tua app, utilizza i profili di riferimento. Raggruppa le classi e i metodi che rappresentano i workflow chiave della tua app, che il sistema può precompilare utilizzando un profilo di riferimento. 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 del profilo. Quando la tua app dipende da una libreria, le regole del profilo della libreria vengono unite e distribuite automaticamente con l'APK dell'app per la precompilazione.

Verifica i profili di riferimento utilizzando le seguenti tecniche:

  • Utilizza i test di 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 Crea un profilo della startup.

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 alla panoramica sul miglioramento delle prestazioni, leggi le considerazioni su R8, inclusi i passaggi chiave per la rimozione delle risorse inutilizzate.

Misurazione e convalida delle prestazioni

Per scoprire le strategie generali di misurazione delle prestazioni su Android, consulta la Panoramica della misurazione delle prestazioni delle app. Questa sezione descrive alcune delle tecniche illustrate nella documentazione.

Scegli 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 riferimento e può rendere difficile individuare i problemi del codice che potrebbero influire sulle prestazioni.

Per comprendere con precisione le prestazioni della tua app, eseguila in modalità di rilascio.

Trarre conclusioni finali sulle prestazioni solo dai test eseguiti con app in esecuzione con opzioni di build di release e su dispositivi reali.

Tuttavia, durante i test di benchmark, utilizza la variante di compilazione di benchmark, che presenta alcune differenze fondamentali rispetto al debug della release. Per maggiori dettagli, consulta la guida alla configurazione di Macrobenchmark.

Convalida i profili di riferimento della tua 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 che viene eseguito quando il dispositivo è in carica 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, questo processo 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 al momento dell'installazione, consulta Esegui il sideload del profilo di riferimento.

API UI Automator

L'API UI Automator automatizza le interazioni in modo programmatico. Utilizza questa API per eseguire il benchmark di parti distinte della UI durante l'ispezione dei percorsi dell'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 della UI. Per iniziare, consulta la guida all'implementazione.

Per un esempio di utilizzo dei macrobenchmark per convalidare le prestazioni dei profili di riferimento, 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à di tracciamento del sistema in Android Studio per ispezionare e diagnosticare la latenza in user journey potenzialmente problematici. Con queste informazioni, verifica i contenuti dei tuoi profili di riferimento e identifica potenziali inefficienze nella logica del codice.

Strumenti aggiuntivi

Oltre agli strumenti di miglioramento delle prestazioni, puoi utilizzare altri strumenti per migliorare la produttività e il 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 Modifica in tempo reale e Anteprime componibili, puoi identificare gli elementi UI lenti, insieme alle aree associate nel codice della tua app, per migliorare le prestazioni.

Esegui tutti i test di rendimento finali su una suite di dispositivi Wear OS fisici che rappresenti accuratamente la tua base utenti target.

Questo è particolarmente importante quando esegui la migrazione a Material 3 Expressive, che introduce nella tua app funzionalità come i caratteri flessibili e il morphing delle forme.

Se stai eseguendo 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 aggiornato sulle ultime novità sulle prestazioni di Android, consulta la sezione Ultime notizie e video nella guida alle prestazioni delle app.