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

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

قد يتمكّن مصنّعو المعدات الأصلية الذين يريدون تخصيص واجهة مستخدم Android أثناء تطوير المنتجات ويحتاجون إلى اجتياز اختبار التوافق مع نظام التشغيل Android من تنفيذ وحدات المساعدة. إذا كنت تستخدم عملية التنفيذ التلقائية في 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. إجراء اختياري، ولكن ننصح به بشدة: أرسِل تنفيذ المساعد إلى مشروع Android مفتوح المصدر (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 الموضّحة أعلاه.

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

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

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

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