Dane

  
Śledzenie i raportowanie różnych danych dotyczących czasu działania aplikacji
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja Beta Wersja alfa
27 sierpnia 2025 roku - - 1.0.0-beta03 -

Deklarowanie zależności

Aby dodać zależność od Metrics, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven Google.

Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:

Groovy

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

Kotlin

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

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 odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego problemu

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.0.0

Wersja 1.0.0-beta03

27 sierpnia 2025 roku

Publikacja androidx.metrics:metrics-performance:1.0.0-beta03 Wersja 1.0.0-beta03 zawiera te zmiany.

Poprawki błędów

  • Poprawka IllegalArgumentException("attempt to remove OnFrameMetricsAvailableListener that was never added"). Gdy okno nie jest akcelerowane sprzętowo, nie podejmuje się próby rejestrowania czasu klatek, ponieważ nie jest to obsługiwane przez Window.OnFrameMetricsAvailableListener. (I8fef2, b/436880904)

Wersja 1.0.0-beta02

12 marca 2025 r.

Publikacja androidx.metrics:metrics-performance:1.0.0-beta02 Wersja 1.0.0-beta02 zawiera te zmiany.

Poprawki błędów

  • Rozwiązano problemy 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. W tej wersji biblioteka została po prostu przeniesiona do wersji beta.

Publikacja androidx.metrics:metrics-performance:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zmiany.

Wersja 1.0.0-alpha04

5 kwietnia 2023 r.

Ta wersja zawiera najnowsze poprawki JankStats, w tym dokładniejsze i bardziej szczegółowe informacje o czasie.

Publikacja androidx.metrics:metrics-performance:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zmiany.

Zmiany w interfejsie API

  • cpuDuration – teraz dokładniejsze, a także nowe totalDuration w API31 (I59ce8, b/243694893)

Wersja 1.0.0-alpha03

27 lipca 2022 roku

Publikacja androidx.metrics:metrics-performance:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zmiany.

  • Ta wersja zawiera drobne ulepszenia interfejsu API, ponieważ biblioteka zbliża się do wersji beta. Jedna ze zmian w interfejsie API usuwa obiekt Executor z createAndTrack() metody fabrycznej służącej do tworzenia obiektu JankStats. Ma to wpływ na wywołanie zwrotne OnFrameListener, ponieważ ten odbiornik jest teraz wywoływany w wątku, który dostarcza dane poszczególnych klatek do JankStats (wątek główny/interfejsu na wersjach wcześniejszych niż API 24 i wątek FrameMetrics na API 24+). Ponadto obiekt FrameData przekazywany do odbiornika jest teraz ponownie używany w każdej klatce, więc dane z tego obiektu muszą być kopiowane i przechowywane w pamięci podręcznej w trakcie wywołania zwrotnego, ponieważ obiekt ten należy uznać za przestarzały natychmiast po powrocie odbiornika.

  • Wprowadziliśmy też różne poprawki błędów, w tym dotyczące problemów z jednoczesnym dostępem.

  • Poza tym poprawka dotycząca ponownego wykorzystania FrameData (wspomniana powyżej) oznacza, że ze względu na dostarczanie danych o klatkach nie ma już żadnych przydziałów na klatkę. Wcześniej nie było wielu alokacji, ale nowe podejście oznacza, że możesz używać JankStats bezpłatnie związanych z odśmiecaniem pamięci w aplikacji.

Zmiany w interfejsie API

  • Zaktualizowaliśmy nazwy metod i parametrów w PerformanceMetricsState, aby wyniki tych wywołań były bardziej przejrzyste. (I56da5, b/233421985)
  • Dodaliśmy testy porównawcze do śledzenia przydziałów i wyeliminowaliśmy niektóre wewnętrzne przydziały związane z zarządzaniem stanem i raportowaniem. Pamiętaj, że obiekt FrameData przekazywany do odbiorców jest teraz uznawany za niestabilny. Ta struktura zostanie ponownie użyta w przypadku następnej klatki, a dane są wiarygodne tylko do momentu, gdy odbiorca zwróci wartość.
  • Usunięto wykonawcę z konstruktora dla JankStats; odbiorniki są teraz wywoływane w wątku, w którym odebrano dane wewnętrzne. (I12743)

Poprawki błędów

  • Naprawiono awarię spowodowaną podwójnym usunięciem OnFrameMetricsAvailableListener (I44094, b/239457413)
  • Przywrócenie pierwotnej logiki publikowania wiadomości OnPreDrawListener na początku kolejki w celu uzyskania bardziej spójnego i przewidywalnego czasu klatki. (I05a43, b/233358407)
  • Usunęliśmy błąd ConcurrentModificationException, który powodował, że lista delegatów odbiorników była modyfikowana podczas iteracji w celu wysyłania danych dotyczących poszczególnych klatek. (Ib7693, b/236612357)

Wersja 1.0.0-alpha02

29 czerwca 2022 r.

Publikacja androidx.metrics:metrics-performance:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zmiany.

Zmiany w interfejsie API

Poprawki błędów

  • Rozwiązaliśmy problem z synchronizacją, który powodował, że stany mogły być zastępowane nowymi wartościami, zanim przetworzone zostały klatki, w których stary stan byłby prawidłowy (aosp/2061892, b/213499234).
  • Naprawiono wyjątek dotyczący jednoczesnej modyfikacji podczas dodawania i usuwania słuchaczy (aosp/2092714, b/213499234)
  • Ulepszono obliczenia 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.

Publikacja androidx.metrics:metrics-performance:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • Biblioteka JankStats udostępnia funkcje, które umożliwiają instrumentację i otrzymywanie wywołań zwrotnych w aplikacji w czasie działania, co może pomóc w znalezieniu rzeczywistych problemów z wydajnością.
  • JankStats łączy interfejs API, który ułatwia wstrzykiwanie informacji o stanie interfejsu, z możliwościami śledzenia i raportowania wydajności poszczególnych klatek, dzięki czemu deweloperzy mogą dowiedzieć się nie tylko, czy aplikacja ma problemy z wydajnością, ale też kiedy i dlaczego.