مقياس الأداء

يجب قياس أداء الرمز البرمجي بدقة ضمن "استوديو Android".
آخر تعديل الإصدار المستقر إصدار المرشح الإصدار التجريبي إصدار أولي
15 تشرين الثاني (نوفمبر) 2023 1.2.1 - - -

إعلان التبعيات

لإضافة تبعية على مقياس الأداء، يجب عليك إضافة مستودع Google Maven إلى مشروعك. يمكنك الاطّلاع على مستودع Maven من Google للحصول على مزيد من المعلومات.

أضِف التبعيات للعناصر التي تحتاجها في ملف build.gradle لتطبيقك أو الوحدة:

معيار ماكرو

لاستخدام مقياس الأداء الفائق في مشروعك، أضِف التبعيات التالية إلى ملف build.gradle لتطبيقك أو وحدتك:

Groovy

dependencies {
  androidTestImplementation "androidx.benchmark:benchmark-macro-junit4:1.1.1"
}

Kotlin

dependencies {
  androidTestImplementation("androidx.benchmark:benchmark-macro-junit4:1.1.1")
}

مقياس أداء مصغّر

Groovy

dependencies {
    androidTestImplementation "androidx.benchmark:benchmark-junit4:1.1.1"
}

android {
    ...
    defaultConfig {
        ...
        testInstrumentationRunner "androidx.benchmark.junit4.AndroidBenchmarkRunner"
    }
}

Kotlin

dependencies {
    androidTestImplementation("androidx.benchmark:benchmark-junit4:1.1.1")
}

android {
    ...
    defaultConfig {
        ...
        testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner"
    }
}

Microbenchmark 库还提供了一个可与 Microbenchmark 模块搭配使用的 Gradle 插件。此插件可设置模块的默认 build 配置,设置将基准输出复制到主机,并提供 ./gradlew lockClocks 任务

如需使用该插件,请在顶级 build.gradle 文件的“plugins”代码块中添加以下代码行:

Groovy

plugins {
  id 'androidx.benchmark' version '1.1.1' apply false
}

Kotlin

plugins {
  id("androidx.benchmark") version "1.1.1" apply false
}

然后,将该插件应用到基准模块的 build.gradle 文件

Groovy

plugins {
  id 'androidx.benchmark'
}

Kotlin

plugins {
    id("androidx.benchmark")
}

ملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء عدد جديد

راجع وثائق "أداة تتبُّع المشاكل" للحصول على مزيد من المعلومات.

الإصدار 1.2

الإصدار 1.2.1

15 تشرين الثاني (نوفمبر) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.1". يتضمّن الإصدار 1.2.1 هذه الالتزامات.

الميزات الجديدة

  • تم تحسين رسالة الخطأ عندما يوقِف المستخدم صيغ الاختبار (b/307478189)
  • تمت إضافة مواقع لإتاحة دمج تشغيل اختبار AS (b/309805233)، (b/309116324)

الإصدار 1.2.0

18 تشرين الأول (أكتوبر) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0". يحتوي الإصدار 1.2.0 على هذه الالتزامات.

تغييرات مهمة منذ الإصدار 1.1.0

الملفات الشخصية الأساسية

  • يعمل المكوّن الإضافي Baseline Profile Gradle الجديد على تسجيل الملفات الشخصية الأساسية وتضمينها بشكل مبرمَج في سير عمل الاختبار والإنشاء.
  • إصدار BaselineProfileRule.collect ثابت الآن، وهو إصدار مبسّط ومبسّط من واجهة برمجة التطبيقات BaselineProfileRule.collectBaselineProfile التجريبية السابقة.
    • ما عليك سوى تحديد packageName وبدء تطبيقك
  • بالنسبة إلى المكتبات التي تنشئ ملفات شخصية أساسية، يمكنك الآن فلترة القواعد التي تم إنشاؤها في الرمز (وسيطة BaselineProfileRule.collect) أو ببساطة في المكوِّن الإضافي Gradle
  • المشاكل
    • تم إصلاح مجموعة الملفات الشخصية الأساسية على Android U+ (Id1392، b/277645214)

مقياس الأداء الفائق

  • التحويل البرمجي
    • تعمل ميزة "مقياس الأداء الفائق" الآن على إعادة ضبط حالة التجميع لكل ملف مجمّع بشكل صحيح. يتطلّب ذلك إعادة تثبيت حزمة APK قبل الإصدار 14 من نظام التشغيل Android، لذا ننصح بشدة بإجراء قياس الأداء على الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث إذا كنت تريد استمرار حالة التشغيل (مثل تسجيل دخول المستخدم) في ما يتم قياسه.
    • ويمكنك أيضًا التغلب على هذه المشكلة من خلال التحكّم في تجميع التطبيقات بشكل منفصل، وتخطّي التحويل البرمجي باستخدام CompilationMode.Ignore() أو وسيطة الأدوات.
  • وسيطات قياس حالة التطبيق

    • إتاحة وسيطة قياس الأداء في androidx.benchmark.dryRunMode.enable (متاحة حاليًا في مقياس الأداء الجزئي) لإجراء عمليات تحقُّق أسرع (مثلاً عند إنشاء مقياس الأداء أو في مرحلة الإرسال المُسبَق)
    • الدعم لـ androidx.benchmark.profiling.mode=StackSampling وMethodTracing.
    • تمت إضافة androidx.benchmark.enabledRules للسماح باختبارات الملف الشخصي المرجعي لفلترة وقت التشغيل في مقابل اختبارات قاعدة مقاييس الأداء الكبرى.
    • تمت إضافة الوسيطة androidx.benchmark.perfettoSdkTracing.enable لتفعيل التتبُّع باستخدام tracing-perfetto، مثل تتبُّع إعادة التركيب. تجدر الإشارة إلى أنّه عند استخدام الملف مع StartupMode.COLD، سيتأثّر التوقيت بشكل كبير حيث يتم تحميل مكتبة التتبّع وتفعيلها أثناء بدء تشغيل التطبيق.
  • الشروط

    • يتطلّب التطبيق المستهدَف إصدار 1.3.0 من ProfileInstaller أو إصدارًا أحدث، وذلك لتفعيل التقاط / إعادة ضبط الملف الشخصي ومحو ذاكرة التخزين المؤقت لأداة التظليل.
  • واجهات برمجة التطبيقات التجريبية الجديدة للمقاييس

    • تمت إضافة TraceSectionMetric التجريبية، التي تسمح باستخراج توقيت بسيط من وحدات trace("") {} في تطبيقك، أو TraceMetric للاستفادة من إمكانات طلبات البحث الكاملة في Perfetto TraceProcessor.
    • تمت إضافة رمز PowerMetric التجريبي لتسجيل معلومات استخدام الطاقة.
    • تمت إضافة MemoryCountersMetric التجريبية لاحتساب أخطاء الصفحة.
    • تمت إضافة واجهة برمجة تطبيقات PerfettoTraceProcessor التجريبية، والتي يتم استخدامها داخليًا لاستخراج المقاييس من عمليات تتبُّع النظام (المعروفة أيضًا باسم عمليات تتبُّع Perfetto).
  • الإصلاحات

    • تم إصلاح الأعطال عند تثبيت الملفات الشخصية أو استخراجها من تطبيق تم تثبيته من حِزم APK متعددة (على سبيل المثال من حِزمة التطبيق).
    • تم إصلاح FrameTimingMetric مع تجاهل الإطارات ذات أرقام تعريف الإطارات غير المتسقة (بشكل عام، الإطارات أثناء الموجات على واجهة برمجة التطبيقات 31 والإصدارات الأحدث) (I747d2، b/279088460)
    • تم إصلاح أخطاء التحليل في بيانات التتبُّع أكبر من 64 ميغابايت (Ief831، b/269949822).
    • تم توضيح الأخطاء عندما لا يتم إعداد صورة نظام التشغيل في الجهاز (خاصةً المحاكي) بشكل صحيح للتتبّع أو التحويل البرمجي.
    • تخطَّ فحص مستوى شحن البطارية للأجهزة التي لا تحتوي على بطارية (صغيرة ومصغَّرة).
    • تحسين إخراج الملفات، مع عرض أخطاء أكثر وضوحًا لأدلة الإخراج غير الصالحة، وإعدادات تلقائية أكثر أمانًا
    • تحسين ثبات أداء StartupMode.COLD من خلال إسقاط ذاكرة التخزين المؤقت لأداة التظليل بشكل مستمر (يتم الكشف عنها أيضًا من خلال MacrobenchmarkScope.dropShaderCache)
    • تم إصلاح احتياطي leanback لـ startActivityAndWait.

مقياس الأداء الصغير

  • الميزات
    • تم نقل عملية إنشاء الملفات التعريفية إلى مرحلة منفصلة بعد المقاييس الأخرى، ما يتيح عرض التوقيت الدقيق ونتائج التحليل في إحدى الاختبارات.
  • واجهات برمجة التطبيقات التجريبية
    • تمت إضافة واجهة برمجة تطبيقات MicrobenchmarkConfig التجريبية لتحديد المقاييس المخصّصة وإعداد التتبع وإنشاء المواصفات. ويمكن استخدامها لالتقاط عمليات تتبُّع الإجراءات أو التقاط نقاط تتبُّع (ولكن مع الانتباه إلى تتبُّع الطلبات).
    • تمت إضافة واجهات برمجة تطبيقات تجريبية للتحكّم في BenchmarkState بشكل منفصل عن BenchmarkRule، بدون استخدام JUnit.
    • تمت إضافة سجلّ PerfettoTrace التجريبي لتفعيل التقاط بيانات آثار الأنشطة في Perfetto، من خلال إعدادات مخصَّصة ومنفصلة عن واجهات برمجة التطبيقات المستندة إلى مقياس الأداء.
  • المشاكل
    • حل بديل لغياب المسافات البيضاء البادئة في نتائج قياس الأداء في "استوديو Android"
    • حلّ مشكلة تعذُّر طباعة التحذيرات في نتائج قياس الأداء في "استوديو Android"
    • تم إصلاح عطل SampledProfiling على الإصدار 13 من نظام التشغيل Android (واجهة برمجة التطبيقات 33) والإصدارات الأحدث.
    • تم تحسين أداء dryRunMode بشكل كبير من خلال تخطّي IsolationActivity وعملية تتبّع Perfetto (وضع التشغيل التجريبي الأسرع يصل إلى 10 مرات على الإصدارات القديمة من أنظمة التشغيل).

الإصدار 1.2.0-rc02

6 تشرين الأول (أكتوبر) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-rc02". يحتوي الإصدار 1.2.0-rc02 على هذه الالتزامات.

