Metriche
Ultimo aggiornamento | Release stabile | Candidato per la release | Release beta | Release alpha |
---|---|---|---|---|
10 settembre 2025 | - | - | 1.0.0-beta04 | - |
Dichiara le dipendenze
Per aggiungere una dipendenza da Metrics, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle
per
la tua app o il tuo modulo:
Alla moda
dependencies { implementation "androidx.metrics:metrics-performance:1.0.0-beta04" }
Kotlin
dependencies { implementation("androidx.metrics:metrics-performance:1.0.0-beta04") }
Per saperne di più sulle dipendenze, consulta Aggiungi dipendenze di build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di segnalare un nuovo problema, 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.
Per ulteriori informazioni, consulta la documentazione di Issue Tracker.
Versione 1.0.0
Versione 1.0.0-beta04
10 settembre 2025
androidx.metrics:metrics-performance:1.0.0-beta04
è stato rilasciato. La versione 1.0.0-beta04 contiene questi commit.
Contributo esterno
- È stato corretto
IndexOutOfBoundsException
inJankStats
(I113e5,b/253576508)
Versione 1.0.0-beta03
27 agosto 2025
androidx.metrics:metrics-performance:1.0.0-beta03
è stato rilasciato. La versione 1.0.0-beta03 contiene questi commit.
Correzioni di bug
- Correzione di
IllegalArgumentException
("tentativo di rimozione diOnFrameMetricsAvailableListener
che non è mai stato aggiunto"). Non viene effettuato alcun tentativo di registrare la sincronizzazione dei frame quando una finestra non è accelerata dall'hardware, in quanto questa operazione non è supportata daWindow.OnFrameMetricsAvailableListener
. (I8fef2, b/436880904)
Versione 1.0.0-beta02
12 marzo 2025
androidx.metrics:metrics-performance:1.0.0-beta02
è stato rilasciato. La versione 1.0.0-beta02 contiene questi commit.
Correzioni di bug
- Sono stati corretti gli arresti anomali
DelegatingFrameMetricsListener cannot be cast...
(Id891c, b/311218678).
Versione 1.0.0-beta01
10 gennaio 2024
L'API e la funzionalità di questa libreria sono stabili da un po'. Questa release sposta semplicemente la libreria in versione beta.
androidx.metrics:metrics-performance:1.0.0-beta01
è stato rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Versione 1.0.0-alpha04
5 aprile 2023
Questa release aggiorna JankStats alle ultime correzioni, che includono informazioni di temporizzazione più accurate e complete.
androidx.metrics:metrics-performance:1.0.0-alpha04
è stato rilasciato. La versione 1.0.0-alpha04 contiene questi commit.
Modifiche alle API
cpuDuration
ora più preciso, inoltre nuovototalDuration
su API31 (I59ce8, b/243694893)
Versione 1.0.0-alpha03
27 luglio 2022
androidx.metrics:metrics-performance:1.0.0-alpha03
è stato rilasciato. La versione 1.0.0-alpha03 contiene questi commit.
Questa release contiene perfezionamenti minori delle 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 oggettoJankStats
. Ciò ha implicazioni per il callbackOnFrameListener
, poiché il listener viene ora chiamato sul thread che fornisce i dati per frame aJankStats
(il thread principale/UI nelle versioni precedenti all'API 24 e il threadFrameMetrics
nell'API 24 e versioni successive). Inoltre, l'oggettoFrameData
passato al listener viene ora riutilizzato ogni frame, quindi i dati di questo oggetto devono essere copiati e memorizzati nella cache altrove durante il callback, poiché l'oggetto deve essere considerato obsoleto non appena il listener restituisce.Sono state apportate anche varie correzioni di bug, inclusi alcuni problemi di concorrenza.
Infine, la correzione per riutilizzare
FrameData
(menzionata sopra) significa che ora non ci sono allocazioni per frame a causa della distribuzione delle metriche dei frame. Prima non c'erano molte allocazioni, ma il nuovo approccio ti consente di utilizzareJankStats
senza incorrere in alcun sovraccarico GC per frame nella tua app.
Modifiche alle API
- Nomi di metodi e parametri aggiornati 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 ai report. Tieni presente che
FrameData
passato ai listener è ora considerato volatile; questa struttura verrà riutilizzata per il frame successivo e i dati sono affidabili solo fino al ritorno del listener. - È stato rimosso Executor dal costruttore per
JankStats
; ora i listener vengono chiamati sul thread su cui sono stati ricevuti i dati interni. (I12743)
Correzioni di bug
- È stato corretto l'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 tempistica dei frame più coerente e prevedibile. (I05a43, b/233358407) - È stato corretto il bug
ConcurrentModificationException
in cui l'elenco dei delegati del listener veniva modificato durante l'iterazione per inviare i dati per frame. (Ib7693, b/236612357)
Versione 1.0.0-alpha02
29 giugno 2022
androidx.metrics:metrics-performance:1.0.0-alpha02
è stato rilasciato. La versione 1.0.0-alpha02 contiene questi commit.
Modifiche alle API
- È stato rinominato
MetricsStateHolder
in Holder (all'interno diPerformanceMetricsState
): (I5a4d9, b/226565716, b/213499234)
Correzioni di bug
- È stato risolto un problema di sincronizzazione a causa del quale gli stati potevano essere sostituiti con nuovi valori prima che fossero elaborati i frame in cui lo stato precedente sarebbe stato corretto (aosp/2061892, b/213499234)
- È stata corretta l'eccezione di modifica simultanea durante l'aggiunta/rimozione di listener (aosp/2092714, b/213499234)
- Sono stati resi più precisi i calcoli di startTime (aosp/2027704, b/213245198)
- È stato corretto un bug 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
è stato rilasciato. La versione 1.0.0-alpha01 contiene questi commit.
Nuove funzionalità
- La libreria
JankStats
fornisce funzionalità per instrumentare e ricevere callback nell'applicazione in fase di runtime, il che può aiutare 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é.