Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Dane
Śledzenie i raportowanie różnych danych dotyczących działania aplikacji
Ostatnia aktualizacja |
Wersja stabilna |
Wersja kandydująca |
Wersja Beta |
Wersja alfa |
12 marca 2025 r. |
- |
- |
1.0.0-beta02 |
- |
Deklarowanie zależności
Aby dodać zależność od Metrics, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Maven firmy Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle
aplikacji lub modułu:
Odlotowe
dependencies {
implementation "androidx.metrics:metrics-performance:1.0.0-beta02"
}
Kotlin
dependencies {
implementation("androidx.metrics:metrics-performance:1.0.0-beta02")
}
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz zagłosować na istniejący problem, klikając przycisk z gwiazdką.
Tworzenie nowego zgłoszenia
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.0.0
Wersja 1.0.0-beta02
12 marca 2025 r.
androidx.metrics:metrics-performance:1.0.0-beta02
został zwolniony. Wersja 1.0.0-beta02 zawiera te komity.
Poprawki błędów
- Rozwiązanie problemów z awariami
DelegatingFrameMetricsListener cannot be cast...
(Id891c, b/311218678).
Wersja 1.0.0-beta01
10 stycznia 2024 r.
Interfejs API i funkcje tej biblioteki są stabilne od jakiegoś czasu. Ta wersja po prostu wprowadza bibliotekę do wersji beta.
androidx.metrics:metrics-performance:1.0.0-beta01
został zwolniony. Wersja 1.0.0-beta01 zawiera te commity.
Wersja 1.0.0-alpha04
5 kwietnia 2023 r.
Ta wersja zawiera aktualizację JankStats do najnowszych poprawek, które obejmują dokładniejsze i bardziej kompleksowe informacje o czasie.
androidx.metrics:metrics-performance:1.0.0-alpha04
został zwolniony. Wersja 1.0.0-alpha04 zawiera te commity.
Zmiany w interfejsie API
cpuDuration
teraz bardziej dokładne, a także nowe totalDuration
w interfejsie API 31 (I59ce8, b/243694893)
Wersja 1.0.0-alpha03
27 lipca 2022 roku
androidx.metrics:metrics-performance:1.0.0-alpha03
został zwolniony. Wersja 1.0.0-alpha03 zawiera te commity.
Ta wersja zawiera drobne udoskonalenia interfejsu API, ponieważ biblioteka zbliża się do wersji beta. Jedną z zmian w interfejsie API jest usunięcie wykonawcy z metody fabrycznej createAndTrack()
służącej do tworzenia obiektu JankStats
. Ma to wpływ na wywołanie zwrotne OnFrameListener
, ponieważ ten odbiorca jest teraz wywoływany w wątku, który dostarcza dane dotyczące poszczególnych klatek do JankStats
(w wersjach starszych niż API 24 jest to wątek główny/UI, a w wersjach od API 24 – wątek FrameMetrics
). Ponadto obiekt FrameData
przekazywany do odbiornika jest teraz używany ponownie w każdej klatce, więc dane z tego obiektu muszą być kopiowane i przechowywane w pamięci podręcznej w innym miejscu podczas wywołania zwrotnego, ponieważ obiekt powinien być uważany za nieaktualny, gdy tylko odbiorca zwróci wartość.
Wprowadziliśmy też różne poprawki błędów, w tym dotyczące problemów z jednoczesnością.
Na koniec poprawka dotycząca ponownego użycia FrameData
(wymieniona powyżej) oznacza, że z powodu dostarczania danych o klatkach nie ma już żadnych alokacji na klatkę. Wcześniej nie było zbyt wielu alokacji, ale nowe podejście oznacza, że możesz używać JankStats
bez generowania dodatkowych obciążeń GC w aplikacji na każdy kadr.
Zmiany w interfejsie API
- Zaktualizowaliśmy nazwy metod i parametrów w funkcji
PerformanceMetricsState
, aby wyniki tych wywołań były bardziej przejrzyste. (I56da5, b/233421985)
- Dodano testy porównawcze do śledzenia alokacji. Usunięto niektóre alokacje wewnętrzne związane z zarządzaniem stanem i raportowaniem. Pamiętaj, że przekazywana odbiorcom zmienna
FrameData
jest teraz uważana za zmienną; ta struktura zostanie użyta ponownie w następnym kadrze, a dane są wiarygodne tylko do czasu powrotu odbiornika.
- Usunięto Executor z konstruktora w przypadku
JankStats
; od teraz odsłuchi są wywoływane w dowolnym wątku, w którym odbierane są dane wewnętrzne. (I12743)
Poprawki błędów
- Usunięto awarię spowodowaną dwukrotnym usunięciem
OnFrameMetricsAvailableListener
(I44094, b/239457413).
- Powrót do pierwotnej logiki publikowania wiadomości
OnPreDrawListener
na początku kolejki, aby zapewnić bardziej spójne i przewidywalne opóźnienie klatek. (I05a43, b/233358407)
- Usunęliśmy błąd
ConcurrentModificationException
, który powodował, że lista delegatów odbiorców była modyfikowana, gdy była też iterowana w celu wysłania danych dotyczących poszczególnych klatek. (Ib7693, b/236612357)
Wersja 1.0.0-alpha02
29 czerwca 2022 r.
androidx.metrics:metrics-performance:1.0.0-alpha02
został zwolniony. Wersja 1.0.0-alpha02 zawiera te commity.
Zmiany w interfejsie API
Poprawki błędów
- Rozwiązaliśmy problem z synchronizacją, który powodował, że stany mogły zostać zastąpione nowymi wartościami przed przetworzeniem klatek, w których stary stan byłby prawidłowy (aosp/2061892, b/213499234).
- Naprawiono wyjątek dotyczący jednoczesnej modyfikacji podczas dodawania/usuwania słuchaczy (aosp/2092714, b/213499234)
- Dokładniejsze obliczenia wartości startTime (aosp/2027704, b/213245198)
- Naprawiono błąd w implementacji
FrameData.equals()
(aosp/2025866, b/218296544)
Wersja 1.0.0-alpha01
9 lutego 2022 r.
androidx.metrics:metrics-performance:1.0.0-alpha01
został zwolniony. Wersja 1.0.0-alpha01 zawiera te commity.
Nowe funkcje
- Biblioteka
JankStats
udostępnia funkcje do instrumentowania i odbierania wywołań zwrotnych w aplikacji w czasie wykonywania, co może pomóc w rozwiązywaniu problemów z wydajnością w rzeczywistych warunkach.
JankStats
łączy interfejs API, który ułatwia wprowadzanie informacji o stanie interfejsu użytkownika, z możliwościami śledzenia i raportowania wydajności w ramach poszczególnych klatek, dzięki czemu deweloperzy nie tylko dowiadują się, czy aplikacja ma problemy z wydajnością, ale także kiedy i dlaczego.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]