إصلاح الأخطاء

  • عليك إصلاح ناتج ملف مقياس الأداء حتى لا يؤدي ذلك إلى إيقاف نسخ ملف BaselineProfile المكوّن الإضافي. تم إنشاء الملفات ونسخها من الجهاز، ولكن تمت إعادة تسميتها بحيث لا يراها مكوّن Gradle الإضافي. (I8dbcc، b/303034735، b/296453339)
  • تم توضيح رسائل خطأ التحميل tracing-perfetto عند الإدخال من وحدة قياس الأداء الكلي في التطبيق المستهدَف.

الإصدار 1.2.0-rc01

20 أيلول (سبتمبر) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-rc01". يحتوي الإصدار 1.2.0-rc01 على هذه الالتزامات.

إصلاح الأخطاء

  • يتم الآن طرح استثناء (مع تعليمات التعويض) عند تعذُّر إعداد تتبُّع حزمة Perfetto SDK في "مقياس الأداء". (I6c878، b/286228781)
  • إصلاح تعطُّل OOM عند تحويل طريقة تتبُّع طريقة ART -> تنسيق Perfetto (I106bd، b/296905344)
  • (برنامج قياس الأداء الفائق) تم توضيح تصنيف تتبُّع الطريقة عند الربط في نتائج اختبار استوديو YouTube، وتوفير طريقة ثابتة لتتبّع أسماء الملفات لتكون فريدة على الجهاز/المضيف، بحيث لا يتم استبدالها عند تشغيل أكثر من مقياس أداء واحد. (I08e65، b/285912360)
  • يضمن أن يكون الجهاز نشطًا عند التقاط ملف شخصي مرجعي. (I503fc)

الإصدار 1.2.0-beta05

30 آب (أغسطس) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-beta05". يحتوي الإصدار 1.2.0-beta05 على هذه الالتزامات.

الميزات الجديدة

  • أصبح مكوّن Baseline Profile Gradle الإضافي متوافقًا الآن مع الإصدار 8.3 من المكوّن الإضافي لنظام Gradle المتوافق مع Android. (aosp/2715214)

الإصدار 1.2.0-beta04

23 آب (أغسطس) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-beta04". يتضمّن الإصدار 1.2.0-beta04 هذه الالتزامات.

الميزات الجديدة

  • أصبح المكوّن الإضافي Baseline Profile Gradle متوافقًا الآن مع الإصدار 8.3 من المكوّن الإضافي لنظام Gradle المتوافق مع Android. (aosp/2715214)

إصلاح الأخطاء

  • يمكنك إصلاح الأخطاء في كتابة / نقل وسحب الملفات (خاصة تلك التي تنتج عن الاختبارات التي تتضمّن معلَمات) من خلال تعقيم أسماء ملفات الإخراج وتجنُّب '=' و ':' في أسماء ملفات الإخراج. (I759d8)

الإصدار 1.2.0-beta03

9 آب (أغسطس) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-beta03". يتضمّن الإصدار 1.2.0-beta03 هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة وسيطة لفلترة TraceSectionMetric إلى الحزمة المستهدَفة فقط، وتكون مفعَّلة تلقائيًا (Ia219b، b/292208786).

إصلاح الأخطاء

  • تمت إعادة تسمية وسيطة قياس الأداء fullTracing.enable إلى perfettoSdkTracing.enable لتطابق اسم العنصر والمراجع الأخرى. سيستمر عمل "fullTracing.enable" كعنصر احتياطي. (I7cc00)
  • ستظهر الآن نقاط التتبع الداخلية لمكتبة مقاييس الأداء (بما في ذلك التكرار المصغر/التتبُّع على مراحل) في أداة عرض التتبُّع ضمن نظام "استوديو YouTube"، وسيتم إدراجها ضمن العملية الصحيحة في Perfetto. (I6b2e7، b/293510459)
  • تمت إزالة الخطأ "غير قابلة للتحديد" لمقياس ماكرو على واجهة برمجة التطبيقات 31 والإصدارات الأحدث، وتخطي الفحص القابل للتحليل على الأجهزة الجذر eng/userdebug. (I2abac، b/291722507)
  • عند استخدام تحسينات تنسيق Dex، تُعتبر الآن قواعد الملف الشخصي لبدء التشغيل أيضًا كقواعد أساسية للملف الشخصي. (aosp/2684246، b/293889189)

الإصدار 1.2.0-beta02

26 تموز (يوليو) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-beta02". يحتوي الإصدار 1.2.0-beta02 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة واجهات برمجة تطبيقات تجريبية للمقاييس والإعدادات المخصّصة للمقاعد الصغيرة (مثل المحلِّل والتتبّع). (I86101، b/291820856)

إصلاح الأخطاء

  • الإبلاغ عن خطأ في Macrobench عندما يكون نظام التشغيل مضبوطًا بشكل خاطئ للتتبّع، كما تم إصلاحه مؤخرًا في محاكيات ARM64 لواجهة برمجة التطبيقات 26/28. (I0a328، b/282191686)
  • تمت إضافة تفاصيل إلى المشكلة التي حدثت في إعادة ضبط التحويل البرمجي بهدف اقتراح تحديث المحاكي، وذلك لأنّ بعض أدوات المحاكاة قد أصلحت هذه المشكلة مؤخرًا. (I8c815، b/282191686)
  • اجعل androidx.test.uiautomator:uiautomator:2.2.0 api بدلاً من تبعية implementation. (I1981e)

الإصدار 1.2.0-beta01

18 تموز (يوليو) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-beta01". يحتوي الإصدار 1.2.0-beta01 على هذه الالتزامات.

إصلاح الأخطاء

  • إصلاح التحذيرات التي يتم إلغاؤها في بعض الأحيان في إخراج "مقياس الأداء" في "استوديو YouTube"، وحل بديل للمسافات البيضاء البادئة من مخرجات "مقياس الأداء" التي لا تظهر في "استوديو YouTube" (Ia61d0 وb/227205461 وb/286306579 وb/285912360)
  • تعليق صالح لـ FrameTimingMetric. يُطلَق على المقياس الفرعي اسم frameDurationCpuMs. (Ib097f، b/288830934).

الإصدار 1.2.0-alpha16

‫21 حزيران (يونيو) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha16". يحتوي الإصدار 1.2.0-alpha16 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تمت إعادة تسمية واجهة برمجة التطبيقات BaselineProfileRule.collectBaselineProfile() إلى BaselineProfileRule.collect(). (I4b665)

إصلاح الأخطاء

  • إتاحة مقياس ماكرو في androidx.benchmark.profiling.mode = MethodTracing (I7ad37، b/285912360)
  • تم نقل تحليل مقاييس الأداء المصغّرة إلى مرحلة منفصلة، بحيث يحدث بالتسلسل بعد القياس، بدلاً من استبداله. ويتم أيضًا تضمين MethodTracing قسم تتبُّع في تتبُّع Perfetto الذي تم التقاطه، إن توفّرت. (I9f657، b/285014599)
  • إضافة قياس العدد إلى TraceSectionMetric باستخدام Mode.Sum (Ic121a، b/264398606)

الإصدار 1.2.0-alpha15

7 حزيران (يونيو) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha15". يحتوي الإصدار 1.2.0-alpha15 على هذه الالتزامات.

الميزات الجديدة

  • تمت إضافة MemoryUsageMetric التجريبي لتتبع استخدام الذاكرة لتطبيق مستهدف. (I56453، b/133147125، b/281749311)
  • يمكنك إتاحة إعدادات Perfetto المخصّصة بالكامل باستخدام PerfettoTrace.record (If9d75، وb/280460183).
  • تمت إضافة الموقع لتخطي إنشاء الملف الشخصي الأساسي. الاستخدام: ./gradlew assemble -Pandroidx.baselineprofile.skipgeneration (I37fda، b/283447020)

تغييرات واجهة برمجة التطبيقات

  • تنشئ واجهة برمجة التطبيقات collectBaselineProfile دائمًا ملفات شخصية مستقرة للمرجع. تمت إزالة واجهة برمجة التطبيقات collectStableBaselineProfile ويجب استخدام collectBaselineProfile بدلاً منها. (I17262، b/281078707)
  • تم تغيير وسيطة filterPredicate لـ BaselineProfileRule إلى غير فارغة، وبقيمة تلقائية مكافئة، بحيث يكون سلوك الفلتر التلقائي أكثر وضوحًا في المستندات. (I3816e)

إصلاح الأخطاء

  • يُرجى إيقاف تتبُّع IsolationActivity وPerfetto في dryRunMode لتحسين الأداء بشكل كبير، لأنّ هاتين الميزتَين كانتا أغلب أوقات التشغيل. (Ie4f7d)
  • إتاحة أخذ العينات من حزم المكالمات في مقاييس ماكرو باستخدام وسيطات اختبار قياس حالة التطبيق androidx.benchmark.profiling.mode=StackSampling وandroidx.benchmark.profiling.sampleFrequency. (I1d13b، b/282188489)
  • إصلاح الأعطال عند إسقاط برامج التظليل على Android U (واجهة برمجة التطبيقات 34)، وكذلك في أدوات المحاكاة (I031ca، b/274314544)

الإصدار 1.2.0-alpha14

3 أيار (مايو) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha14". يحتوي الإصدار 1.2.0-alpha14 على هذه الالتزامات.

إصلاح الأخطاء

  • إصلاح FrameTimingMetric مع تجاهل الإطارات ذات أرقام تعريف الإطارات غير المتسقة وسيؤدّي ذلك إلى تجاهل بعض الحركات في الإصدارات الحديثة للنظام الأساسي (واجهة برمجة التطبيقات 31 والإصدارات الأحدث) لتجاهل العديد من الإطارات بينما كانت RenderThread تتحرك، على سبيل المثال، أثناء حدوث موجة. (I747d2، b/279088460)
  • تم إصلاح تحليل معالج التتبُّع للسجلات التي يزيد حجمها عن 64 ميغابايت. (Ief831، b/269949822)
  • تعذَّر إنشاء الملف الشخصي الأساسي على Android U بسبب اختلاف إخراج الأمر pm dump-profiles. (Id1392، b/277645214)
  • إصلاح النص البرمجي لقفل ساعة وحدة معالجة الرسومات لمقارنة السلاسل بشكلٍ صحيح (I53e54، b/213935715)

الإصدار 1.2.0-alpha13

