Dane
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.
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 removeOnFrameMetricsAvailableListener
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 przezWindow.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 nowetotalDuration
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 obiektuJankStats
. Ma to wpływ na wywołanie zwrotneOnFrameListener
, ponieważ ten odbiornik jest teraz wywoływany w wątku, który dostarcza dane poszczególnych klatek doJankStats
(wątek główny/interfejsu na wersjach wcześniejszych niż API 24 i wątekFrameMetrics
na API 24+). Ponadto obiektFrameData
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
- Zmiana nazwy
MetricsStateHolder
na Holder (wPerformanceMetricsState
): (I5a4d9, b/226565716, b/213499234)
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.