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

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

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

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

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

راجِع وحدات CDD أو Mainline بحثًا عن أي متطلبات لواجهة المستخدم. إذا كانت واجهة المستخدم المطلوبة تغطيها وحدات CDD أو Mainline، لا يمكن تخصيص واجهة المستخدم هذه.

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

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

سير العمل الخاص بالتنفيذ

  1. يمكنك تخصيص واجهة المستخدم حسب الحاجة لمنتجك المحدّد.
  2. حدِّد وحدات المساعدة الحالية في AOSP كفئات فرعية لاختبار CTS الوحدات التي تحتاج إلى التفاعل مع واجهة المستخدم. استبدل التفاعلات الضرورية بشكل مناسب لواجهة المستخدم المخصصة. تختلف عمليات الاستبدال تبعًا لنوع التغييرات.
    • تكون فئات المصنّعين الأصليين الفرعية في حزمة المصنّع الأصلي، مثل com.[oem].cts.helpers.
    • تتم تسمية كل فئة فرعية من المصنّعين الأصليين للأجهزة باستخدام بادئة شائعة تميّزها عن عملية تنفيذ AOSP التي تحتوي على البادئة 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. إجراء اختياري، ولكنّنا ننصح به بشدة: أرسِل عملية تنفيذ المساعد إلى AOSP أو اجعلها متاحة للاختبار من قِبل جهة خارجية.

مثال على تنفيذ المساعدة

على سبيل المثال، يتوقّع CtsPrintTestCases مساعدًا يتضمّن الواجهة المحدّدة في ICtsPrintHelper. يُطلَق على عملية تنفيذ AOSP اسم 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 و مساعِد AOSP التلقائي ضمن 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.