با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
معیارها
معیارهای مختلف زمان اجرا را برای برنامه خود پیگیری و گزارش کنید
آخرین به روز رسانی | انتشار پایدار | کاندید را آزاد کنید | نسخه بتا | انتشار آلفا |
---|
12 مارس 2025 | - | - | 1.0.0-beta02 | - |
اعلام وابستگی ها
برای افزودن وابستگی به Metrics، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Maven Google را بخوانید.
وابستگیهای مصنوعات مورد نیاز خود را در فایل build.gradle
برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies {
implementation "androidx.metrics:metrics-performance:1.0.0-beta02"
}
کاتلین
dependencies {
implementation("androidx.metrics:metrics-performance:1.0.0-beta02")
}
برای اطلاعات بیشتر درباره وابستگیها، به افزودن وابستگیهای ساخت نگاه کنید.
بازخورد
بازخورد شما به بهتر شدن Jetpack کمک می کند. اگر مسائل جدیدی کشف کردید یا ایده هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد کتابخانه جدید، به مسائل موجود در این کتابخانه نگاهی بیندازید. با کلیک کردن روی دکمه ستاره می توانید رای خود را به یک موضوع موجود اضافه کنید.
یک شماره جدید ایجاد کنید
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه 1.0.0
نسخه 1.0.0-beta02
12 مارس 2025
androidx.metrics:metrics-performance:1.0.0-beta02
منتشر شد. نسخه 1.0.0-beta02 حاوی این تعهدات است.
رفع اشکال
- رفع خرابیها
DelegatingFrameMetricsListener cannot be cast...
( Id891c ، b/311218678 ).
نسخه 1.0.0-beta01
10 ژانویه 2024
API و عملکرد این کتابخانه مدتی است که پایدار بوده است. این نسخه به سادگی کتابخانه را به سمت بتا سوق می دهد.
androidx.metrics:metrics-performance:1.0.0-beta01
منتشر شد. نسخه 1.0.0-beta01 حاوی این تعهدات است.
نسخه 1.0.0-alpha04
5 آوریل 2023
این نسخه JankStats را به آخرین اصلاحات، که شامل اطلاعات زمان دقیق تر و جامع تر است، به روز می کند.
androidx.metrics:metrics-performance:1.0.0-alpha04
منتشر شد. نسخه 1.0.0-alpha04 حاوی این commit ها است.
تغییرات API
-
cpuDuration
اکنون دقیق تر است، همچنین totalDuration
جدید در API31 ( I59ce8 , b/243694893 )
نسخه 1.0.0-alpha03
27 جولای 2022
androidx.metrics:metrics-performance:1.0.0-alpha03
منتشر شد. نسخه 1.0.0-alpha03 حاوی این commit ها است.
با نزدیک شدن کتابخانه به نسخه بتا، این نسخه شامل اصلاحات جزئی API است. یکی از تغییرات API، Executor را از متد کارخانه createAndTrack()
برای ایجاد یک شی JankStats
حذف می کند. این پیامدهایی برای پاسخ به تماس OnFrameListener
دارد، زیرا آن شنونده اکنون در رشته ای فراخوانی می شود که داده های هر فریم را به JankStats
تحویل می دهد (رشته اصلی/UI در نسخه های قبل از API 24 و رشته FrameMetrics
در API 24+). علاوه بر این، شی FrameData
که به شنونده ارسال میشود، اکنون در هر فریم مورد استفاده مجدد قرار میگیرد، بنابراین دادههای آن شی باید کپی و در جای دیگری در حین فراخوانی ذخیره شوند، زیرا به محض بازگشت شنونده، آن شی باید منسوخ در نظر گرفته شود.
همچنین رفع اشکالات مختلفی از جمله برخی مشکلات همزمان وجود داشت.
در نهایت، اصلاح استفاده مجدد FrameData
(که در بالا ذکر شد) به این معنی است که اکنون به دلیل تحویل معیارهای فریم، تخصیص به ازای هر فریم صفر است. قبلاً تخصیص های زیادی وجود نداشت، اما رویکرد جدید به این معنی است که می توانید از JankStats
بدون متحمل شدن سربار GC برای هر فریم در برنامه خود استفاده کنید.
تغییرات API
- نام روش ها و پارامترها را در
PerformanceMetricsState
به روز کرد تا نتایج آن تماس ها واضح تر شود. ( I56da5 , b/233421985 ) - اضافه شدن تستهای معیار برای پیگیری تخصیصها، حذف برخی از تخصیصهای داخلی مربوط به مدیریت و گزارشدهی ایالتی. توجه داشته باشید که
FrameData
که به شنوندگان ارسال می شود اکنون فرار در نظر گرفته می شود. آن ساختار برای فریم بعدی مجددا استفاده خواهد شد و داده ها فقط تا زمانی که شنونده برگردد قابل اعتماد است. - Executor از سازنده برای
JankStats
حذف شد. شنوندگان اکنون در هر رشته ای که داده های داخلی دریافت شده است فراخوانی می شوند. ( I12743 )
رفع اشکال
- رفع خرابی به دلیل حذف دوبار
OnFrameMetricsAvailableListener
( I44094 , b/239457413 ) - برای زمان بندی فریم سازگارتر و قابل پیش بینی تر، به منطق اصلی ارسال پیام های
OnPreDrawListener
در جلوی صف بازگردید. ( I05a43 , b/233358407 ) - رفع اشکال
ConcurrentModificationException
که در آن لیست نمایندگان شنونده در حالی که برای ارسال دادههای هر فریم نیز تکرار میشد، اصلاح میشد. ( Ib7693 , b/236612357 )
نسخه 1.0.0-alpha02
29 ژوئن 2022
androidx.metrics:metrics-performance:1.0.0-alpha02
منتشر شد. نسخه 1.0.0-alpha02 حاوی این commit ها است.
تغییرات API
رفع اشکال
نسخه 1.0.0-alpha01
9 فوریه 2022
androidx.metrics:metrics-performance:1.0.0-alpha01
منتشر شد. نسخه 1.0.0-alpha01 حاوی این commit ها است.
ویژگی های جدید
- کتابخانه
JankStats
عملکردی را برای ابزار و دریافت تماسهای برنامه شما در زمان اجرا فراهم میکند که میتواند به یافتن مشکلات عملکرد در دنیای واقعی کمک کند. -
JankStats
یک API را ترکیب میکند که تزریق اطلاعات در مورد وضعیت رابط کاربری را با قابلیتهایی برای ردیابی و گزارش عملکرد هر فریم آسان میکند تا به توسعهدهندگان این امکان را بدهد که نه اینکه برنامهای دارای مشکلات عملکردی است، بلکه زمان و چرایی آن را درک کنند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],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."]]