Metriche
Aggiornamento più recente | Release stabile | Candidato di rilascio | Versione beta | Versione alpha |
---|---|---|---|---|
10 gennaio 2024 | - | - | 1.0.0-beta01 | - |
Dichiarazione delle dipendenze
Per aggiungere una dipendenza alle metriche, devi aggiungere il Repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il Repository Maven di Google.
Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle
per l'app o il modulo:
Alla moda
dependencies { implementation "androidx.metrics:metrics-performance:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.metrics:metrics-performance:1.0.0-beta01") }
Per ulteriori informazioni sulle dipendenze, vedi Aggiungere dipendenze delle build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Contattaci se scopri nuovi problemi o hai idee per migliorare la libreria. Dai un'occhiata ai problemi esistenti in questa libreria prima di crearne uno nuovo. 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-beta01
10 gennaio 2024
L'API e le funzionalità di questa libreria sono stabili da qualche tempo. Questa release esegue semplicemente il push della libreria alla 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 ultime correzioni, che includono informazioni più precise e complete sulle tempistiche.
androidx.metrics:metrics-performance:1.0.0-alpha04
viene rilasciato. La versione 1.0.0-alpha04 contiene questi commit.
Modifiche alle API
cpuDuration
ora più precisa, anche nuovatotalDuration
sull'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 piccoli perfezionamenti dell'API man mano che la libreria si avvicina alla versione beta. Una delle modifiche all'API rimuove l'esecutore dal metodo di fabbrica
createAndTrack()
per creare un oggettoJankStats
. Ciò ha implicazioni per il callbackOnFrameListener
, poiché ora il listener viene chiamato nel thread che invia 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, pertanto i dati di tale oggetto devono essere copiati e memorizzati nella cache altrove durante il callback, poiché l'oggetto deve essere considerato obsoleto non appena il listener viene restituito.Sono state inoltre apportate varie correzioni di bug, tra cui alcuni problemi di contemporaneità.
Infine, la correzione per riutilizzare
FrameData
(menzionata sopra) significa che ora non ci sono allocazioni per frame a causa della pubblicazione delle metriche frame. Prima non c'erano molte allocazioni, ma il nuovo approccio significa che puoi utilizzareJankStats
senza incorrere in costi generali GC per frame nella tua app.
Modifiche alle API
- Sono stati aggiornati i nomi di metodi e 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, sono state eliminate alcune allocazioni interne relative alla gestione e alla generazione di report degli stati. Tieni presente che il valore
FrameData
passato ai listener è ora considerato volatile. Questa struttura verrà riutilizzata per il frame successivo e i dati saranno affidabili solo fino a quando il listener non ritorna. - Esecutore rimosso dal costruttore di
JankStats
; i listener vengono ora chiamati su qualsiasi thread su cui sono stati ricevuti i dati interni. (I12743)
Correzioni di bug
- Risolto l'arresto anomalo dovuto alla doppia rimozione di
OnFrameMetricsAvailableListener
(I44094, b/239457413) - Torna alla logica originale di pubblicazione dei messaggi
OnPreDrawListener
in coda, per tempi dei frame più coerenti e prevedibili. (I05a43, b/233358407) - È stato corretto il bug
ConcurrentModificationException
per cui l'elenco dei delegati listener veniva modificato mentre veniva iterato per inviare 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 alle API
MetricsStateHolder
è stato rinominato solo Holder (all'interno diPerformanceMetricsState
): (I5a4d9, b/226565716, b/213499234)
Correzioni di bug
- Risolto il problema di tempo per cui gli stati potevano essere sostituiti con nuovi valori prima che i frame fossero stati elaborati e il vecchio stato sarebbe stato corretto (aosp/2061892, b/213499234)
- Correzione dell'eccezione di modifica simultanea nell'aggiunta/rimozione dei listener (aosp/2092714, b/213499234)
- Rendere i calcoli startTime più accurati (aosp/2027704, b/213245198)
- Corretto il 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
viene rilasciato. La versione 1.0.0-alpha01 contiene questi commit.
Nuove funzionalità
- La libreria
JankStats
fornisce funzionalità per instrumentare e ricevere callback nella tua applicazione in fase di runtime, che possono aiutarti a individuare 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 presenta problemi di prestazioni, ma quando e perché.