تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
المقاييس
تتبُّع مقاييس وقت التشغيل المختلفة لتطبيقك وإعداد تقارير عنها
آخر الأخبار |
الإصدار الثابت |
إصدار محتمل |
الإصدار التجريبي |
الإصدار الأوّلي |
27 أغسطس 2025 |
- |
- |
1.0.0-beta03 |
- |
تحديد الاعتماديات
لإضافة اعتمادية على Metrics، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google
لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle
لتطبيقك أو وحدتك:
Groovy
dependencies {
implementation "androidx.metrics:metrics-performance:1.0.0-beta03"
}
Kotlin
dependencies {
implementation("androidx.metrics:metrics-performance:1.0.0-beta03")
}
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات البناء.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على
المشاكل الحالية
في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
إنشاء مشكلة جديدة
يُرجى الاطّلاع على مستندات Issue Tracker
للحصول على مزيد من المعلومات.
الإصدار 1.0.0
الإصدار 1.0.0-beta03
27 أغسطس 2025
تم طرح androidx.metrics:metrics-performance:1.0.0-beta03
. يتضمّن الإصدار 1.0.0-beta03 هذه التعديلات.
إصلاح الأخطاء
- إصلاح الخطأ
IllegalArgumentException
("محاولة إزالة OnFrameMetricsAvailableListener
التي لم تتم إضافتها مطلقًا"). لا تتم محاولة تسجيل توقيت اللقطة عندما لا يتم تسريع النافذة باستخدام الأجهزة، لأنّ Window.OnFrameMetricsAvailableListener
لا يتيح ذلك. (I8fef2، b/436880904)
الإصدار 1.0.0-beta02
12 مارس 2025
تم طرح androidx.metrics:metrics-performance:1.0.0-beta02
. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.
إصلاح الأخطاء
الإصدار 1.0.0-beta01
10 يناير 2024
لقد كانت واجهة برمجة التطبيقات ووظائف هذه المكتبة ثابتة لبعض الوقت. يتم في هذا الإصدار طرح المكتبة في الإصدار التجريبي.
تم طرح 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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
cpuDuration
أكثر دقة الآن، بالإضافة إلى totalDuration
الجديد على الإصدار 31 من واجهة برمجة التطبيقات (I59ce8، b/243694893)
الإصدار 1.0.0-alpha03
27 يوليو 2022
تم طرح androidx.metrics:metrics-performance:1.0.0-alpha03
. يتضمّن الإصدار 1.0.0-alpha03 هذه التعديلات.
يتضمّن هذا الإصدار تحسينات طفيفة على واجهة برمجة التطبيقات مع اقتراب المكتبة من الإصدار التجريبي. أحد التغييرات في واجهة برمجة التطبيقات يزيل Executor من طريقة إنشاء المصنع createAndTrack()
لإنشاء كائن JankStats
. ويترتّب على ذلك آثار على دالة ردّ النداء OnFrameListener
، إذ يتم الآن استدعاء أداة معالجة الأحداث هذه في سلسلة التعليمات التي تنقل البيانات لكل إطار إلى JankStats
(سلسلة التعليمات الرئيسية/واجهة المستخدم في الإصدارات الأقدم من المستوى 24 لواجهة برمجة التطبيقات، وسلسلة التعليمات FrameMetrics
في المستوى 24 لواجهة برمجة التطبيقات والإصدارات الأحدث). علاوةً على ذلك، تتم إعادة استخدام العنصر FrameData
الذي تم تمريره إلى أداة معالجة الأحداث في كل إطار، لذا يجب نسخ البيانات من هذا العنصر وتخزينها مؤقتًا في مكان آخر أثناء دالة ردّ النداء، لأنّه يجب اعتبار هذا العنصر قديمًا بمجرد أن تعرض أداة معالجة الأحداث.
تم أيضًا إصلاح العديد من الأخطاء، بما في ذلك بعض المشاكل المتعلقة بالتزامن.
أخيرًا، يعني إصلاح مشكلة إعادة استخدام FrameData
(المذكورة أعلاه) أنّه لم يعُد هناك أي عمليات تخصيص لكل إطار بسبب عرض مقاييس الإطارات. لم تكن هناك العديد من عمليات التخصيص من قبل، ولكن النهج الجديد يعني أنّه يمكنك استخدام JankStats
بدون تكبُّد أي تكلفة إضافية لكل إطار في تطبيقك.
تغييرات واجهة برمجة التطبيقات
- تم تعديل أسماء الطرق والمَعلمات في
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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
إصلاح الأخطاء
الإصدار 1.0.0-alpha01
9 فبراير 2022
تم طرح androidx.metrics:metrics-performance:1.0.0-alpha01
. يتضمّن الإصدار 1.0.0-alpha01 هذه التعديلات.
الميزات الجديدة
- توفّر مكتبة
JankStats
وظائف لتسجيل البيانات وتلقّي عمليات رد الاتصال في تطبيقك أثناء وقت التشغيل، ما يساعد في العثور على مشاكل الأداء في العالم الحقيقي.
- تجمع
JankStats
بين واجهة برمجة تطبيقات تسهّل إدخال معلومات حول حالة واجهة المستخدم وإمكانات تتبُّع الأداء وإعداد التقارير لكل إطار، ما يتيح للمطوّرين معرفة ما إذا كان التطبيق يعاني من مشاكل في الأداء، ومتى ولماذا.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-08-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]