Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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é.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Metrics\n=======\n\nAPI Reference \n[androidx.metrics.performance](/reference/kotlin/androidx/metrics/performance/package-summary) \nTrack and report various runtime metrics for your application \n\n| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release |\n|----------------|----------------|-------------------|-----------------------------------------------------------------|---------------|\n| March 12, 2025 | - | - | [1.0.0-beta02](/jetpack/androidx/releases/metrics#1.0.0-beta02) | - |\n\nDeclaring dependencies\n----------------------\n\nTo add a dependency on Metrics, you must add the Google Maven repository to your\nproject. Read [Google's Maven repository](/studio/build/dependencies#google-maven)\nfor more information.\n\nAdd the dependencies for the artifacts you need in the `build.gradle` file for\nyour app or module: \n\n### Groovy\n\n```groovy\ndependencies {\n implementation \"androidx.metrics:metrics-performance:1.0.0-beta02\"\n}\n```\n\n### Kotlin\n\n```kotlin\ndependencies {\n implementation(\"androidx.metrics:metrics-performance:1.0.0-beta02\")\n}\n```\n\nFor more information about dependencies, see [Add build dependencies](/studio/build/dependencies).\n\nFeedback\n--------\n\nYour feedback helps make Jetpack better. Let us know if you discover new issues or have\nideas for improving this library. Please take a look at the\n[existing issues](https://issuetracker.google.com/issues?q=componentid:1109743%20status:open)\nin this library before you create a new one. You can add your vote to an existing issue by\nclicking the star button.\n\n[Create a new issue](https://issuetracker.google.com/issues/new?component=1109743&template=1621342)\n\nSee the [Issue Tracker documentation](https://developers.google.com/issue-tracker)\nfor more information.\n\nVersion 1.0.0\n-------------\n\n### Version 1.0.0-beta02\n\nMarch 12, 2025\n\n`androidx.metrics:metrics-performance:1.0.0-beta02` is released. Version 1.0.0-beta02 contains [these commits](https://android.googlesource.com/platform/frameworks/support/+log/7a45f0bc9e0a73744b3780a6f92e1b570de58bba..7a145e052ae61e272e91ffe285e9451b8ab71870/metrics/metrics-performance).\n\n**Bug Fixes**\n\n- Fix crashes `DelegatingFrameMetricsListener cannot be cast...` ([Id891c](https://android-review.googlesource.com/#/q/Id891c0cfdd7f45ef9e3b068644a113f39c8fc383), [b/311218678](https://issuetracker.google.com/issues/311218678)).\n\n### Version 1.0.0-beta01\n\nJanuary 10, 2024\n\nThe API and functionality of this library has been stable for some time. This release simply pushes the library to beta.\n\n`androidx.metrics:metrics-performance:1.0.0-beta01` is released. [Version 1.0.0-beta01 contains these commits.](https://android.googlesource.com/platform/frameworks/support/+log/a200cb82769634cecdb118ec4f0bfdf0b086e597..7a45f0bc9e0a73744b3780a6f92e1b570de58bba/metrics/metrics-performance)\n\n### Version 1.0.0-alpha04\n\nApril 5, 2023\n\nThis release updates JankStats to the latest fixes, which include more accurate and comprehensive timing information.\n\n`androidx.metrics:metrics-performance:1.0.0-alpha04` is released. [Version 1.0.0-alpha04 contains these commits.](https://android.googlesource.com/platform/frameworks/support/+log/a7f0710ad21f556f0dde9bf7bdab6d2135170fd4..a200cb82769634cecdb118ec4f0bfdf0b086e597/metrics/metrics-performance)\n\n**API Changes**\n\n- `cpuDuration` now more accurate, also new `totalDuration` on API31 ([I59ce8](https://android-review.googlesource.com/#/q/I59ce8c67f06a168f96893375c8aeca5516a55d81), [b/243694893](https://issuetracker.google.com/issues/243694893))\n\n### Version 1.0.0-alpha03\n\nJuly 27, 2022\n\n`androidx.metrics:metrics-performance:1.0.0-alpha03` is released. [Version 1.0.0-alpha03 contains these commits.](https://android.googlesource.com/platform/frameworks/support/+log/8094b683499b4098092c01028b55a38b49e357f2..a7f0710ad21f556f0dde9bf7bdab6d2135170fd4/metrics/metrics-performance)\n\n- This release contains minor API refinements as the library gets closer to beta. One of the API changes removes the Executor from the `createAndTrack()` factory method for creating a `JankStats` object. This has implications for the `OnFrameListener` callback, as that listener is now called on the thread which delivers the per-frame data to `JankStats` (the Main/UI thread on versions earlier than API 24, and the `FrameMetrics` thread on API 24+). Moreover, the `FrameData` object passed to the listener is now reused every frame, so data from that object must be copied and cached elsewhere during the callback, as that object should be considered obsolete as soon as the listener returns.\n\n- There were also various bug fixes, including some concurrency issues.\n\n- Finally, the fix to reuse `FrameData` (mentioned above) means that there are now zero allocations per frame due to frame metrics delivery. There weren't many allocations before, but the new approach means that you can use `JankStats` without incurring any per-frame GC overhead in your app.\n\n**API Changes**\n\n- Updated method and parameter names in `PerformanceMetricsState` to make the results of those calls clearer. ([I56da5](https://android-review.googlesource.com/#/q/I56da57b13818bf4077a64ab144222ce255f4539a), [b/233421985](https://issuetracker.google.com/issues/233421985))\n- Added benchmark tests to track allocations, eliminated some internal allocations related to state management and reporting. Note that `FrameData` passed to listeners is now considered volatile; that structure will be reused for the next frame and the data is only reliable until the listener returns.\n- Removed Executor from constructor for `JankStats`; listeners are now called on whatever thread the internal data was received upon. ([I12743](https://android-review.googlesource.com/#/q/I1274320bf29c171b82578868e657a3b01f7805c7))\n\n**Bug Fixes**\n\n- Fixed crash due to double-removal of `OnFrameMetricsAvailableListener` ([I44094](https://android-review.googlesource.com/#/q/I4409483d6e2f7287a0a93f521f68a4be9e22d969), [b/239457413](https://issuetracker.google.com/issues/239457413))\n- Return to original logic of posting `OnPreDrawListener` messages at front of queue, for more consistent and predictable frame timing. ([I05a43](https://android-review.googlesource.com/#/q/I05a434fe9453ea1be28d398e3eb284dd9b0cb64a), [b/233358407](https://issuetracker.google.com/issues/233358407))\n- Fixed `ConcurrentModificationException` bug where the list of listener delegates was being modified while it was also being iterated through to send per-frame data. ([Ib7693](https://android-review.googlesource.com/#/q/Ib769386f18e51dc6b58c935b42c5b8566c644abc), [b/236612357](https://issuetracker.google.com/issues/236612357))\n\n### Version 1.0.0-alpha02\n\nJune 29, 2022\n\n`androidx.metrics:metrics-performance:1.0.0-alpha02` is released. [Version 1.0.0-alpha02 contains these commits.](https://android.googlesource.com/platform/frameworks/support/+log/db2ecbef194afcddfaede22e1d884a8959a9277c..8094b683499b4098092c01028b55a38b49e357f2/metrics/metrics-performance)\n\n**API Changes**\n\n- Renamed `MetricsStateHolder` to just Holder (within `PerformanceMetricsState`): ([I5a4d9](https://android-review.googlesource.com/#/q/I5a4d9095520399a146e6fd78eb50c86a7051738b), [b/226565716](https://issuetracker.google.com/issues/226565716), [b/213499234](https://issuetracker.google.com/issues/213499234))\n\n**Bug Fixes**\n\n- Fixed timing issue where states could be replaced with new values before the frames had been processed where the old state would have been correct ([aosp/2061892](https://android-review.googlesource.com/c/platform/frameworks/support/+/2061892/), [b/213499234](https://issuetracker.google.com/issues/213499234))\n- Fixed concurrent modification exception in adding/removing listeners ([aosp/2092714](https://android-review.googlesource.com/c/platform/frameworks/support/+/2092714/), [b/213499234](https://issuetracker.google.com/issues/230388846))\n- Made startTime calculations more accurate ([aosp/2027704](https://android-review.googlesource.com/c/platform/frameworks/support/+/2027704/), [b/213245198](https://issuetracker.google.com/issues/213245198))\n- Fixed bug in `FrameData.equals()` implementation ([aosp/2025866](https://android-review.googlesource.com/c/platform/frameworks/support/+/2025866/), [b/218296544](https://issuetracker.google.com/issues/218296544))\n\n### Version 1.0.0-alpha01\n\nFebruary 9, 2022\n\n`androidx.metrics:metrics-performance:1.0.0-alpha01` is released. [Version 1.0.0-alpha01 contains these commits.](https://android.googlesource.com/platform/frameworks/support/+log/db2ecbef194afcddfaede22e1d884a8959a9277c/metrics/metrics-performance)\n\n**New Features**\n\n- The `JankStats` library provides functionality to instrument and receive callbacks in your application at runtime which can help find real world performance problems.\n- `JankStats` combines an API that makes it easy to inject information about UI state with capabilities for tracking and reporting per-frame performance to allow developers to understand not whether an application has performance issues, but when and why."]]