5 نيسان (أبريل) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha13". يحتوي الإصدار 1.2.0-alpha13 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة مَعلمة نوع الملف الشخصي عند إنشاء ملفات شخصية مرجعية لدعم الميزة القادمة للملف الشخصي الجديد (Ie20d7، b/275093123).
  • تمت إضافة واجهة برمجة تطبيقات TraceMetric تجريبية جديدة لتحديد المقاييس المخصّصة بالكامل استنادًا إلى محتوى تتبع Perfetto. (I4ce31، b/219851406)
  • أضف مقياسًا تجريبيًا لتحديد عدد أخطاء الصفحة أثناء استخدام مقياس أداء. (I48db0)

الإصدار 1.2.0-alpha12

22 آذار (مارس) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha12". يحتوي الإصدار 1.2.0-alpha12 على هذه الالتزامات.

الميزات الجديدة

  • تم إطلاق المكوّن الإضافي الجديد Gradle الشخصي الأساسي في الإصدار الأولي، ما يسهِّل إنشاء ملف شخصي أساسي وتبسيط سير عمل مطوّري البرامج.

تغييرات واجهة برمجة التطبيقات

  • تمت إزالة دعم Perfetto للتتبّع على واجهة برمجة التطبيقات 21 و22، والذي يتضمّن كلاً من مقاييس الأداء الصغرى وواجهات برمجة التطبيقات التجريبية PerfettoTrace. قبل هذا الإصدار، كانت اتصالات UiAutomation غير موثوقة على بعض الأجهزة. (I78e8c)
  • تمت إضافة واجهة برمجة تطبيقات تجريبية علنية لـ PerfettoTraceProcessor من أجل تفعيل تحليل محتوى التتبُّع. وهذه خطوة نحو إنشاء مقاييس مخصّصة بالكامل استنادًا إلى بيانات تتبّع Perfetto. (I2659e، b/219851406)

الإصدار 1.2.0-alpha11

8 آذار (مارس) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha11". يحتوي الإصدار 1.2.0-alpha11 على هذه الالتزامات.

إصلاح الأخطاء

  • تم إصلاح الأعطال في MacrobenchmarkRule وBaselineProfileRule عند إعادة تثبيت الملفات الشخصية أو استخراجها من حِزمة تطبيق تتضمّن عدة حِزم APK. (I0d8c8، b/270587281)

الإصدار 1.2.0-alpha10

22 شباط (فبراير) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha10". يحتوي الإصدار 1.2.0-alpha10 على هذه الالتزامات.

الميزات الجديدة

  • بفضل الميزة الجديدة التي يوفّرها النظام الأساسي، لم تعُد ميزة Macro BigQuery تعيد تثبيت التطبيقات المستهدَفة في نظام التشغيل Android 14 أو الإصدارات الأحدث لإعادة ضبط حالة التجميع. في السابق، كان من الضروري امتلاك جهاز مزوّد بإمكانية الوصول إلى الجذر أو التعامل مع جميع حالات التطبيق (مثل تسجيل دخول المستخدم) التي تتم إزالتها قبل تشغيل كل مقياس أداء. (I9b08c، b/249143766)

إصلاح الأخطاء

  • يمكنك إصلاح "DryRunMode" لعدم حدوث عطل بعد الآن إذا كان الملف الشخصي فارغًا بسبب تخطي التحويل البرمجي. بدلاً من ذلك، فإنها تقوم بتشغيل تكرار واحد وتستخرج الملف الشخصي لضمان التقاط شيء ما. (I2f05d، b/266403227)
  • إصلاح عطل PowerMetric عند التحقق من وجود powerstats في مستويات واجهة برمجة التطبيقات القديمة (5faaf9، b/268253898)

الإصدار 1.2.0-alpha09

11 كانون الثاني (يناير) 2023

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha09". يحتوي الإصدار 1.2.0-alpha09 على هذه الالتزامات.

إصلاح الأخطاء

  • تم تفعيل تمرير None إلى وسيطة قياس الأداء androidx.benchmark.enabledRules لإيقاف جميع مقاييس الأداء / إنشاء الملف الشخصي المرجعي. (I3d7fd، b/258671856)
  • إصلاح التقاط PerfettoTrace في وحدات التطبيق (أي حِزم APK التجريبية غير ذاتية القياس) (I12cfc)
  • تم إصلاح ترتيب وسيطة سحب الملف الشخصي الأساسي في مخرجات "استوديو YouTube" (I958d1، b/261781624)
  • يتم الآن التعرّف بشكلٍ صحيح على واجهة برمجة التطبيقات 33 لمحاكي مجموعة التجربة على هذا النحو عند محاولة تشغيل مقياس ماكرو، ما سيؤدي إلى طباعة التحذير بشكلٍ صحيح. (69133b،b/262209591)
  • تخطّي فحص مستوى شحن البطارية على الأجهزة غير المزوّدة ببطارية في ميزة "التركيز الفائق" (fe4114، b/232448937)

الإصدار 1.2.0-alpha08

7 كانون الأول (ديسمبر) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha08". يحتوي الإصدار 1.2.0-alpha08 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة واجهات برمجة التطبيقات التجريبية الجديدة PerfettoTrace.record {} وPerfettoTraceRule لتسجيل بيانات تتبُّع Perfetto (المعروفة أيضًا باسم System Traces) كجزء من اختبار، وذلك لفحص سلوك الاختبار وأدائه. (I3ba16)
  • تقبل BaselineProfileRule الآن إسناد فلتر بدلاً من قائمة بادئات الحزمة. وهذا يمنح الاختبار تحكمًا كاملاً في التصفية. (I93240)
  • أضِف واجهة برمجة تطبيقات تجريبية 'BaselineProfileRule.collectStableBaselineProfile' وهي تنتظر حتى يصبح الملف الشخصي الأساسي مستقرًا في عدد N من التكرارات. (I923f3)
  • يمكنك إضافة إمكانية تحديد بادئة اسم الملف الناتج عند إنشاء ملفات شخصية أساسية باستخدام BaselineProfileRule. (I7b59f، b/260318655)

إصلاح الأخطاء

  • تحسين أمان عمليات كتابة إخراج الملفات، ما من شأنه أن يمنع كتابة أو إلحاق ملفات الإخراج تلقائيًا، خاصةً في واجهة برمجة التطبيقات 21/22 (If8c44، b/227510293)
  • عليك إصلاح ناتج تتبُّع simpleperf لإنشاء الملف ووضعه بشكلٍ صحيح. من المفترض أن يؤدي هذا أيضًا بشكل عام إلى إصلاح المشكلات التي لم يتمكن فيها Grale من سحب الملف. (I12a1c، b/259424099)
  • تظهر رسالة خطأ "تحسين أداة تثبيت الملف الشخصي" عندما تكون أداة تثبيت الملفات الشخصية قديمة جدًا. يعني ذلك أنّه عليك الآن تحديث إصدار أداة تثبيت الملفات الشخصية (1.2.1) لقياس الملفات الشخصية الأساسية على الإصدار 31 من واجهة برمجة التطبيقات (API) حتى الإصدار 33، بدلاً من توضيح أنّها غير متاحة. (Ia517f، b/253519888)
  • إصلاح العديد من حالات إخفاق أوامر واجهة برمجة التطبيقات onerror Message [واجهة برمجة التطبيقات المطلوبة] <=23، بما في ذلك إخفاق الأداء الثنائي وإخفاقات التقاط التتبع (Ib6b87, b/258863685)
  • يمكنك ترتيب قواعد الملف الشخصي التي تم إنشاؤها تلقائيًا لتقليل عدد التغييرات التي تتغير بمرور الوقت (عند التحقق من وصول قواعد الملف الشخصي إلى عنصر تحكّم في المصدر). (Ie2509)
  • تم إصلاح عطل في الإصدارات غير المزوّدة بحق الوصول إلى الجذر أسفل Android 13 (واجهة برمجة التطبيقات 33) مع الرسالة Expected no stderr from echo 3 > /proc/sys/vm/drop_caches (I6c245، b/259508183)

المشاكل المعروفة - قد يتعطّل MacrobenchmarkScope.dropShaderCache() بسبب عدم توفّر سجلّ البث في بيان أداة تثبيت الملف الشخصي والذي لم يتم إصداره بعد. (I5c728, b/258619948) لحل المشكلة في profileinstaller:1.3.0-alpha02، أضِف ما يلي إلى ملف AndroidManifest.xml لتطبيقك (وليس الخاص بمقياس الأداء):

  <!-- workaround bug in profileinstaller 1.3.0-alpha02, remove when updating to alpha03+ -->
  <receiver
    android:name="androidx.profileinstaller.ProfileInstallReceiver"
    android:permission="android.permission.DUMP"
    android:exported="true">
    <intent-filter>
        <action android:name="androidx.profileinstaller.action.BENCHMARK_OPERATION" />
    </intent-filter>
  </receiver>

الإصدار 1.2.0-alpha07

تشرين الثاني (نوفمبر) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha07". يحتوي الإصدار 1.2.0-alpha07 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • إضافة واجهة برمجة تطبيقات PowerMetric لقياس الطاقة والقدرة في مقاييس ماكرو. (Ife601، b/220183779)
  • تم إصلاح MacrobenchmarkScope.dropShaderCache() لإسقاط ذاكرة التخزين المؤقت لأداة التظليل. يؤدي هذا الإجراء إلى إزالة 20 ملّي ثانية تقريبًا من التشويش من مقاييس أداء StartupMode.COLD، حيث يتم الآن محو أدوات التظليل باستمرار مع كل تكرار. في السابق، كانت الفيديوهات المجمّعة باستخدام ميزة "Partial" التي تستخدم عمليات الإحماء تُبلغ عن الأرقام السريعة بشكل غير صحيح، إذ كان من المرجّح أن يتم التخزين المؤقت باستخدام أداة التظليل أثناء عملية الإحماء. يتطلّب هذا الإصلاح استخدام جهاز مزوّد بحق الوصول إلى الجذر أو استخدام profileinstaller:1.3.0-alpha02 في التطبيق المستهدَف. للاطّلاع على التغييرات في واجهة برمجة التطبيقات لمكتبة ProfileInstaller، يُرجى الرجوع إلى صفحة ProfileInstaller 1.30-alpha02. (Ia5171، b/231455742)
  • تمت إضافة TraceSectionMode("label", Mode.Sum)، ما يسمح بقياس إجمالي الوقت المستغرَق في أقسام تتبُّع متعددة تحمل التصنيف نفسه. على سبيل المثال، ستبلِّغ TraceSectionMetric("inflate", Mode.Sum) عن المقياس inflateMs لإجمالي الوقت في معيار ماكرو تم إنفاقه على التضخّم. تمت أيضًا إزالة شرط API 29 لأنّ TraceSectionMetric تعمل مع androidx.tracing.Trace مرة أخرى إلى مستويات أدنى من واجهة برمجة التطبيقات باستخدام forceEnableAppTracing داخل التطبيق المستهدَف. (Id7b68، b/231455742)

