Messwerte
Letzte Aktualisierung | Stabile Version | Releasekandidat | Beta-Ausgabe | Alpharelease |
---|---|---|---|---|
10. Januar 2024 | - | - | 1.0.0-beta01 | - |
Abhängigkeiten deklarieren
Zum Hinzufügen einer Abhängigkeit von Metrics müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre Anwendung oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:
Cool
dependencies { implementation "androidx.metrics:metrics-performance:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.metrics:metrics-performance:1.0.0-beta01") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Dein Feedback hilft uns, Jetpack zu verbessern. Lassen Sie uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie eine neue erstellen. Durch Klicken auf die Stern-Schaltfläche können Sie zu einem vorhandenen Problem abstimmen.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.0.0
Version 1.0.0-beta01
10. Januar 2024
Die API und die Funktionalität dieser Bibliothek sind seit einiger Zeit stabil. Mit diesem Release wird die Bibliothek lediglich in die Betaversion versetzt.
androidx.metrics:metrics-performance:1.0.0-beta01
wird freigegeben. Version 1.0.0-beta01 enthält diese Commits.
Version 1.0.0-alpha04
5. April 2023
Mit dieser Version wird JankStats auf die neuesten Fehlerkorrekturen aktualisiert, die genauere und umfassendere Zeitinformationen enthalten.
androidx.metrics:metrics-performance:1.0.0-alpha04
wird freigegeben. Version 1.0.0-alpha04 enthält diese Commits.
API-Änderungen
cpuDuration
jetzt genauer, auch neuertotalDuration
in API31 (I59ce8, b/243694893)
Version 1.0.0-alpha03
27. Juli 2022
androidx.metrics:metrics-performance:1.0.0-alpha03
wird freigegeben. Version 1.0.0-alpha03 enthält diese Commits.
Diese Version enthält kleinere API-Verfeinerungen, da die Bibliothek der Betaphase näher rückt. Durch eine der API-Änderungen wird der Executor aus der Factory-Methode
createAndTrack()
zum Erstellen einesJankStats
-Objekts entfernt. Dies wirkt sich auf denOnFrameListener
-Callback aus, da dieser Listener nun im Thread aufgerufen wird, das die Daten pro Frame anJankStats
liefert (der Haupt-/UI-Thread in Versionen vor API 24 und derFrameMetrics
-Thread in API 24+). Darüber hinaus wird das an den Listener übergebeneFrameData
-Objekt jetzt jeden Frame wiederverwendet. Die Daten von diesem Objekt müssen also während des Callbacks kopiert und an anderer Stelle im Cache gespeichert werden, da dieses Objekt als veraltet angesehen werden sollte.Es gab auch verschiedene Fehlerkorrekturen, einschließlich einiger Nebenläufigkeitsprobleme.
Die oben erwähnte Fehlerkorrektur zur Wiederverwendung von
FrameData
bedeutet jetzt, dass aufgrund der Bereitstellung von Frame-Messwerten jetzt keine Zuweisungen pro Frame vorhanden sind. Bisher gab es nicht viele Zuweisungen. Der neue Ansatz ermöglicht es Ihnen jedoch,JankStats
zu verwenden, ohne dass in Ihrer App der GC-Overhead pro Frame anfällt.
API-Änderungen
- Methoden- und Parameternamen in
PerformanceMetricsState
wurden aktualisiert, um die Ergebnisse dieser Aufrufe klarer zu gestalten. (I56da5, b/233421985) - Benchmark-Tests zum Nachverfolgen von Zuweisungen wurden hinzugefügt und einige interne Zuweisungen im Zusammenhang mit der Verwaltung des Bundesstaats und der Berichterstellung wurden eliminiert. Beachten Sie, dass
FrameData
, das an Listener übergeben wird, jetzt als flüchtig betrachtet wird. Diese Struktur wird für den nächsten Frame wiederverwendet und die Daten sind nur zuverlässig, bis der Listener zurückkehrt. - Executor für
JankStats
wurde aus dem Konstruktor entfernt. Listener werden jetzt in dem Thread aufgerufen, über das die internen Daten empfangen wurden. (I12743)
Fehlerkorrekturen
- Absturz durch doppeltes Entfernen von
OnFrameMetricsAvailableListener
(I44094, b/239457413) behoben - Kehren Sie zur ursprünglichen Logik zurück, um
OnPreDrawListener
-Nachrichten am Anfang der Warteschlange zu posten, um ein konsistentes und vorhersehbares Frame-Timing zu erreichen. (I05a43, b/233358407) - Der
ConcurrentModificationException
-Fehler wurde behoben, bei dem die Liste der Bevollmächtigten für Listener geändert wurde, während sie auch iteriert wurde, um Daten pro Frame zu senden. (Ib7693, b/236612357)
Version 1.0.0-alpha02
29. Juni 2022
androidx.metrics:metrics-performance:1.0.0-alpha02
wird freigegeben. Version 1.0.0-alpha02 enthält diese Commits.
API-Änderungen
MetricsStateHolder
wurde in nur Holder (innerhalb vonPerformanceMetricsState
) umbenannt: (I5a4d9, b/226565716, b/213499234)
Fehlerkorrekturen
- Zeitproblem behoben, bei dem Status durch neue Werte ersetzt werden konnten, bevor die Frames verarbeitet wurden, wobei der alte Status korrekt gewesen wäre (aosp/2061892, b/213499234)
- Die Ausnahme bei gleichzeitiger Änderung beim Hinzufügen/Entfernen von Listenern wurde behoben (aosp/2092714, b/213499234).
- Startzeit-Berechnungen wurden genauer (aosp/2027704, b/213245198)
- Es wurde ein Fehler in der
FrameData.equals()
-Implementierung behoben (aosp/2025866, b/218296544).
Version 1.0.0-alpha01
9. Februar 2022
androidx.metrics:metrics-performance:1.0.0-alpha01
wird freigegeben. Version 1.0.0-alpha01 enthält diese Commits.
Neue Funktionen
- Die
JankStats
-Bibliothek bietet Funktionen, mit denen du Callbacks in deiner Anwendung zur Laufzeit instrumentieren und empfangen kannst, um echte Leistungsprobleme zu erkennen. JankStats
kombiniert eine API, mit der Informationen zum UI-Status ganz einfach eingefügt werden können, mit Funktionen für das Tracking und die Berichterstellung zur Leistung pro Frame. Entwickler können so nicht feststellen, ob bei einer App Leistungsprobleme vorliegen, sondern wann und warum.