Qualcuno può aiutarmi a trovare il tempo di rendering dell'interfaccia utente in perfetto / systrace?
Sto cercando di trovare il tempo di rendering dell'interfaccia utente per ciascuna attività in Android. Vengo a sapere che si possono analizzare le prestazioni utilizzando systrace o perfetto. Ma il problema è trovare la parte di rendering dell'interfaccia utente da quell'enorme grafico. Qualcuno può aiutarmi a trovare il tempo di rendering dell'interfaccia utente da systrace o perfetto.
Risposte
Traccia di sistema include i dati di tutti i processi in esecuzione sul dispositivo, quindi prima è necessario trovare i processi pertinenti. Ecco un paio di punti per iniziare:
- Il tuo processo di app. Il nome dovrebbe essere com.your.app. Espandi quel processo e poi vuoi concentrarti sul thread principale (lo stesso nome del nome del processo) e un thread chiamato RenderThread. Screenshot del RenderThread e del thread principale in Android Studio
- Il processo SurfaceFlinger . È un processo in esecuzione su dispositivi Android, responsabile della composizione delle superfici sul display. Espandi il processo e cerca il thread principale e una miriade di contatori (ad esempio VSYNC, SurfaceView) per aiutarti a risolvere i problemi di rendering. Screenshot dei contatori SurfaceFlinger in Perfetto
Per sapere esattamente cosa sta causando il problema di rendering dell'interfaccia utente, è necessario conoscere il funzionamento della tua app e alcune prove ed errori. Questi video potrebbero aiutarti:
- Analisi delle prestazioni utilizzando Systrace: https://youtu.be/9kNhB_z704I
- Risoluzione dei problemi di prestazioni delle app con System Trace in Android Studio (questo si concentra su Android Studio): https://youtu.be/EjmIit_amnE
- Debug delle prestazioni dell'applicazione (questo è un po 'vecchio e utilizza ancora lo strumento legacy systrace): https://youtu.be/qXVxuLvzKek