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