إصلاح الأخطاء

  • تم تحسين أمان جميع أوامر واجهة المستخدم الداخلية من خلال التحقّق من صحة جميع الإخراج/الأخطاء. (I5984d وb/255402908 وb/253094958)
  • حدِّد الجهاز في أمر الملف الشخصي الأساسي adb pull، بحيث يمكن نسخ أمر السحب في حال توصيل عدة أجهزة (ما يصل إلى محاكي واحد) (I6ac6c وb/223359380).
  • إضافة خطأ إذا لم يتم إعداد APK لاختبار قياس الأداء كأداة ذاتية. يمنع هذا الخطأ قياس الأداء الكلي من داخل عملية التطبيق المستهدف. أثناء العملية، لن يتمكّن Macrobench من تجميع/إنهاء/إيقاف تشغيل التطبيق أو التحكّم في أذوناته الخاصة (I4279b).
  • تم إصلاح مشكلة في measureRepeated() تمنع StartupMode.COLD من إنهاء العملية المستهدفة بعد setupBlock. لن يؤدي تفاعل setupBlock الآن مع التطبيق إلى إبقاء عمليات التطبيق قيد التشغيل، وسيتم إجراء قياس غير صالح للبدء على البارد. (I8ebb7)

الإصدار 1.2.0-alpha06

24 تشرين الأول (أكتوبر) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha06". يحتوي الإصدار 1.2.0-alpha06 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • لم يعُد BaselineProfileRule يتطلّب جذرًا على نظام التشغيل Android 13 (واجهة برمجة التطبيقات 33)، ولم يعُد تجريبيًا. (Ie0a7d وb/250083467 وb/253094958)
    • يعمل هذا التغيير أيضًا على إصلاح كيفية مسح الملفات الشخصية من أحد التطبيقات على القرص في الأجهزة غير المزوّدة بإذن الوصول إلى الجذر، ولكنه يتطلب تحديث تبعية أداة تثبيت الملف الشخصي للتطبيق الهدف.
    • لاستخدام BaselineProfileRule أو CompilationMode.Partial(warmupIterations) على جهاز غير مزوّد بإذن الوصول إلى الجذر، يجب أيضًا تحديث التطبيق المستهدَف لاستخدام androidx.profileinstaller.profileinstaller:1.3.0-alpha01. يتيح ذلك مسح الملف الشخصي إلى القرص بشكل صحيح، بحيث يمكن تجميعه/استخراجه.

إصلاح الأخطاء

  • إصلاح عطل SampledProfiling على الإصدار 33 من واجهة برمجة التطبيقات والإصدارات الأحدث (I40743، b/236109374)

الإصدار 1.2.0-alpha05

5 تشرين الأول (أكتوبر) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha05". يحتوي الإصدار 1.2.0-alpha05 على هذه الالتزامات.

إصلاح الأخطاء

  • إصلاح تفاصيل الإطارات في عارض تتبُّع نظام "استوديو YouTube" للتتبّعات التي تم تسجيلها لمقاييس الأداء (I3f3ae، b/239677443)
  • يجب تصحيح FrameTimingMetric لإدراج FrameOverrun على أنّها تتطلّب الإصدار 31 من واجهة برمجة التطبيقات بدلاً من 29 (I716dd، b/220702554)
  • اضبط التكرار في BaselineProfileRule، وأدخِله بوضوح في حال عدم تثبيت الحزمة المستهدَفة (تم إجراء ذلك من قبل في MacroMetricRule). (Ic09a3، b/227991471)

الإصدار 1.2.0-alpha04

21 أيلول (سبتمبر) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha04". يحتوي الإصدار 1.2.0-alpha04 على هذه الالتزامات.

الميزات الجديدة

  • يمكن إضافة إمكانية استخدام وسيطة قياس استخدام dryRunMode.enable إلى مقياس الأداء الرئيسي (متاح حاليًا باللغة الجزئية) للتطوير المحلي الأسرع والتحقّق من صحة التشغيل الآلي للتطبيقات (على سبيل المثال، في الإرسال المُسبَق). يؤدي هذا إلى إلغاء التكرارات إلى 1 وتخطّي التحويل البرمجي وإيقاف جميع أخطاء الضبط وإيقاف إخراج ملف json .للقياس. (Ib51b4، b/175149857)

    في سطر أوامر Gradle:

    ./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.dryRunMode.enable=true
    

    في Build.gradle:

    android {
        defaultConfig {
            testInstrumentationRunnerArgument 'androidx.benchmark.dryRunMode.enable', 'true'
        }
    }
    

إصلاح الأخطاء

  • تم إصلاح StartupTimingMetric بحيث لم يعُد مطلوبًا إطلاق الأنشطة التي تم قياسها من خلال MacrobenchmarkScope.startActivityAndWait(). وهذا يعني أن المقياس يمكنه اختيار عمليات الإطلاق من خلال الإشعارات، على سبيل المثال، الإشعارات أو Context.startActivity() أو التنقّل المستند إلى النشاط داخل التطبيق أو أوامر التطبيق. (Ia2de6، b/245414235)
  • إصلاح الخطأ الذي كان يقضي مهلة startActivityAndWait لانتظار اكتمال عملية الإطلاق على أدوات المحاكاة وذلك عن طريق تقليل مستوى التشدّد في رصد الإطارات (Ibe2c6، b/244594339، b/228946895)

الإصدار 1.2.0-alpha03

7 أيلول (سبتمبر) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha03". يحتوي الإصدار 1.2.0-alpha03 على هذه الالتزامات.

الميزات الجديدة

  • تمت إضافة واجهات برمجة تطبيقات تجريبية لاستخدام BenchmarkState بشكل مستقل، وبشكل منفصل عن BenchmarkRule / JUnit4. (Id478f، b/228489614)

إصلاح الأخطاء

  • تمت إضافة عنصر احتياطي Leanback لـ startActivityAndWait. (01ed77، b/242899915)

الإصدار 1.2.0-alpha02

24 آب (أغسطس) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha02". يحتوي الإصدار 1.2.0-alpha02 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • ضبط القيمة التلقائية على am force stop في MacrobenchmarkScope.killProcess()، حتى في حال استخدام الجذر، باستثناء أثناء إنشاء الملف الشخصي الأساسي يمكن إلغاء هذا بوسيطة منطقية اختيارية. (02cce9، b/241214097)

إصلاح الأخطاء

  • إتاحة إنشاء الملفات الشخصية الأساسية لتطبيقات النظام (I900b8، b/241214097)
  • إمكانية التحقّق من مقاييس طاقة ODPM على الأجهزة غير المزوّدة بحق الوصول إلى الجذر (a38c78، b/229623230)

الإصدار 1.2.0-alpha01

27 تموز (يوليو) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.2.0-alpha01". يحتوي الإصدار 1.2.0-alpha01 على هذه الالتزامات.

الميزات الجديدة

  • مكوِّن جديد tracking-perfetto-common يسمح بأدوات تفعيل التتبّع في حزمة Perfetto SDK في أحد التطبيقات التي يعرضها (I2cc7f)
  • تمت إضافة وسيطة قياس الأداء androidx.benchmark.enabledRules لتفعيل فلترة عمليات تشغيل مقاييس الأداء الكبيرة إلى مقاييس الأداء فقط أو إنشاء الملف الشخصي المرجعي فقط. عليك اجتياز "مقياس الأداء الرئيسي" أو "BaselineProfile" لإجراء نوع واحد من الاختبارات فقط، على سبيل المثال عند إنشاء BaselineProfiles على محاكي. قائمة مفصولة بفواصل متوافقة أيضًا. (I756b7، b/230371561)

    على سبيل المثال، في Build.gradle مقياس Macroبول:

    android {
        defaultConfig {
            testInstrumentationRunnerArgument 'androidx.benchmark.enabledRules', 'BaselineProfile'
        }
    }
    

    أو من سطر أوامر Gradle:

    ./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
    

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة PowerMetric جديدة لقياس مهام الطاقة والطاقة في مقاييس الأداء. (I9f39b، b/220183779)
  • تمت إضافة وضع التحويل البرمجي الجديد CompilationMode.Ignore لتخطي إعادة ضبط الملف الشخصي والتحويل. (Ibbcf8 ، b/230453509)
  • تمت إضافة مَعلمة جديدة إلى BaselineProfileRule#collectBaselineProfile لفلترة ملف الإخراج حسب أسماء الحِزم (If7338 وb/220146561).
  • تمكّن المطوّر من تفريغ شحن الجهاز لقياس استنزاف الطاقة. (I6a6cb)
  • تمت إضافة إمكانية محو ذاكرة التخزين المؤقت لأداة التظليل في MacrobenchmarkScope. (I32122)
  • تسمح هذه الميزة للمطوّر بضبط عرض نوع المقياس وتفاصيل فئات النظام الفرعي المطلوبة. (I810c9)
  • كان مقياس UnsupportedOperationException مضافًا في السابق إلى المعيار إذا تم تشغيله على جهاز غير متوافق. الآن لا يتم عرض UOE إلا في حال استخدام المقياس على جهاز غير متوافق (مثل PowerMetric.configure). (I5cf20 وb/227229375)
  • تمت إضافة السمتَين TotalPowerMetric وTotalEnergyMetric لقياس إجمالي الطاقة والطاقة في كل فئة نظام في مقاييس الأداء الكبرى. (I3b26b، b/224557371)

إصلاح الأخطاء

  • تم إصلاح المشكلة المتمثلة في عدم إعادة ضبط الطرق المجمّعة بشكل صحيح بين كل مقياس أداء كبير في الإصدارات غير الجذر. يتطلب هذا للأسف إعادة تثبيت ملف AP في كل تكرار، مما سيؤدي إلى محو بيانات التطبيق لكل مقياس ماكرو. (I31c74، b/230665435)
  • إصلاح تعطُّل تسجيل التتبُّع على 21/22 من واجهة برمجة التطبيقات (If7fd6، وb/227509388، وb/227510293، وb/227512788)
  • رصد اكتمال إطلاق نشاط الفحص الكامل لإصلاح استثناء "تتعذّر قراءة أي مقاييس" في مقاييس الأداء الكلية لبدء التشغيل. (Ia517c)

الإصدار 1.1.1

الإصدار 1.1.1

تشرين الثاني (نوفمبر) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.1.1". يحتوي الإصدار 1.1.1 على هذه الالتزامات.

