وحدة مساعدة التفاعل مع الجهاز في CTS

بالنسبة إلى Android 11 أو الإصدارات الأحدث، تتيح لك وحدات المساعدة في تفاعل الأجهزة مع مجموعة أدوات اختبار التوافق (CTS) تخصيص طريقة تفاعل بعض اختبارات CTS مع واجهة المستخدم على جهاز معيّن. يعني ذلك أنّه يمكن تنفيذ إجراءات، مثل استبدال عنصر في واجهة المستخدم غير مشمول بمستند تعريف معايير التوافق في Android أو مستندات واجهة برمجة التطبيقات، مع اجتياز اختبارات CTS في الوقت نفسه.

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

تنفيذ وحدات المساعدة

متطلبات تخصيص واجهة المستخدم

تحقَّق من مستند تعريف معايير التوافق في Android أو وحدات Mainline بحثًا عن أي متطلبات متعلقة بواجهة المستخدم. إذا كانت واجهة المستخدم المطلوبة مشمولة بمستند تعريف معايير التوافق في Android أو وحدات Mainline، لا يمكن تخصيصها.

إذا كانت اختبارات CTS التي تتفاعل مع واجهة المستخدم المطلوبة لا تستخدم إطار عمل المساعدة، لا يمكن تخصيص واجهة المستخدم هذه. عليك العمل مع مالك الاختبار لتحويل وحدة الاختبار قبل أن تتمكّن من تغيير واجهة المستخدم.

بخلاف ذلك، يمكنك تخصيص واجهة المستخدم.

سير عمل عملية التنفيذ

  1. خصِّص واجهة المستخدم حسب الحاجة لمنتجك المحدّد.
  2. حدِّد وحدات المساعدة الحالية في مشروع Android مفتوح المصدر (AOSP) كفئات فرعية لوحدات اختبار CTS التي تحتاج إلى التفاعل مع واجهة المستخدم. استبدِل التفاعلات اللازمة بشكل مناسب لواجهة المستخدم المخصّصة. تختلف عمليات الاستبدال حسب نوع التغييرات.
    • تكون الفئات الفرعية للمصنّع الأصلي للأجهزة في حزمة خاصة به، مثل com.[oem].cts.helpers.
    • تتم تسمية كل فئة فرعية للمصنّع الأصلي للأجهزة باستخدام بادئة شائعة تميّزها عن عملية الإعداد في مشروع Android مفتوح المصدر، والتي لها البادئة Default.
  3. أنشِئ وحدات المساعدة في ملف APK باتّباع اصطلاحات مشغّل الاختبار هذه.
    • يجب أن يعلن ملف Android.bp عن android_test_helper_app بالاسم نفسه الذي تحمله الحزمة المضمّنة.
    • يجب أن يعلن ملف AndroidManifest.xml لملف APK عن سمة بيانات وصفية باسم interaction-helpers-prefix بقيمة بادئة الفئة التي تم اختيارها في النقطة السابقة.
    • يجب أن يعتمد التطبيق على cts-helpers-core وcts-helpers-interfaces وcom.android.cts.helpers.aosp. إذا كانت وحدات المساعدة الخاصة بالمصنّع الأصلي للأجهزة تنفّذ جميع الواجهات ذات الصلة بالكامل، يصبح com.android.cts.helpers.aosp اختياريًا.
  4. اضبط السمة ro.vendor.cts_interaction_helper_packages في صورة الجهاز لتضمين اسم ملف APK. إذا كنت بحاجة إلى فصل عمليات إعداد وحدات المساعدة على مستوى ملفات APK متعدّدة، يمكن أن تحتوي هذه السمة على قائمة بالحزم مفصولة بفواصل نقطية.
  5. تأكَّد من توفّر ملف APK في الدليل testcases عند تشغيل Tradefed لاختبارات CTS. إذا لزم الأمر، تأكَّد من اختيار فئة عملية إعداد وحدة المساعدة المتوقّعة من خلال فحص رسائل logcat.
  6. اختياري، ولكن ننصح به بشدة: أرسِل عملية إعداد وحدة المساعدة إلى مشروع Android مفتوح المصدر أو أتحها للاختبار من قِبل جهات خارجية.

