في الإصدار 11 من Android أو الإصدارات الأحدث، تتيح لك وحدات المساعدة في التفاعل مع الأجهزة ضمن مجموعة أدوات اختبار التوافق (CTS) تخصيص كيفية تفاعل اختبارات معيّنة من مجموعة أدوات اختبار التوافق (CTS) مع واجهة المستخدم على جهاز معيّن. ويعني ذلك أنّه يمكن تنفيذ الإجراءات، مثل استبدال عنصر واجهة مستخدم غير مشمول في مستند تعريف التوافق مع Android (CDD) أو مستندات واجهات برمجة التطبيقات، مع مواصلة اجتياز مجموعة أدوات اختبار التوافق.
يمكن لمصنّعي المعدّات الأصلية الذين يريدون تخصيص واجهة مستخدم Android أثناء تطوير المنتجات ويحتاجون إلى اجتياز اختبار CTS تنفيذ وحدات المساعدة. إذا كنت تستخدم عملية التنفيذ التلقائية لنظام التشغيل Android، ليس عليك اتّخاذ أي إجراء إضافي.
تنفيذ الوحدات المساعِدة
متطلبات تخصيص واجهة المستخدم
راجِع وحدات CDD أو Mainline بحثًا عن أي متطلبات لواجهة المستخدم. إذا كانت واجهة المستخدم المطلوبة تغطيها وحدات CDD أو Mainline، لا يمكن تخصيص واجهة المستخدم هذه.
إذا كانت اختبارات CTS التي تتفاعل مع واجهة المستخدم المطلوبة لا تستخدِم إطار عمل المساعد، لا يمكن تخصيص واجهة المستخدم هذه. تعاون مع مالك الاختبار لتحويل وحدة الاختبار قبل أن يتم تغيير واجهة المستخدم.
بخلاف ذلك، يمكنك تخصيص واجهة المستخدم.
سير العمل الخاص بالتنفيذ
- يمكنك تخصيص واجهة المستخدم حسب الحاجة لمنتجك المحدّد.
- حدِّد وحدات المساعدة الحالية في AOSP كفئات فرعية لاختبار CTS
الوحدات التي تحتاج إلى التفاعل مع واجهة المستخدم. استبدِل التفاعلات اللازمة
بطريقة مناسبة لواجهة المستخدم المخصّصة. تختلف عمليات الاستبدال تبعًا
لنوع التغييرات.
- تكون فئات المصنّعين الأصليين الفرعية في حزمة المصنّع الأصلي، مثل
com.[oem].cts.helpers
. - تتم تسمية كل فئة فرعية من المصنّعين الأصليين للأجهزة باستخدام بادئة شائعة تميّزها
عن عملية تنفيذ AOSP التي تحتوي على البادئة
Default
.
- تكون فئات المصنّعين الأصليين الفرعية في حزمة المصنّع الأصلي، مثل
- أنشئ الأدوات المساعدة في حزمة 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
اختياريًا.
- يجب أن يعلن
- اضبط السمة
ro.vendor.cts_interaction_helper_packages
في صورة الجهاز لتضمين اسم حزمة APK. إذا كنت بحاجة إلى فصل عمليات تنفيذ مساعِد على مستوى حِزم APK متعددة، يمكن أن يحتوي هذا الحقل على قائمة بحِزم مفصولة بنقطتَين رأسيتين. - تأكَّد من توفّر حزمة APK في دليل
testcases
عند تشغيل Tradefed لاختبار CTS. إذا لزم الأمر، تأكَّد من اختيار فئة تنفيذ المساعدة المُتوقّعة من خلال فحص رسائل logcat. - إجراء اختياري، ولكنّنا ننصح به بشدة: أرسِل عملية تنفيذ المساعد إلى 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.