إصلاح الأخطاء

  • إصلاح الخطأ android.system.ErrnoException: open failed: EACCES الذي يحدث على بعض أجهزة Android11 (واجهة برمجة التطبيقات 30) والإصدارات الأحدث إليك بعض الحلّ الذي يوفّره "1.2.0-alpha01". (aosp/2072249)

الإصدار 1.1.0

الإصدار 1.1.0

15 حزيران (يونيو) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0". يحتوي الإصدار 1.1.0 على هذه الالتزامات.

  • هذا الإصدار مماثل للإصدار androidx.benchmark:benchmark-*:1.1.0-rc03.

تغييرات مهمة منذ الإصدار 1.0.0

الإصدار 1.1.0-rc03

1 حزيران (يونيو) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-rc03". يحتوي الإصدار 1.1.0-rc03 على هذه الالتزامات.

إصلاح الأخطاء

  • تجنَّب إعادة تثبيت الحزمة الهدف في كل تكرار لمعيار الأداء. ( aosp/2093027، b/231976084)

  • عليك إزالة التأخير لمدة 300ms من pressHome(). (aosp/2086030، b/231322975)

  • يمكنك تحسين سرعة التكرار في مقياس ماكرو من خلال تحسين أوامر Shell المستخدمة بشكل غير مرئي. (aosp/2086023، b/231323582)

  • إتاحة أجهزة Gradle المُدارة عند إنشاء الملفات الشخصية الأساسية باستخدام مقاييس الأداء الكلية (aosp/2062228، b/228926421)

الإصدار 1.1.0-rc02

11 أيار (مايو) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-rc02". يحتوي الإصدار 1.1.0-rc02 على هذه الالتزامات.

  • يُرجى العِلم أنّ هذا الإصدار يتضمّن تغييرًا في السلوك، لأنّه تتم الآن إعادة تثبيت التطبيقات بالكامل بين كل مقياس أداء لضمان إجراء قياسات دقيقة.

إصلاح الأخطاء/تغييرات السلوك

  • تم إصلاح المشكلة المتمثلة في عدم إعادة ضبط تجميع التطبيقات بشكل صحيح بين مقاييس الأداء الكبرى، وعدم إعادة ضبطه على الإطلاق في الإصدارات غير الجذر. يؤدي ذلك إلى إصلاح العديد من الحالات التي قد يؤدي فيها إجراء عدة اختبارات إلى عدم تأثير CompilationMode في القياسات أو قد لا يؤثر إطلاقًا. لحل هذه المشكلة، تتم الآن إعادة تثبيت التطبيق المستهدف بالكامل لكل طريقة اختبار، ما سيؤدي إلى محو بيانات التطبيق بين كل مقياس لمقاييس الأداء الكبرى. (I31c74، b/230665435)

  • ونظرًا لأن ذلك يمنع التطبيقات من إعداد الحالة قبل الاختبارات، فمن الممكن الآن تخطي التحويل البرمجي / إعادة التثبيت لتفعيل التغلب على هذه المشكلة. يمكنك على سبيل المثال تجميع الهدف بالكامل باستخدام أمر واجهة أوامر cmd package compile -f -m speed <package>، ثم تجاوز خطوة التجميع الخاصة بمقياس ماكرو.

    على سبيل المثال، في Build.gradle مقياس Macroبول:

    android {
        defaultConfig {
            testInstrumentationRunnerArgument 'androidx.benchmark.compilation.enabled, 'false'
        }
    }
    

    أو من سطر أوامر Gradle:

    ./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.compilation.enabled=false
    
  • تم إتاحة مشاركة وحدة بين مقاييس الأداء الكلية واختبارات إنشاء الملف الشخصي الأساسي عن طريق إضافة وسيطة قياس الأداء androidx.benchmark.enabledRules. عليك اجتياز "مقياس الأداء الرئيسي" أو "BaselineProfile" لإجراء نوع واحد من الاختبارات، على سبيل المثال عند إنشاء BaselineProfiles على محاكي. (I756b7، b/230371561)

    على سبيل المثال، في Build.gradle مقياس Macroبول:

    android {
        defaultConfig {
            testInstrumentationRunnerArgument 'androidx.benchmark.enabledRules', 'BaselineProfile'
        }
    }
    

    أو من سطر أوامر Gradle:

    ./gradlew macrobenchmark:cC -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
    

الإصدار 1.1.0-rc01

20 نيسان (أبريل) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-rc01". يحتوي الإصدار 1.1.0-rc01 على هذه الالتزامات.

إصلاح الأخطاء

  • تستخدم روابط إخراج الملف الشخصي الأساسية في "استوديو Android" الآن اسم ملف فريدًا. بهذه الطريقة، تعكس النتيجة دائمًا أحدث نتائج استخدام BaselineProfileRule. ( aosp/2057008، b/228203086 )

الإصدار 1.1.0-beta06

6 نيسان (أبريل) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-beta06". يتضمّن الإصدار 1.1.0-beta06 هذه الالتزامات.

إصلاح الأخطاء

  • إصلاح تعطُّل تسجيل التتبُّع على الإصدار 21/22 من واجهة برمجة التطبيقات (If7fd6 ، b/227509388)
  • رصد اكتمال إطلاق نشاط الفحص الكامل لإصلاح استثناء "تتعذّر قراءة أي مقاييس" في مقاييس الأداء الكلية لبدء التشغيل. (Ia517c)
  • إصلاح مقاييس بدء التشغيل في مقاييس ماكرو عند استخدام CompilationMode.None(). قبل هذا التغيير، كانت مدة CompilationMode.Partial() تبدو أبطأ من Compilation.None(). (611ac9).

الإصدار 1.1.0-beta05

23 آذار (مارس) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-beta05". يحتوي الإصدار 1.1.0-beta05 على هذه الالتزامات.

إصلاح الأخطاء

  • إنهاء الحزمة بعد تخطي تثبيت الملف الشخصي عند استخدام CompilationMode.None. (aosp/1991373)
  • تم إصلاح المشكلة المتمثلة في عدم تمكّن "مقاييس ماكرو" من جمع مقاييس بدء التشغيل عند استخدام StartupMode.COLD. (aosp/2012227 b/218668335)

الإصدار 1.1.0-beta04

23 شباط (فبراير) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-beta04". يتضمّن الإصدار 1.1.0-beta04 هذه الالتزامات.

إصلاح الأخطاء

  • أصلِح المقاييس غير المتوفّرة على الإصدار 10 من نظام التشغيل Android وNoSuchElementException بسبب عدم تسجيل أسماء العمليات بشكل صحيح في بيانات التتبُّع. (Ib4c17، b/218668335)

  • يمكنك استخدام "PowerManager" لرصد التقييد الحراري على Q (API 29) والإصدارات الأحدث. وهذا يحد بشكل كبير من تكرار الحالات الإيجابية الخاطئة في كشف التقييد الحراري (إعادة محاولة قياس الأداء بعد 90 ثانية من فترة التوقف)، بالإضافة إلى تسريع المعايير بشكل كبير على إصدارات المستخدمين. ويوفّر أيضًا ميزة "رصد التقييد" حتى في حال قفل الساعات (في حال قفلها بدرجة عالية جدًا بالنسبة إلى البيئة المادية للجهاز). (I9c027 وb/217497678 وb/131755853)

  • يمكنك فلترة عيّنة من عيّنة من ملف تعريف الموقع البسيط إلى سلسلة محادثات measureRepeated فقط لتبسيط عملية الفحص (Ic3e12، b/217501939)

  • مقاييس التوافق من العمليات الفرعية لواجهة المستخدم المحدّدة في التطبيقات المتعددة العمليات (Ice6c0، b/215988434)

  • يمكنك فلترة قواعد الملف الشخصي الأساسي لاستهداف Android 9 (حزمة تطوير البرامج (SDK) 28). aosp/1980331 b/216508418

  • تخطّي تثبيت الملف الشخصي عند استخدام Compilation.None() بالإضافة إلى ذلك، يمكنك الإبلاغ عن التحذيرات عندما يستخدم التطبيق إصدارًا قديمًا من androidx.profileinstaller ومكوِّن Gradle الإضافي لنظام التشغيل Android. aosp/1977029

الإصدار 1.1.0-beta03

9 شباط (فبراير) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-beta03". يتضمّن الإصدار 1.1.0-beta03 هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة AudioUnderrunMetric إلى مكتبة مقاييس الأداء الكبيرة ضمن علامة تجريبية للسماح برصد حالات الانخفاض في مستوى الصوت (Ib5972).
  • لم يعُد يقبل BaselineProfileRule مجموعة setup لأنّ هذه الدالة كانت تعمل تمامًا مثل profileBlock. (Ic7dfe، b/215536447)

    على سبيل المثال:

    @Test
    fun collectBaselineProfile() {
        baselineRule.collectBaselineProfile(
            packageName = PACKAGE_NAME,
            setupBlock = {
                startActivityAndWait()
            },
            profileBlock = {
                // ...
            }
        )
    }
    
    @Test
    fun collectBaselineProfile() {
        baselineRule.collectBaselineProfile(
            packageName = PACKAGE_NAME,
            profileBlock = {
                startActivityAndWait()
                // ...
            }
        )
    }
    

إصلاح الأخطاء

  • تم إصلاح المشكلة التي تؤدي إلى تعذُّر تحديث عمليات تتبُّع محلّل المنضدة الصغيرة في عمليات التشغيل اللاحقة عند الربط في مخرجات استوديو (I5ae4d، b/214917025)
  • منع أوامر إلغاء التجميع على واجهة برمجة التطبيقات 23 (Ice380)
  • تمت إعادة تسمية FrameCpuTime -> FrameDurationCpu، FrameUiTime -> FrameDurationUi لتوضيح هذه المدة هي المدد وليس الطوابع الزمنية، ولمطابقة البادئات. (I0eba3، b/216337830)

الإصدار 1.1.0-beta02

26 كانون الثاني (يناير) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-beta02". يحتوي الإصدار 1.1.0-beta02 على هذه الالتزامات.

إصلاح الأخطاء

  • أصبحت نتائج عيّنة تسلسل استدعاء الدوال البرمجية / الملف الشخصي لتتبّع الطرق محدّدة الآن مرتبطة بمخرجات "استوديو YouTube" على غرار نتائج تحديد المواصفات الأخرى، ولا يتم إيقاف مقياس التخصيص. (Idcb65 وb/214440748 وb/214253245)
  • تطبع BaselineProfileRule الآن الأمر adb pull في Logcat ومخرجات Studio لسحب الملف النصي BaselineProfile الذي تم إنشاؤه. (f08811)

