المقاييس
آخر الأخبار | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
---|---|---|---|---|
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 هذه التعديلات.
إصلاح الأخطاء
- إصلاح الأعطال
DelegatingFrameMetricsListener cannot be cast...
(Id891c، b/311218678)
الإصدار 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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تمت إعادة تسمية
MetricsStateHolder
إلى Holder فقط (ضمنPerformanceMetricsState
): (I5a4d9، b/226565716، b/213499234)
إصلاح الأخطاء
- تم إصلاح مشكلة التوقيت التي كان من الممكن فيها استبدال الحالات بقيم جديدة قبل معالجة اللقطات التي كانت الحالة القديمة فيها صحيحة (aosp/2061892 وb/213499234)
- تم إصلاح استثناء التعديل المتزامن عند إضافة/إزالة المستمعين (aosp/2092714 وb/213499234)
- تحسين دقة احتساب startTime (aosp/2027704 وb/213245198)
- تم إصلاح الخطأ في تنفيذ
FrameData.equals()
(aosp/2025866 وb/218296544)
الإصدار 1.0.0-alpha01
9 فبراير 2022
تم طرح androidx.metrics:metrics-performance:1.0.0-alpha01
. يتضمّن الإصدار 1.0.0-alpha01 هذه التعديلات.
الميزات الجديدة
- توفّر مكتبة
JankStats
وظائف لتسجيل البيانات وتلقّي عمليات رد الاتصال في تطبيقك أثناء وقت التشغيل، ما يساعد في العثور على مشاكل الأداء في العالم الحقيقي. - تجمع
JankStats
بين واجهة برمجة تطبيقات تسهّل إدخال معلومات حول حالة واجهة المستخدم وإمكانات تتبُّع الأداء وإعداد التقارير لكل إطار، ما يتيح للمطوّرين معرفة ما إذا كان التطبيق يعاني من مشاكل في الأداء، ومتى ولماذا.