مثال على عملية إعداد وحدة مساعدة

على سبيل المثال، تتوقّع CtsPrintTestCases وحدة مساعدة تتضمّن الواجهة المحدّدة في ICtsPrintHelper. تُسمى عملية الإعداد في مشروع Android مفتوح المصدر com.android.cts.helpers.aosp.DefaultCtsPrintHelper.

إذا خصّصت واجهة مستخدم الطباعة، يمكنك إنشاء com.oem.cts.helpers.OemCtsPrintHelper التي تكون فئة فرعية من DefaultCtsPrintHelper. android_test_helper_app في Android.bp يُطلق عليه الاسم com.oem.cts.helpers، ما يؤدي إلى إنشاء com.oem.cts.helpers.apk، ويتم الإعلان عن interaction-helpers-prefix على أنّه Oem في AndroidManifest.xml.

تم ضبط سمة الجهاز ro.vendor.cts_interaction_helper_packages على com.oem.cts.helpers.

عمليات الإعداد المرجعية

تتضمّن عمليات الإعداد المرجعية واجهات ضمن cts/libs/helpers ووحدات المساعدة التلقائية في مشروع Android مفتوح المصدر ضمن cts/helpers. تم توثيق الواجهة ذات المستوى الأعلى في cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java.

لربط اختبار CTS بوحدات المساعدة، يمكن لمالكي الاختبار استخدام تعريف @Rule الموثّق في cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java.

تم توثيق كل وحدة CTS تستخدم إطار العمل وسلوك وحدة المساعدة المتوقّع في واجهة محدّدة ضمن cts/libs/helpers/core/src/com/android/cts/helpers.

تشغيل اختبارات CTS

الاختبار بدون وحدات مساعدة

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

  • أزِل السمة ro.vendor.cts_interaction_helper_packages من الجهاز. يمنع ذلك استخدام وحدات المساعدة في هذا الإصدار بالكامل.
  • أزِل ملف APK الخاص بوحدة المساعدة من الدليل testcases قبل تشغيل اختبارات CTS. يمنع ذلك استخدام وحدات المساعدة في أي عمليات تشغيل إلى أن تتم استعادة ملف APK إلى testcases.

يمكنك تغيير الإعدادات التلقائية باستخدام وسيطات Tradefed وعنصر التحكّم في السمة ro.vendor.cts_interaction_helper_packages، وهو المكان الذي يتم منه تحميل ملف APK الخاص بوحدة المساعدة.

اطّلِع على القيم أو النطاقات المتوقّعة لكل إعداد من الإعدادات المتاحة.

  • ro.vendor.cts_interaction_helper_packages هي سلسلة تحتوي على أسماء الحزم مفصولة بفواصل نقطية. يمكن أن تأخذ أي قيمة تمثّل خيار حزمة صالحًا لعملية إعداد وحدة المساعدة الخاصة بالمصنّع الأصلي للأجهزة.
  • cts-tradefed يقبل وسيطة device-interaction-helper:property-name التي تغيّر مؤقتًا السمة المتوقّعة لعملية تشغيل اختبار واحدة، مثل --module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp'. يمكن أن تكون قيمة اسم السمة أي سمة تضبطها على الجهاز. تخضع قيمة السمة للقيود نفسها التي تخضع لها السمة ro.vendor.cts_interaction_helper_packages الموضّحة أعلاه.

الاختبار باستخدام التخصيصات

تلقائيًا، تجتاز عمليات الإعداد المرجعية اختبارات CTS على نظام التشغيل Android الأساسي. تأكَّد من أنّ عمليات الإعداد الخاصة بالشركاء تجتاز اختبارات CTS مع تخصيصات واجهة المستخدم. شغِّل أي وحدات CTS تغطي واجهة المستخدم أو الميزات التي خصّصتها.

قد لا تتوافق بعض وحدات CTS أو وحدات المساعدة مع بعض التخصيصات بعد.

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