الإصدار 1.1.0-beta01

12 كانون الثاني (يناير) 2022

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-beta01". يحتوي الإصدار 1.1.0-beta01 على هذه الالتزامات.

إصلاح الأخطاء

  • يعمل على إصلاح تجاهل تفعيل وسيطة المحلِّل. (I37373، b/210619998)
  • تمت إزالة خدمة CompliationModes المتوقفة نهائيًا (I98186، b/213467659)
  • تم تبديل وسيطة الملف الشخصي الأساسية لـ CompilationMode.Partial إلى التعداد من أجل الوضوح. (Id67ea)

الإصدار 1.1.0-alpha13

15 كانون الأول (ديسمبر) 2021

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-alpha13". يحتوي الإصدار 1.1.0-alpha13 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • يمكنك إضافة ميزة "تتبُّع النظام" المنخفض التكلفة إلى مخرجات الأجهزة الصغيرة في Android Q (واجهة برمجة التطبيقات 29 والإصدارات الأحدث). يُرجى ملاحظة أنّ هذا الإجراء لا يلتقط حاليًا تتبُّعًا مخصَّصًا (عبر واجهات برمجة تطبيقات Jetpack android.os.Trace أو androidx.tracing) لتجنُّب التأثير في النتائج. من المفترض أن يكون هذا التتبع مفيدًا في تشخيص عدم الثبات، خصوصًا من مصادر خارج المعيار. (I298be وb/205636583 وb/145598917)
  • عليك توضيح CompilationModes إلى ثلاث فئات: "كاملة" و"بدون" و"جزئية". في السابق، كانت أسماؤها غير متناسقة بعد وسيطات التجميعات (التي نتعامل معها الآن كتفاصيل تنفيذ) والميزات. وهذا يجعل المفاضلات والتركيبات المحتملة والسلوك عبر إصدارات النظام الأساسي أكثر وضوحًا. (I3d7bf، b/207132597)
  • دائمًا ما يكون الإعداد والقياس في أزواج بالترتيب. يمكنك الآن الاستعلام عن اسم الحزمة والتكرار التحسيني (على الرغم من أنّ التكرار قد يكون null في بعض سيناريوهات عملية التحضير). (Id3b68 وb/208357448 وb/208369635)

إصلاح الأخطاء

  • تم إصلاح الخطأ CompilationMode.Speed بشكلٍ غير صحيح على أنه None (I01137)

الإصدار 1.1.0-alpha12

17 تشرين الثاني (نوفمبر) 2021

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-alpha12". يحتوي الإصدار 1.1.0-alpha12 على هذه الالتزامات.

الميزات الجديدة

  • يمكنك إضافة TracesectionMetric التجريبية لقياسات التوقيت المخصصة المستندة إلى التتبع. (I99db1، b/204572664)

إصلاح الأخطاء

  • تنبيه الجهاز في كل تكرار، لضمان إمكانية اختبار واجهة المستخدم - يتطلب إيقاف شاشة القفل. (Ibfa28، b/180963442)
  • إصلاح الأعطال المتعددة في وضع تحليل عيّنات StackSampling على المحاكيات والأجهزة غير المزوّدة بإذن الوصول إلى الجذر (Icdbda، b/202719335)
  • تمت إزالة النوم بمدّة 0.5 ثانية في نهاية كل تكرار - إذا لاحظت مقاييس مفقودة مع هذا التغيير، يُرجى الإبلاغ عن الخطأ. (Iff6aa)
  • تقليل فرص إسقاط البيانات وخفض مقدار التحميل الزائد للذاكرة أثناء التتبع (Id2544، b/199324831، b/204448861)
  • يمكنك تقليل حجم بيانات التتبُّع بنسبة% 40 تقريبًا عن طريق التبديل إلى تنسيق التخزين المُنظَّم. (Id5fb6, b/199324831)
  • تم تحديث عمليات التنفيذ لمقاييس بدء التشغيل لتنتهي دائمًا في نهاية Renderthread. وسيكون هذا أكثر اتساقًا عبر إصدارات النظام الأساسي، وسيتم ربطه بشكل وثيق بالقياسات داخل التطبيق. (Ic6b55)

الإصدار 1.1.0-alpha11

3 تشرين الثاني (نوفمبر) 2021

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-alpha11". يحتوي الإصدار 1.1.0-alpha11 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • يشمل مقياس الأداء الكلي الآن minSdkVersion من 23. (If2655)
  • يؤدي هذا الخيار إلى إضافة BaselineProfileRule تجريبي جديد يمكنه إنشاء ملفات شخصية مرجعية لتجربة المستخدم الأساسية للتطبيق. وثائق مفصلة يجب اتباعها. (Ibbefa، b/203692160)
  • تُزيل متغير الواجهة المتكررة، الذي تمت إضافته للمتصلين في جافا، لأنها تسببت في غموض في إكمال/حل الطريقة. سيحتاج المتصلون بلغة Java مرة أخرى إلى إرجاع Unit.Instance from measureDuplicateed. إذا كان ذلك يزعجك، يرجى الإبلاغ عن الخطأ، ويمكننا إعادة النظر في ذلك في إصدار مستقبلي. (Ifb23e، b/204331495)

الإصدار 1.1.0-alpha10

27 تشرين الأول (أكتوبر) 2021

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-alpha10". يحتوي الإصدار 1.1.0-alpha10 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • Backport StartuptimeMetric للعمل مرة أخرى مع واجهة برمجة التطبيقات 23 كذلك، يعالج هذا التنفيذ الجديد (reportFullyDrawn()) بشكل أفضل للانتظار حتى يتم عرض المحتوى المقابل. (If3ac9، b/183129298)
  • تمت إضافة JvmOverloads إلى طرق متعددة لـ MacroMetricScope لمتصلي Java. (I644fe، b/184546459)
  • توفير دالة MacrocriterionRequest.measureDuplicateed التي تستخدم Consumer<MacrobenchmarkScope> للاستخدام الاصطلاحي في لغة Java. (If74ab، b/184546459)

إصلاح الأخطاء

  • إصلاح آثار الأنشطة التي لا تبدأ في وقت مبكر بما فيه الكفاية وعدم توفّر بيانات المقياس ومن المتوقّع أن يؤدي ذلك إلى إصلاح استثناءات "تعذُّر قراءة أي مقاييس أثناء مقياس الأداء" التي حدثت بسبب المكتبة نفسها. (I6dfcb وb/193827052 وb/200302931)
  • تمت إعادة تسمية FrameSpamSlack ليصبح FrameOverrun لتوضيح معناه؛ أي مقدار تجاوز الإطار لميزانيته الزمنية. (I6c2aa، b/203008701)

الإصدار 1.1.0-alpha09

13 تشرين الأول (أكتوبر) 2021

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-alpha09". يحتوي الإصدار 1.1.0-alpha09 على هذه الالتزامات.

إصلاح الأخطاء

  • دعم إسقاط ذاكرة التخزين المؤقت لصفحة Kernel بدون جذر على واجهة برمجة التطبيقات 31/S+ ، ما سيؤدي إلى زيادة دقة عمليات إطلاق StartupMode.COLD. (Iecfdb، b/200160030)

الإصدار 1.1.0-alpha08

29 أيلول (سبتمبر) 2021

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-alpha08". يحتوي الإصدار 1.1.0-alpha08 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تفعيل التمرير السريع لمقاييس الأداء العامة لإتاحة إعادة تشغيل الإصدار 23 من واجهة برمجة التطبيقات API 23 (If39c2 وb/183129298)
  • يمكنك إضافة نوع جديد من المقاييس المستندة إلى عينات إلى مخرجات واجهة المستخدم وJSON، مع التركيز على الشرائح المئوية لنماذج متعددة لكل تكرار. (I56247، b/199940612)
  • يمكنك التبديل إلى مقاييس النقطة العائمة في مختلف المكتبات المرجعية (التي يتم اقتطاعها في واجهة مستخدم تطبيق "استوديو"). (I69249، b/197008210)

الإصدار 1.1.0-alpha07

1 أيلول (سبتمبر) 2021

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-alpha07". يحتوي الإصدار 1.1.0-alpha07 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تم رفع الحد الأدنى لواجهة برمجة التطبيقات إلى 21 ليعكس المستوى الأدنى المطلوب لواجهة برمجة التطبيقات المطلوب توفيره في المستقبل. ما زال من الممكن نقل الحد الأدنى الحالي لواجهة برمجة التطبيقات المتوافقة من خلال requestedApi()، وهو حاليًا 29 (I440d6، b/183129298)

إصلاح الأخطاء

  • يعمل على إصلاح ProfileInstaller لتسهيل تشغيل مقاييس الأداء الفائقة على التطبيقات التي تستخدم الملفات الشخصية الأساسية باستخدام CompilationMode.BaselineProfile. (I42657، b/196074999) ملاحظة: يتطلب التحديث أيضًا إلى الإصدار androidx.profileinstaller:profileinstaller:1.1.0-alpha04 أو إصدار أحدث.
  • مقاييس أداء StartupMode.COLD + CompilationMode.None أكثر استقرارًا الآن. (I770cd، b/196074999)

الإصدار 1.1.0-alpha06

18 آب (أغسطس) 2021

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-alpha06". يحتوي الإصدار 1.1.0-alpha06 على هذه الالتزامات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة وسيطة قياس الأداء androidx.benchmark.iterations للسماح بتجاوز عدد التكرارات يدويًا عند الاختبار/إنشاء الملفات التعريفية محليًا. (6188be، b/194137879)

إصلاح الأخطاء

  • تم التبديل إلى Simpleperf كمحلّل تلقائي لأخذ العينات على الإصدار 29 من واجهة برمجة التطبيقات أو الإصدارات الأحدث (Ic4b34 ، b/158303822).

المشاكل المعروفة

  • لا يزال تطبيق "CompilationMode.BaselineProfile" قيد التطوير. تجنب استخدامه لتحديد مدى جودة الملف الشخصي في الوقت الحالي.

الإصدار 1.1.0-alpha05

4 آب (أغسطس) 2021

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-alpha05". يحتوي الإصدار 1.1.0-alpha05 على هذه الالتزامات.

تم إلغاء 1.1.0-alpha04 قبل الإصدار بسبب حدوث عطل مفاجئ. b/193827052

