Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Metrikler
Uygulamanız için çeşitli çalışma zamanı metriklerini izleme ve raporlama
Son Güncelleme |
Kararlı sürüm |
Sürüm Adayı |
Beta Sürümü |
Alfa sürümü |
27 Ağustos 2025 |
- |
- |
1.0.0-beta03 |
- |
Bağımlılıkları bildirme
Metrikler'e bağımlılık eklemek için Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Eski
dependencies {
implementation "androidx.metrics:metrics-performance:1.0.0-beta03"
}
Kotlin
dependencies {
implementation("androidx.metrics:metrics-performance:1.0.0-beta03")
}
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Yeni sorun oluşturma
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.0.0
Sürüm 1.0.0-beta03
27 Ağustos 2025
androidx.metrics:metrics-performance:1.0.0-beta03
iptal edilir. 1.0.0-beta03 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
IllegalArgumentException
("Hiç eklenmemiş olan OnFrameMetricsAvailableListener
öğesini kaldırma girişimi") düzeltildi. Bir pencere donanım hızlandırmalı olmadığında kare zamanlamasını kaydetme girişimi yapılmaz. Bunun nedeni, bu işlemin Window.OnFrameMetricsAvailableListener
tarafından desteklenmemesidir. (I8fef2, b/436880904)
Sürüm 1.0.0-beta02
12 Mart 2025
androidx.metrics:metrics-performance:1.0.0-beta02
iptal edilir. 1.0.0-beta02 sürümü bu commit'leri içerir.
Hata Düzeltmeleri
- Kilitlenmeleri düzeltme
DelegatingFrameMetricsListener cannot be cast...
(Id891c, b/311218678).
Sürüm 1.0.0-beta01
10 Ocak 2024
Bu kitaplığın API'si ve işlevselliği bir süredir kararlıdır. Bu sürüm, kitaplığı beta sürümüne taşır.
androidx.metrics:metrics-performance:1.0.0-beta01
iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.
Sürüm 1.0.0-alpha04
5 Nisan 2023
Bu sürümde, daha doğru ve kapsamlı zamanlama bilgileri de dahil olmak üzere en son düzeltmelerle JankStats güncellenir.
androidx.metrics:metrics-performance:1.0.0-alpha04
iptal edilir. 1.0.0-alpha04 sürümü şu commit'leri içerir.
API Değişiklikleri
Sürüm 1.0.0-alpha03
27 Temmuz 2022
androidx.metrics:metrics-performance:1.0.0-alpha03
iptal edilir. 1.0.0-alpha03 sürümü şu commit'leri içerir.
Kitaplık beta sürümüne yaklaştıkça bu sürümde küçük API iyileştirmeleri yapıldı. API değişikliklerinden biri, createAndTrack()
nesnesi oluşturmak için kullanılan JankStats
fabrika yönteminden Executor'ı kaldırıyor. Bu durum, OnFrameListener
geri çağırması için sonuçlar doğurur. Çünkü bu dinleyici artık kare başına verileri JankStats
'ye (API 24'ten önceki sürümlerdeki ana/UI iş parçacığı ve API 24'te FrameMetrics
iş parçacığı) ileten iş parçacığında çağrılır. Ayrıca, dinleyiciye iletilen FrameData
nesnesi artık her karede yeniden kullanılır. Bu nedenle, dinleyici döndüğünde bu nesne eski olarak kabul edileceğinden, geri çağırma sırasında bu nesnedeki verilerin başka bir yere kopyalanıp önbelleğe alınması gerekir.
Aynı anda yapılan işlemlerle ilgili sorunlar da dahil olmak üzere çeşitli hatalar düzeltildi.
Son olarak, FrameData
'nın (yukarıda bahsedilen) yeniden kullanılmasıyla ilgili düzeltme, artık kare metriklerinin iletilmesi nedeniyle kare başına sıfır tahsis olduğu anlamına geliyor. Daha önce çok fazla ayırma işlemi yapılmıyordu ancak yeni yaklaşım sayesinde uygulamanızda kare başına GC ek yükü olmadan JankStats
kullanabilirsiniz.
API Değişiklikleri
- Bu aramaların sonuçlarını daha net hale getirmek için
PerformanceMetricsState
içindeki yöntem ve parametre adları güncellendi. (I56da5, b/233421985)
- Ayırmaları izlemek için karşılaştırma testleri eklendi, durum yönetimi ve raporlamayla ilgili bazı dahili ayırmalar kaldırıldı. Dinleyicilere iletilen
FrameData
değerinin artık geçici olarak kabul edildiğini unutmayın. Bu yapı, bir sonraki kare için yeniden kullanılır ve veriler yalnızca dinleyici döndürene kadar güvenilirdir.
JankStats
için oluşturucudan Executor kaldırıldı. Artık dahili verilerin alındığı iş parçacığı üzerinde dinleyiciler çağrılıyor. (I12743)
Hata Düzeltmeleri
OnFrameMetricsAvailableListener
öğesinin iki kez kaldırılması nedeniyle oluşan kilitlenme düzeltildi (I44094, b/239457413)
- Daha tutarlı ve öngörülebilir kare zamanlaması için
OnPreDrawListener
mesajlarını sıranın başına yerleştirme mantığına geri dönüldü. (I05a43, b/233358407)
- Kare başına veri göndermek için yineleme yapılırken dinleyici temsilcileri listesinin de değiştirildiği
ConcurrentModificationException
hatası düzeltildi. (Ib7693, b/236612357)
Sürüm 1.0.0-alpha02
29 Haziran 2022
androidx.metrics:metrics-performance:1.0.0-alpha02
iptal edilir. 1.0.0-alpha02 sürümü şu commit'leri içerir.
API Değişiklikleri
Hata Düzeltmeleri
Sürüm 1.0.0-alpha01
9 Şubat 2022
androidx.metrics:metrics-performance:1.0.0-alpha01
iptal edilir. 1.0.0-alpha01 sürümü şu commit'leri içerir.
Yeni Özellikler
JankStats
kitaplığı, uygulamanızda çalışma zamanında geri çağırmaları izlemenize ve almanıza olanak tanıyan işlevler sunar. Bu işlevler, gerçek dünyadaki performans sorunlarını bulmanıza yardımcı olabilir.
JankStats
, kullanıcı arayüzü durumuyla ilgili bilgilerin kolayca eklenmesini sağlayan bir API'yi, kare başına performansı izleme ve raporlama özellikleriyle birleştirerek geliştiricilerin bir uygulamanın performans sorunları olup olmadığını değil, ne zaman ve neden olduğunu anlamasına olanak tanır.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-08-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-08-27 UTC."],[],[],null,["Metrics \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| August 27, 2025 | - | - | [1.0.0-beta03](/jetpack/androidx/releases/metrics#1.0.0-beta03) | - |\n\nDeclaring dependencies\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\nGroovy \n\n```groovy\ndependencies {\n implementation \"androidx.metrics:metrics-performance:1.0.0-beta03\"\n}\n```\n\nKotlin \n\n```kotlin\ndependencies {\n implementation(\"androidx.metrics:metrics-performance:1.0.0-beta03\")\n}\n```\n\nFor more information about dependencies, see [Add build dependencies](/studio/build/dependencies).\n\nFeedback\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\nVersion 1.0.0-beta03\n\nAugust 27, 2025\n\n`androidx.metrics:metrics-performance:1.0.0-beta03` is released. Version 1.0.0-beta03 contains [these commits](https://android.googlesource.com/platform/frameworks/support/+log/7a145e052ae61e272e91ffe285e9451b8ab71870..cd8ce2bdb21194a81a76325a8e65dad5d7e28681/metrics/metrics-performance).\n\n**Bug Fixes**\n\n- Fix `IllegalArgumentException`(\"attempt to remove `OnFrameMetricsAvailableListener` that was never added\"). No attempt is made to record frame timing when a window isn't hardware accelerated, as this isn't supported by `Window.OnFrameMetricsAvailableListener`. ([I8fef2](https://android-review.googlesource.com/#/q/I8fef2d16449a9a50a2092200d28e45baae537e22), [b/436880904](https://issuetracker.google.com/issues/436880904))\n\nVersion 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\nVersion 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\nVersion 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\nVersion 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\nVersion 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\nVersion 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."]]