Metriche

  
Monitora e genera report su varie metriche di runtime per la tua applicazione
Ultimo aggiornamento Release stabile Release Candidate Versione beta Versione alpha
12 marzo 2025 - - 1.0.0-beta02 -

Dichiarazione delle dipendenze

Per aggiungere una dipendenza da Metrics, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli elementi necessari nel file build.gradle per la tua app o il tuo modulo:

Alla moda

dependencies {
    implementation "androidx.metrics:metrics-performance:1.0.0-beta02"
}

Kotlin

dependencies {
    implementation("androidx.metrics:metrics-performance:1.0.0-beta02")
}

Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.

Versione 1.0.0

Versione 1.0.0-beta02

12 marzo 2025

androidx.metrics:metrics-performance:1.0.0-beta02 viene rilasciato. La versione 1.0.0-beta02 contiene questi commit.

Correzioni di bug

  • Risolvere gli arresti anomali DelegatingFrameMetricsListener cannot be cast... (Id891c, b/311218678).

Versione 1.0.0-beta01

10 gennaio 2024

L'API e le funzionalità di questa libreria sono stabili da un po' di tempo. Questa release semplicemente spinge la libreria in versione beta.

androidx.metrics:metrics-performance:1.0.0-beta01 viene rilasciato. La versione 1.0.0-beta01 contiene questi commit.

Versione 1.0.0-alpha04

5 aprile 2023

Questa release aggiorna JankStats con le correzioni più recenti, che includono informazioni sui tempi più accurate e complete.

androidx.metrics:metrics-performance:1.0.0-alpha04 viene rilasciato. La versione 1.0.0-alpha04 contiene questi commit.

Modifiche all'API

  • cpuDuration ora più preciso, oltre al nuovo totalDuration nell'API31 (I59ce8, b/243694893)

Versione 1.0.0-alpha03

27 luglio 2022

androidx.metrics:metrics-performance:1.0.0-alpha03 viene rilasciato. La versione 1.0.0-alpha03 contiene questi commit.

  • Questa release contiene miglioramenti minori dell'API man mano che la libreria si avvicina alla versione beta. Una delle modifiche all'API rimuove l'Executor dal metodo di fabbrica createAndTrack() per la creazione di un oggetto JankStats. Ciò ha implicazioni per il callback OnFrameListener, in quanto ora l'ascoltatore viene chiamato nel thread che invia i dati per frame a JankStats (il thread principale/UI nelle versioni precedenti all'API 24 e il thread FrameMetrics nelle versioni dell'API 24 e successive). Inoltre, l'oggetto FrameData passato all'ascoltatore viene ora riutilizzato a ogni frame, pertanto i dati di quell'oggetto devono essere copiati e memorizzati nella cache altrove durante il callback, in quanto l'oggetto deve essere considerato obsoleto non appena l'ascoltatore viene restituito.

  • Sono state apportate anche varie correzioni di bug, inclusi alcuni problemi di concorrenza.

  • Infine, la correzione per il riutilizzo di FrameData (menzionata sopra) significa che ora non ci sono allocazioni per frame a causa dell'invio delle metriche dei frame. In precedenza non c'erano molte allocazioni, ma il nuovo approccio ti consente di utilizzare JankStats senza costi aggiuntivi per la gestione del ciclo di vita per frame nella tua app.

Modifiche all'API

  • Sono stati aggiornati i nomi dei metodi e dei parametri in PerformanceMetricsState per rendere più chiari i risultati di queste chiamate. (I56da5, b/233421985)
  • Sono stati aggiunti test di benchmark per monitorare le allocazioni ed eliminate alcune allocazioni interne relative alla gestione dello stato e alla generazione di report. Tieni presente che FrameData passato agli ascoltatori è ora considerato volatile; questa struttura verrà riutilizzata per il frame successivo e i dati sono attendibili solo fino al ritorno dell'ascoltatore.
  • È stato rimosso Executor dal costruttore per JankStats; ora gli ascoltatori vengono chiamati su qualsiasi thread su cui sono stati ricevuti i dati interni. (I12743)

Correzioni di bug

  • È stato corretto un arresto anomalo dovuto alla doppia rimozione di OnFrameMetricsAvailableListener (I44094, b/239457413)
  • Torna alla logica originale di pubblicazione dei messaggi OnPreDrawListener all'inizio della coda, per una temporizzazione dei frame più coerente e prevedibile. (I05a43, b/233358407)
  • È stato corretto il bug ConcurrentModificationException relativo alla modifica dell'elenco dei delegati dell'ascoltatore durante l'iterazione per l'invio dei dati per frame. (Ib7693, b/236612357)

Versione 1.0.0-alpha02

29 giugno 2022

androidx.metrics:metrics-performance:1.0.0-alpha02 viene rilasciato. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche all'API

Correzioni di bug

  • È stato risolto il problema di temporizzazione per cui gli stati potevano essere sostituiti con nuovi valori prima dell'elaborazione dei frame in cui lo stato precedente sarebbe stato corretto (aosp/2061892, b/213499234)
  • È stata corretta un'eccezione di modifica simultanea nell'aggiunta/rimozione di ascoltatori (aosp/2092714, b/213499234)
  • Sono stati resi più precisi i calcoli relativi a startTime (aosp/2027704, b/213245198)
  • Bug corretto nell'implementazione di FrameData.equals() (aosp/2025866, b/218296544)

Versione 1.0.0-alpha01

9 febbraio 2022

androidx.metrics:metrics-performance:1.0.0-alpha01 viene rilasciato. La versione 1.0.0-alpha01 contiene questi commit.

Nuove funzionalità

  • La libreria JankStats fornisce funzionalità per eseguire l'instrumentazione e ricevere callback nell'applicazione in fase di esecuzione, il che può aiutarti a trovare problemi di prestazioni reali.
  • JankStats combina un'API che semplifica l'inserimento di informazioni sullo stato dell'interfaccia utente con funzionalità di monitoraggio e generazione di report sulle prestazioni per frame per consentire agli sviluppatori di capire non se un'applicazione ha problemi di prestazioni, ma quando e perché.