تغييرات واجهة برمجة التطبيقات

  • تم تبديل startActivityAndWayH لاستدعاء الإطلاق عبر am start، ما يقلّل زمن وقت كل تكرار للقياس بحوالي 5 ثوانٍ، على نفقة عدم دعم الأجزاء المرتبطة بالنية بعد ذلك. (I5a6f5، b/192009149

إصلاح الأخطاء

  • قلل من شدة رصد الخانق الحراري، وأعِد حساب خط الأساس في حال رصد انبعاثات للغازات بشكل متكرر. (I7327b)
  • إصلاح FrameTimingMetric للعمل على الإصدار التجريبي من Android S (Ib60cc، b/193260119)
  • يمكنك استخدام EmptyActivity للخروج من حالة "فرض الإيقاف" للتطبيق المستهدَف من أجل التوافق مع CompilationMode.BaselineProfile بشكل أفضل. (Id7cac, b/192084204)
  • تم تغيير امتداد ملف التتبُّع إلى .perfetto-trace ليتطابق مع معيار النظام الأساسي. (I4c236، b/174663039)
  • تتيح لك ميزة StartupTimingMetric الآن عرض المقياس " fullDrawnMs" لقياس الوقت حتى اكتمال عرض تطبيقك. لتحديد هذا المقياس لتطبيقك، يمكنك استدعاء Activity.reportFullyDrawn عندما يكون المحتوى الأولي جاهزًا، مثلًا عندما يتم تحميل عناصر القائمة الأولية من قاعدة البيانات أو الشبكة. (تتوفر طريقةreportFullyDrawn بدون عمليات التحقق من إصدار الإصدار في ComponentActivity). تجدر الإشارة إلى أنّه يجب تنفيذ الاختبار لفترة كافية لتسجيل المقياس (لا ينتظر startActivityAndWaHt الانتباه إلى reportFullyDrawn). (If1141، b/179176560)
  • تقليل تكلفة إلحاق البيانات الوصفية لواجهة المستخدم Ii بأحداث التتبع التي تزيد عن 50 مللي ثانية (Ic8390، b/193923003)
  • زيادة معدّلة الاقتراع بشكل كبير عند إيقاف التتبّع، ما قد يقلّل مثلاً من وقت تشغيل مقياس أداء الشركات الناشئة بنسبة أكثر من %30 (Idfbc1، b/193723768)

الإصدار 1.1.0-alpha03

16 حزيران (يونيو) 2021

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-alpha03". يحتوي الإصدار 1.1.0-alpha03 على هذه الالتزامات.

الميزات الجديدة

إصلاح الأخطاء

  • تم تعديل نموذج رمز Gradle المستخدم لمنع أخطاء قياس الأداء من أجل استخدام واجهة برمجة تطبيقات غير متوقّفة ذات بنية تتوافق أيضًا مع مستخدمي ملف Gradle.kts.

    مثال:

    testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR,LOW-BATTERY"
    

الإصدار 1.1.0-alpha02

18 أيار (مايو) 2021

يوفّر الإصدار 1.1.0-alpha02 من مقياس الأداء عنصرًا كبيرًا لقياس الأداء - وهو مقياس ماكرو. بالإضافة إلى مقياس الأداء الذي يسمح لك بقياس حلقات وحدة المعالجة المركزية (CPU)، تسمح لك مقياس الأداء الرئيسي بقياس تفاعلات التطبيق بالكامل، مثل بدء التشغيل والتمرير، وتسجيل عمليات تتبُّع البيانات. لمزيد من المعلومات، راجِع مستندات المكتبة.

تم إطلاق "androidx.benchmark:benchmark-*:1.1.0-alpha02". يحتوي الإصدار 1.1.0-alpha02 على هذه الالتزامات.

الميزات الجديدة

تمت إضافة عناصر مقياس الأداء الكلي (androidx.benchmark:benchmark-macro-junit4 وandroidx.benchmark:benchmark-macro)

  • الحصول على مقاييس أداء بدء التشغيل والتمرير/الرسوم المتحركة من تطبيقك، محليًا أو في CI
  • تسجيل آثار التتبُّع وفحصها من داخل "استوديو Android"

إصلاح الأخطاء

  • مشكلة في أذونات واجهة برمجة التطبيقات مع دليل الإخراج على نظام التشغيل Android 12 (ملاحظة: قد يتطلّب ذلك تحديث مكوّن Android Gradle الإضافي إلى إصدار Canary بإصدار 7.0.0، ومن Android Studio إلى Arctic Fox (2020.3.1) لمواصلة تسجيل ملفات الإخراج على الأجهزة المتأثرة). (Icb039)
  • التخزين المؤقت لإعدادات الدعم في مقياس الأداء الإضافي (6be1c1، b/159804788)
  • إخراج ملف مبسّط: يكون هذا الإعداد مفعّلاً تلقائيًا في دليل لا يتطلب requestLegacyExternalStorage=true (8b5a4d، b/172376362)
  • تُصلح تحذيرات Logcat لعلامتها في طباعة المكتبة بشأن عدم العثور على سلسلة محادثات JIT في إصدارات النظام الأساسي التي لا تتوفّر فيها. (I9cc63، b/161847393)
  • حل مشكلة الحد الأقصى لمعدل تكرار جهاز القراءة (I55c7a)

الإصدار 1.1.0-alpha01

10 حزيران (يونيو) 2020

تم إصدار androidx.benchmark:benchmark-common:1.1.0-alpha01 وandroidx.benchmark:benchmark-gradle-plugin:1.1.0-alpha01 وandroidx.benchmark:benchmark-junit4:1.1.0-alpha01. يحتوي الإصدار 1.1.0-alpha01 على هذه الالتزامات.

الميزات الجديدة للإصدار 1.1

  • مقياس التخصيص: تعمل مقاييس الأداء الآن على مرحلة إضافية بعد مرحلة الإحماء والتوقيت، حيث تسجّل أعداد عمليات التخصيص. يمكن أن تتسبب عمليات التخصيص في حدوث مشاكل في الأداء في الإصدارات القديمة من النظام الأساسي (أصبح 140 ناقصًا في O في O - تم قياسها على Nexus5X مع الساعات المقفلة). يتم عرض هذا المقياس في إخراج وحدة تحكّم "استوديو Android"، وكذلك في
  • دعم تحديد المواصفات: يمكنك الآن الحصول على بيانات إنشاء الملفات التعريفية من أجل تشغيل مقياس أداء لمعرفة سبب بطء تشغيل الرمز. يتيح قياس الأداء تسجيل تتبُّع الطريق أو أخذ عينات من الأساليب من أداة ART. يمكن فحص هذه الملفات باستخدام "المحلِّل" داخل "استوديو Android" من خلال ملف > فتح.
  • يوفّر المكوّن الإضافي لنظام Gradle الإضافي الآن إعدادات تلقائية لإجراء عملية إعداد أكثر بساطة:
    • تم ضبط تطبيق "testBuildType" على إصدار التطبيق تلقائيًا لتجنُّب استخدام البرامج الاعتمادية التي تتضمّن تغطية الرموز البرمجية. يتم أيضًا ضبط سمة BuildType إلى نموذج الإصدار التلقائي، ما يتيح لاستوديو Android تحديد خيار الإصدار الصحيح تلقائيًا عند فتح مشروع لأول مرة. (b/138808399)
    • يتم استخدام signingConfig.debug كإعداد التوقيع التلقائي (b/153583269).

** إصلاح الأخطاء **

  • تم خفض النفقات العامة لعملية الانتقال الإحمي بشكل كبير، حيث كان القياس الأول لكل مقياس أداء أعلى بشكل مصطنع من المقاييس الأخرى. ظهرت هذه المشكلة بشكل أكبر في مقاييس أداء صغيرة جدًا (1 ميكرو ثانية أو أقل). (b/142058671)
  • تم إصلاح خطأ واحد (InstrumentationResultParser) مطبوع لكل مقياس أداء عند تشغيله من سطر الأوامر. (I64988، b/154248456)

المشاكل المعروفة

  • سطر الأوامر، لا تطبع استدعاءات Gradle المرجعية للنتائج مباشرة. يمكنك إيجاد حل لهذه المشكلة عن طريق تشغيل "استوديو YouTube" أو تحليل ملف إخراج JSON للحصول على النتائج.
  • يتعذّر على إعداد تقارير قياس الأداء سحب التقرير من الأجهزة التي تحتوي على تطبيق مثبَّت عليه رقم appId ينتهي بـ "android" أو "download" (غير حساس لحالة الأحرف). على المستخدمين الذين يواجهون هذه المشكلة ترقية مكوّن Gradle الإضافي لنظام التشغيل Android إلى الإصدار 4.2-alpha01 أو الإصدارات الأحدث.

الإصدار 1.0.0

الإصدار 1.0.0 المعياري

20 تشرين الثاني (نوفمبر) 2019

تم إصدار androidx.benchmark:benchmark-common:1.0.0 وandroidx.benchmark:benchmark-gradle-plugin:1.0.0 وandroidx.benchmark:benchmark-junit4:1.0.0 بدون أي تغييرات من 1.0.0-rc01. يحتوي الإصدار 1.0.0 على هذه الالتزامات.

الميزات الرئيسية للإصدار 1.0.0

تتيح لك "مكتبة مقاييس الأداء" كتابة مقاييس أداء رمز التطبيق والحصول على النتائج بسرعة.

كما أنّه يمنع المشاكل المتعلّقة بالإنشاء ووقت التشغيل، ويعمل على تثبيت أداء الجهاز لضمان دقة القياسات ومطابقتها. ويمكنك تشغيل المقاييس مباشرةً في "استوديو Android" أو في الدمج المستمر لملاحظة أداء الرموز البرمجية بمرور الوقت ولمنع أي تراجع.

وتشمل الميزات الرئيسية ما يلي:

  • تثبيت الساعة
  • تحديد الأولويات تلقائيًا لسلاسل المحادثات
  • إتاحة اختبار أداء واجهة المستخدم، كما في نموذج RecyclerView
  • ميزة "الإحماء" و"التكرار" استنادًا إلى تقنية JIT
  • ناتج مقياس أداء JSON لمرحلة ما بعد المعالجة

الإصدار 1.0.0-rc01

23 تشرين الأول (أكتوبر) 2019

تم إصدار androidx.benchmark:benchmark-common:1.0.0-rc01 وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-rc01 وandroidx.benchmark:benchmark-junit4:1.0.0-rc01. يحتوي الإصدار 1.0.0-rc01 على هذه الالتزامات.

الميزات الجديدة

  • تمت إضافة تتبُّع النظام إلى مقاييس الأداء.

إصلاح الأخطاء

  • تم إصلاح مشكلة عدم ثبات المقاييس حيث لا ينتهي التجميع أثناء التحضير قبل الإحماء بسبب تقليل الأولوية (b/140773023).
  • دليل إخراج JSON موحّد على الإصدارين 3.5 و3.6 من مكوّن Gradle الإضافي لنظامَي التشغيل Android

الإصدار 1.0.0-beta01

9 تشرين الأول (أكتوبر) 2019

تم إصدار androidx.benchmark:benchmark-common:1.0.0-beta01 وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-beta01 وandroidx.benchmark:benchmark-junit4:1.0.0-beta01. يحتوي الإصدار 1.0.0-beta01 على هذه الالتزامات.

الميزات الجديدة

  • تنفيذ عملية جمع البيانات المهملة قبل كل عملية إحماء لتقليل ضغط الذاكرة من مقياس أداء إلى آخر (b/140895105)

إصلاح الأخطاء

  • تمت إضافة التبعية androidx.annotation:android-experimental-lint، بحيث ينتج عن رمز Java أخطاء في برنامج لينت بشكل صحيح عند عدم استخدام واجهة برمجة تطبيقات تجريبية، على غرار ما يوفره التعليق التوضيحي التجريبي بلغة Kotlin لمتصلي لغة Kotlin.
  • يمكن الآن رصد استخدام وسيطة قياس أداة additionalTestOutputDir بشكل صحيح للمخرجات في الإصدار 3.6 من مكوّن Gradle الإضافي لنظام التشغيل Android، وذلك من أجل معرفة الوقت الذي سيتعامل فيه AGP مع نسخ البيانات.
  • يجب إصلاح معدّل تكرار الساعة الذي لم يتم رصده في JSON لطباعة -1 بشكلٍ صحيح (b/141945670).

الإصدار 1.0.0-alpha06

18 أيلول (سبتمبر) 2019

تم إصدار androidx.benchmark:benchmark-common:1.0.0-alpha06 وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha06 وandroidx.benchmark:benchmark-junit4:1.0.0-alpha06. يحتوي الإصدار 1.0.0-alpha06 على هذه الالتزامات.

الميزات الجديدة

  • تمت إضافة عملية فحص للتأكد من عدم استخدام الحزمة القديمة بشكل صحيح لمُجري الاختبار، ما يوفّر الآن رسالة خطأ أكثر فائدة.

تغييرات واجهة برمجة التطبيقات

  • أصبح التعليق التوضيحي التجريبي ExperimentalAnnotationReport متاحًا للجميع الآن بشكل صحيح. يتطلب استخدام واجهة برمجة التطبيقات التجريبية standardState#report الآن ظهور هذا التعليق التوضيحي.

الإصدار 1.0.0-alpha05

5 أيلول (سبتمبر) 2019

تم إصدار androidx.benchmark:benchmark-common:1.0.0-alpha05 وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha05 وandroidx.benchmark:benchmark-junit4:1.0.0-alpha05. يمكن العثور على الالتزامات المضمّنة في هذا الإصدار هنا.

تغييرات واجهة برمجة التطبيقات

  • تم الآن وضع علامة على واجهة برمجة التطبيقات BenchmarkState.reportData API لتكون تجريبية.

إصلاح الأخطاء

  • يمكنك حل مشكلة النص البرمجي لقفل الساعة، والذي قد يتعذّر تنفيذه على الأجهزة التي لا تحتوي على أدوات مساعدة واجهة برمجة التطبيقات cut أو expr.
  • تم إصلاح مشكلة في مهمة ./gradlew lockClocks كانت قيد التشغيل على الأجهزة المزوّدة بإصدار قديم من الأداة المساعدة su والذي لا يتوافق مع علامة -c.

الإصدار 1.0.0-alpha04

7 آب (أغسطس) 2019

تم إصدار androidx.benchmark:benchmark-common:1.0.0-alpha04 وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha04 وandroidx.benchmark:benchmark-junit4:1.0.0-alpha04. يمكن العثور على الالتزامات المضمّنة في هذا الإصدار هنا.

تمت أيضًا إضافة مستندات جديدة حول كيفية استخدام مكتبة مقاييس الأداء بدون Gradle، سواء للاستخدام مع أنظمة إنشاء مختلفة (مثل Bazel أو Buck) وعند التشغيل في CI. وللحصول على مزيد من المعلومات، يُرجى الاطِّلاع على مقالة إنشاء مقاييس أداء بدون Gradle وتنفيذ مقاييس الأداء في الدمج المستمر.

الميزات الجديدة

  • مكوّن Gradle الإضافي
    • الآن يؤدي إلى إيقاف تغطية الاختبار تلقائيًا، وضبط AndroidBenchmarkRunner تلقائيًا (b/138374050)
    • تمت إضافة التوافق مع نسخة البيانات الجديدة المستندة إلى AGP عند تنفيذ مقاييس الأداء وعند استخدام الإصدار 3.6 من AGP أو الإصدارات الأحدث.
  • إضافات تنسيق JSON
    • إجمالي وقت تشغيل اختبار قياس الأداء (b/133147694)
    • تُخرج مقاييس أداء @Parameterized التي تستخدم سلسلة أسماء (على سبيل المثال @Parameters(name = "size={0},depth={1}")) الآن أسماء المعلّمات وقيمها لكل مقياس أداء في مخرجات JSON (b/132578772).
  • وضع التشغيل التجريبي (b/138785848)
    • تمت إضافة وضع "التشغيل التجريبي" لتشغيل كل حلقة مقياس أداء مرة واحدة فقط، للتحقق من عدم وجود أخطاء/أعطال بدون تسجيل أي قياسات. وقد يكون هذا مفيدًا على سبيل المثال، على سبيل المثال، تنفيذ مقاييس الأداء بسرعة في الإرسال المسبق للتأكّد من عدم وجود عطل.

تغييرات واجهة برمجة التطبيقات

  • تم تغيير بنية الوحدة، وتقسيم المكتبة (b/138451391)
    • يحتوي benchmark:benchmark-junit4 على فئتَين لها تبعية JUnit: AndroidBenchmarkRunner وBenchmarkRule، وكلاهما تم نقلهما إلى حزمة androidx.benchmark.junit4.
    • تحتوي السمة benchmark:benchmark-common على بقية الأجزاء المنطقية، بما في ذلك واجهة برمجة التطبيقات criterionState API.
    • سيتيح هذا التقسيم للمكتبة إتاحة قياس الأداء بدون واجهات برمجة تطبيقات JUnit4 في المستقبل.
  • يتم الآن التعامل مع تحذيرات الضبط على أنها أخطاء، وستؤدي إلى إيقاف الاختبار (b/137653596)
    • يتم ذلك لتشجيع المستخدمين على إجراء القياسات الدقيقة، لا سيما في CI
    • ويمكن اختصار هذه الأخطاء إلى تحذيرات باستخدام وسيطة قياس أداء. على سبيل المثال: -e androidx.benchmark.suppressErrors "DEBUGGABLE,LOW_BATTERY"

إصلاح الأخطاء

  • إنّ الأخطاء عند الكتابة على وحدة التخزين الخارجية على أجهزة Q توفّر رسائل وصفية أكثر مع اقتراحات حول كيفية حل المشكلة.
  • يتم تشغيل الشاشات تلقائيًا أثناء عمليات قياس الأداء، بدلاً من تعذُّر تشغيلها عندما تكون الشاشة مُطفأة.

المساهمات الخارجية

  • شكرًا "سيرغي زخاروف" على المساهمة في تحسينات مخرجات JSON وحلّ مشاكل إغلاق الشاشة.

الإصدار 1.0.0-alpha03

2 تموز (يوليو) 2019

تم طرح androidx.benchmark:benchmark:1.0.0-alpha03 وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha03. يمكن العثور على الالتزامات المضمّنة في هذا الإصدار هنا.

الميزات الجديدة

  • وضِّح مدة النوم بسبب التقييد الحراري لكل مقياس أداء في تقرير JSON الكامل.

إصلاح الأخطاء

  • من المفترض ألا يكون مكوّن Gradle الإضافي مطلوبًا ليتم تطبيقه بعد استخدام مكونات Android الإضافية وحظر Android
  • إضافة دعم لتقارير قياس الأداء على أجهزة Android 10 التي تستخدم مساحة تخزين مُفصَّلة

الإصدار 1.0.0-alpha02

6 حزيران (يونيو) 2019

تم إطلاق androidx.benchmark:1.0.0-alpha02 وandroidx.benchmark:benchmark-gradle-plugin:1.0.0-alpha02. يمكن الاطّلاع هنا على عمليات الالتزام المضمَّنة في هذا الإصدار.

يُرجى العلم أنّنا نتعامل مع مخطط JSON على أنّه واجهة برمجة تطبيقات. ونخطط لاتّباع قيود ثبات الأداء نفسها التي يتم فرضها على واجهات برمجة التطبيقات الأخرى، وهي: الإصدارات الثابتة (مع استثناءات نادرة جدًا) مرة واحدة في الإصدار التجريبي، والثابتة في الإصدار النهائي، مع إضافة إضافات فقط في الإصدارات الثانوية والتغييرات/عمليات الإزالة في الإصدارات الرئيسية.

تغييرات واجهة برمجة التطبيقات

  • تم تعديل مخطط JSON. من المحتمل أن تقتصر التغييرات الأخرى على مخطط JSON على الإضافات:

    • تمت إعادة تنظيم بنية كائن النتيجة لإتاحة مجموعات مقاييس إضافية في المستقبل (b/132713021)
    • تمت إضافة معلومات سياق إجراء الاختبار، مثل معلومات الجهاز والإصدار وما إذا كانت الساعات مقفلة، إلى كائن المستوى الأعلى (b/132711920)
    • تحتوي أسماء مقاييس الوقت الآن على "ns" في أسمائها (b/132714527)
    • تمت إضافة الإحصاءات الإضافية لكل مقياس تم الإبلاغ عنه (الحد الأقصى والمتوسط والحد الأدنى)، وأزلت إحصاءات ملخّص "nanos" المبسّط (b/132713851)
  • تمت إزالة إخراج XML (b/132714414)

  • تمت إزالة الكشف عن الخانق الحراري من واجهة برمجة التطبيقات BenchmarkState.reportData (b/132887006)

إصلاح الأخطاء

  • تم حل مشكلة عدم تثبيت ./gradlew lockClocks على بعض الأجهزة التي تعمل بنظام التشغيل الحديثة (b/133424037)
  • تم إيقاف اكتشاف التقييد للمحاكي (b/132880807)

الإصدار 1.0.0-alpha01

7 أيار (مايو) 2019

تم إطلاق "androidx.benchmark:benchmark:1.0.0-alpha01". تتوفّر التزامات المضمنة في هذا الإصدار هنا.