تتيح مجموعة اختبار المورّدين (VTS) لنظام التشغيل Android 9 استخدام أسلوب أثناء التشغيل لتحديد اختبارات VTS التي يجب تخطّيها لهذا الجهاز المستهدَف.
مرونة اختبار الفيديوهات
اعتبارًا من الإصدار 8.0 من نظام التشغيل Android، أصبحت اختبارات VTS مطلوبة لجميع الأجهزة التي تم طرحها مع الإصدار 8.0 من نظام التشغيل Android والإصدارات الأحدث. ومع ذلك، لا تنطبق بعض اختبارات VTS على جميع استهدافات الأجهزة. مثلاً:
- إذا كان جهاز معيّن لا يتيح اختبار HAL (مثل الأشعة تحت الحمراء)، لن يحتاج اختبار VTS إلى إجراء اختبارات لاختبار HAL هذا على الجهاز المستهدَف.
- إذا كانت هناك عدة أجهزة تستخدم المنظومة على الرقاقة (SoC) وصورة المورِّد نفسها ولكن بها وظائف مختلفة للأجهزة، يجب أن يحدد VTS ما إذا كان يجب إجراء الاختبار أو تخطيه لاستهداف جهاز معيّن.
أنواع اختبارات VTS
تشمل اختبارات VTS أنواع الاختبارات التالية:
- تضمن اختبارات الامتثال التوافق بين أقسام إطار العمل وأقسام المورّدين. يجب إجراء هذه الاختبارات (اجتيازها) على الأجهزة التي تعمل بالإصدار 8.0 من نظام التشغيل Android أو الإصدارات الأحدث.
- تساعد اختبارات عدم الامتثال المورّدين على تحسين جودة المنتجات (الأداء/الفحص العشوائي وما إلى ذلك). هذه الاختبارات اختيارية للمورّدين.
يعتمد ما إذا كان الاختبار اختبار امتثال أم لا على الخطة التي ينتمي إليها. تُعدّ الاختبارات التي يتم إجراؤها باستخدام خطة اختبار الأداء والتوافق اختبارات الامتثال.
تحديد HALs المتوافقة
يمكن أن تستخدم أداة فحص الأجهزة للتوافق مع معايير Google Play (VTS) الملفات التالية لتحديد ما إذا كان الجهاز المستهدَف يتوافق مع ملف HAL معيّن:
/system/compatibility_matrix.xml
. يطلب مثيلات HAL المطلوبة من إطار العمل. مثال:<hal format="hidl" optional="true"> <name>android.hardware.vibrator</name> <version>1.0-1</version> <interface> <name>IVibrator</name> <instance>default</instance> </interface> </hal>
- تشير السمة
optional
إلى ما إذا كان إطار العمل يتطلّب استخدام HAL بشكلٍ صارم. - قد يحتوي الملف على إدخالات متعددة لواجهة HAL نفسها (بالاسم نفسه) ولكن بإصدارات وواجهات مختلفة.
- قد يحتوي الملف على إعدادات متعددة ل
version
في الإدخال نفسه، ما يشير إلى أنّ إطار العمل يمكن أن يعمل مع إصدارات مختلفة. version1.0-1
يعني أنّ إطار العمل يمكنه العمل مع الإصدار 1.0 وهو أدنى إصدار، ولا يتطلّب إصدارًا أعلى من 1.1.
- تشير السمة
- الجهاز
manifest.xml
يطالب بنماذج HAL التي يقدّمها المورّد. مثال:<hal format="hidl"> <name>android.hardware.vibrator</name> <transport>hwbinder</transport> <version>1.2</version> <interface> <name>IVibrator</name> <instance>default</instance> </interface> </hal>
- قد يحتوي الملف على إدخالات متعددة لواجهة HAL نفسها (بالاسم نفسه) ولكن بإصدارات وواجهات مختلفة.
- إذا كان الملف يحتوي على ملف
version
واحد فقط للعنصر، يعني ذلك أنّversion1.2
يشير إلى أنّ المورّد متوافق مع جميع الإصدارات من 1.0 إلى 1.2.
- الشال. أداة على الجهاز تعرض معلومات وقت التشغيل حول
خدمات HAL المسجّلة في
hwservicemanager
مثال:android.hardware.vibrator@1.0::IVibrator/default
يعرضlshal
أيضًا جميع HALs التي تتوفر فيها عمليات تنفيذ العبور (أي توفُّر ملف-impl.so
المقابل على الجهاز). مثال:android.hardware.nfc@1.0::I*/* (/vendor/lib/hw/) android.hardware.nfc@1.0::I*/* (/vendor/lib64/hw/)
اختبارات الامتثال
بالنسبة إلى اختبارات الامتثال، يعتمد VTS على بيان المورّد لتحديد (واختبار) جميع نُسخ HAL التي يوفّرها الجهاز. مسار القرار:
اختبارات عدم الامتثال
بالنسبة إلى اختبارات عدم الامتثال، تعتمد أداة فحص التوافق على بيان المورّد ومخرجات lshal
لتحديد (واختبار) واجهات HAL التجريبية التي لم يتمّ تحديدها في ملف manifest.xml
. مسار القرار:
تحديد موقع بيان المورّد
تبحث أداة التحقّق من المحتوى في الفيديو عن ملف manifest.xml
الخاص بالمورّد في المواقع التالية
بالترتيب التالي:
/vendor/etc/vintf/manifest.xml
+ بيان ODM (في حال تحديد HAL نفسه في كلا المكانين، يلغي بيان ODM القيمة في/vendor/etc/vintf/manifest.xml
)/vendor/etc/vintf/manifest.xml
- ملف ODM
manifest.xml
الذي تم تحميله من الملفات التالية بالترتيب التالي:/odm/etc/vintf/manifest_$(ro.boot.product.hardware.sku).xml
/odm/etc/vintf/manifest.xml
/odm/etc/manifest_$(ro.boot.product.hardware.sku).xml
/odm/etc/manifest.xml
/vendor/manifest.xml
أداة التحقّق من قابلية اختبار نموذج المحاكاة الآلي
و
vts_testibility_checker
هو برنامج ثنائي الحزمة مع VTS ويتم استخدامه بواسطة
إطار عمل اختبار VTS في وقت التشغيل لتحديد ما إذا كان اختبار HAL
معيّن قابلاً للاختبار أم لا. يستند هذا الإجراء إلى libvintf
لتحميل ملف بيان المورِّد وتحليله، وتنفيذ عملية اتخاذ القرار описанة في القسم السابق.
لاستخدام vts_testability_check
:
- لإجراء اختبار الامتثال:
vts_testability_check -c -b <bitness> <hal@version>
- لاختبار عدم الامتثال:
vts_testability_check -b <bitness> <hal@version>
يستخدم الناتج من vts_testability_check
تنسيق json
التالي:
{testable: <True/False> Instances: <list of instance names of HAL service>}
تحديد واجهات برمجة التطبيقات التي تم الوصول إليها
لتحديد HALs التي يتم الوصول إليها من خلال اختبارات VTS، تأكَّد من أنّ كل اختبار HAL يستخدم النموذج VtsHalHidlTargetTestEnvBase
لتسجيل مستويات HAL التي تم الوصول إليها في الاختبار. يمكن بعد ذلك لإطار عمل اختبار فحص الأجهزة للتحقق من السلامة (VTS) استخراج واجهات HAL المسجَّلة عند المعالجة المُسبَقة للاختبار.
لإجراء اختبارات الامتثال، يمكنك أيضًا الاطّلاع على
/system/etc/vintf/manifest.xml
. إذا تم تحديد HAL هنا، يجب أن يختبره VTS. (بالنسبة إلى خدمات HAL التي يقدّمها النظام (مثل graphics.composer/vr
)، يتم الإعلان عن هذه العمليات في /system/manifest.xml
.