Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Metrik
Melacak dan melaporkan berbagai metrik runtime untuk aplikasi Anda
Update Terbaru |
Rilis Stabil |
Kandidat Rilis |
Rilis Beta |
Rilis Alfa |
12 Maret 2025 |
- |
- |
1.0.0-beta02 |
- |
Mendeklarasikan dependensi
Untuk menambahkan dependensi pada Metrics, Anda harus menambahkan repositori Maven Google ke project
Anda. Baca repositori Maven Google
untuk informasi selengkapnya.
Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle
bagi aplikasi atau modul Anda:
Groovy
dependencies {
implementation "androidx.metrics:metrics-performance:1.0.0-beta02"
}
Kotlin
dependencies {
implementation("androidx.metrics:metrics-performance:1.0.0-beta02")
}
Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.
Masukan
Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai
masukan untuk meningkatkan kualitas library ini. Harap periksa
masalah yang sudah diketahui
dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan
mengklik tombol bintang.
Laporkan masalah baru
Lihat dokumentasi Issue Tracker
untuk informasi selengkapnya.
Versi 1.0.0
Versi 1.0.0-beta02
12 Maret 2025
androidx.metrics:metrics-performance:1.0.0-beta02
dirilis. Versi 1.0.0-beta02 berisi commit ini.
Perbaikan Bug
- Memperbaiki error
DelegatingFrameMetricsListener cannot be cast...
(Id891c, b/311218678).
Versi 1.0.0-beta01
10 Januari 2024
API dan fungsi library ini telah stabil selama beberapa waktu. Rilis ini hanya mendorong library ke versi beta.
androidx.metrics:metrics-performance:1.0.0-beta01
dirilis. Versi 1.0.0-beta01 berisi commit ini.
Versi 1.0.0-alpha04
5 April 2023
Rilis ini mengupdate JankStats ke perbaikan terbaru, yang mencakup informasi pengaturan waktu yang lebih akurat dan komprehensif.
androidx.metrics:metrics-performance:1.0.0-alpha04
dirilis. Versi 1.0.0-alpha04 berisi commit ini.
Perubahan API
cpuDuration
kini lebih akurat, juga totalDuration
baru di API31 (I59ce8, b/243694893)
Versi 1.0.0-alpha03
27 Juli 2022
androidx.metrics:metrics-performance:1.0.0-alpha03
dirilis. Versi 1.0.0-alpha03 berisi commit ini.
Rilis ini berisi peningkatan minor pada API saat library mendekati versi beta. Salah satu perubahan API menghapus Executor dari metode factory createAndTrack()
untuk membuat objek JankStats
. Hal ini memiliki implikasi terhadap callback OnFrameListener
, karena pemroses tersebut sekarang dipanggil pada thread yang mengirimkan data per frame ke JankStats
(Thread Utama/UI thread pada versi sebelum API 24, dan thread FrameMetrics
pada API 24+). Selain itu, objek FrameData
yang diteruskan ke pemroses kini digunakan kembali setiap frame, sehingga data dari objek tersebut harus disalin dan di-cache di tempat lain selama callback, karena objek tersebut harus dianggap usang segera setelah pemroses ditampilkan.
Ada juga berbagai perbaikan bug, termasuk beberapa masalah serentak.
Terakhir, perbaikan untuk menggunakan kembali FrameData
(disebutkan di atas) berarti bahwa sekarang tidak ada alokasi per frame karena penayangan metrik frame. Sebelumnya tidak ada banyak alokasi, tetapi pendekatan baru ini berarti Anda dapat menggunakan JankStats
tanpa menimbulkan overhead GC per frame di aplikasi Anda.
Perubahan API
- Memperbarui metode dan nama parameter dalam
PerformanceMetricsState
untuk membuat hasil panggilan tersebut lebih jelas. (I56da5, b/233421985)
- Menambahkan pengujian tolok ukur untuk melacak alokasi sehingga menghilangkan beberapa alokasi internal yang terkait dengan pengelolaan dan pelaporan status. Perhatikan bahwa
FrameData
yang diteruskan ke pemroses kini dianggap tidak stabil; struktur tersebut akan digunakan kembali untuk frame berikutnya dan data hanya dapat diandalkan hingga pemroses menampilkan.
- Menghapus Executor dari konstruktor untuk
JankStats
; pemroses kini dipanggil di thread mana pun tempat data internal diterima. (I12743)
Perbaikan Bug
- Memperbaiki error karena penghapusan ganda
OnFrameMetricsAvailableListener
(I44094, b/239457413)
- Menampilkan logika asli postingan pesan
OnPreDrawListener
di depan antrean, untuk mengetahui waktu render frame yang lebih konsisten dan dapat diprediksi. (I05a43, b/233358407)
- Memperbaiki bug
ConcurrentModificationException
ketika daftar delegasi pemroses diubah saat sedang dilakukan iterasi untuk mengirim data per frame. (Ib7693, b/236612357)
Versi 1.0.0-alpha02
29 Juni 2022
androidx.metrics:metrics-performance:1.0.0-alpha02
dirilis. Versi 1.0.0-alpha02 berisi commit ini.
Perubahan API
Perbaikan Bug
Versi 1.0.0-alpha01
9 Februari 2022
androidx.metrics:metrics-performance:1.0.0-alpha01
dirilis. Versi 1.0.0-alpha01 berisi commit ini.
Fitur Baru
- Library
JankStats
menyediakan fungsi untuk menginstrumentasikan dan menerima callback di aplikasi Anda pada saat runtime yang dapat membantu menemukan masalah performa aktual.
JankStats
menggabungkan API yang memudahkan memasukkan informasi tentang status UI dengan kemampuan untuk melacak dan melaporkan performa per frame guna memungkinkan developer memahami apakah aplikasi memiliki masalah performa, tetapi kapan dan alasannya.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[null,null,["Terakhir diperbarui pada 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."]]