لتشغيل CTS ، قم أولاً بإعداد بيئتك المادية وجهاز سطح المكتب وجهاز Android الذي تستخدمه للاختبار.
بيئة فيزيائية
منارات بلوتوث LE
إذا كان الجهاز قيد الاختبار (DUT) يدعم Bluetooth LE ، فضع ما لا يقل عن ثلاثة منارات Bluetooth LE في نطاق 5 أمتار من DUT لاختبار فحص Bluetooth LE. لا تحتاج هذه الإشارات إلى التهيئة أو إصدار أي شيء محدد ، ويمكن أن تكون من أي نوع ، بما في ذلك iBeacon أو Eddystone أو حتى الأجهزة التي تحاكي إشارات BLE.
الكاميرات
عند تشغيل كاميرا CTS ، استخدم ظروف الإضاءة العادية مع مخطط نموذج اختبار (مثل نمط رقعة الشطرنج). ضع مخطط نموذج الاختبار وفقًا لمسافة التركيز البؤري الدنيا لـ DUT للتأكد من أنها ليست قريبة جدًا من العدسة.
قم بتوجيه مستشعرات الكاميرا إلى مشهد به إضاءة كافية للسماح لأجهزة الاستشعار قيد الاختبار بالوصول والبقاء عند الحد الأقصى من الإطارات المستهدفة في الثانية (FPS) كما هو محدد في CONTROL_AE_TARGET_FPS_RANGE
. ينطبق هذا على جميع مستشعرات الكاميرا التي تم الإبلاغ عنها بواسطة getCameraIdList
حيث يتكرر الاختبار على الأجهزة المدرجة ويقيس الأداء بشكل فردي.
إذا كانت DUT تدعم الكاميرات الخارجية ، مثل كاميرات الويب USB ، فقم بتوصيل كاميرا خارجية عند تشغيل CTS. خلاف ذلك ، تفشل اختبارات CTS.
GPS / GNSS
إذا كانت DUT تدعم ميزة نظام تحديد المواقع العالمي / نظام الملاحة العالمي عبر الأقمار الصناعية (GPS / GNSS) ، فقم بتوفير إشارة GPS / GNSS إلى DUT عند مستوى إشارة مناسب للاستقبال وحساب موقع GPS. يجب أن يكون جزء GPS متوافقًا مع ICD-GPS-200C. بخلاف ذلك ، يمكن أن تكون إشارة GPS / GNSS من أي نوع ، بما في ذلك جهاز محاكاة الأقمار الصناعية أو مكرر GPS / GNSS للإشارات الخارجية ، أو يمكنك وضع DUT بالقرب من النافذة بحيث يمكنها استقبال إشارة GPS / GNSS كافية مباشرة.
شبكة Wi-Fi و IPv6
تتطلب اختبارات CTS شبكة Wi-Fi تدعم IPv4 و IPv6 ، ولديها اتصال بالإنترنت مع DNS العامل لـ IPv4 و IPv6 ، وتدعم البث المتعدد IP ، ويمكنها التعامل مع DUT كعميل منعزل. العميل المعزول هو تكوين حيث لا يمكن لـ DUT رؤية رسائل البث / الشبكات المتعددة على تلك الشبكة الفرعية. يحدث هذا مع تكوين نقطة وصول Wi-Fi (AP) أو عن طريق تشغيل DUT على شبكة فرعية معزولة دون توصيل أجهزة أخرى.
إذا لم يكن لديك وصول إلى شبكة IPv6 أصلية أو شبكة مشغل IPv6 أو VPN لاجتياز بعض الاختبارات اعتمادًا على IPv6 ، فيمكنك استخدام نقطة وصول Wi-Fi ونفق IPv6.
لتمرير CTS ، تحتاج DUT إلى أعلام UP
و BROADCAST
و MULTICAST
التي تم تعيينها على واجهة Wi-Fi. تحتاج واجهة Wi-Fi إلى تعيين عناوين IPv4 و IPv6. تحقق من خصائص واجهة Wi-Fi باستخدام adb shell ifconfig
.
شبكة Wi-Fi RTT
يشتمل نظام التشغيل Android على Wi-Fi RTT API لإمكانية الوصول ذهابًا وإيابًا عبر شبكة Wi-Fi (RTT) . يسمح هذا للأجهزة بقياس المسافة بينها وبين نقاط الوصول بدقة تتراوح من متر واحد إلى مترين ، مما يزيد بشكل كبير من دقة الموقع الداخلي. جهازان موصى بهما يدعمان Wi-Fi RTT هما Google Wifi ونقطة وصول Fitlet2 من Compulab (مضبوطة على عرض النطاق الترددي 40 ميجاهرتز عند 5 جيجاهرتز).
يجب تشغيل نقاط الوصول ، لكنها لا تتطلب اتصالاً بالشبكة. لا يلزم أن تكون نقاط الوصول بجوار جهاز الاختبار ولكن يوصى بأن تكون في نطاق 40 قدمًا من DUT. عادة ما تكون نقطة الوصول واحدة كافية.
إعداد جهاز سطح المكتب
ADB و AAPT
قبل تشغيل CTS ، تأكد من تثبيت الإصدارات الحديثة لكل من Android Debug Bridge (adb) و Android Asset Packaging Tool (AAPT) وإضافة موقع تلك الأدوات إلى مسار النظام الخاص بجهازك.
لتثبيت ADB و AAPT ، قم بتنزيل أحدث أدوات Android SDK Platform و Android SDK Build Tools من Android Studio's SDK Manager أو من أداة سطر الأوامر sdkmanager .
تأكد من أن adb
و aapt
موجودان في مسار النظام الخاص بك. يفترض الأمر التالي أنك قمت بتنزيل أرشيفات الحزمة إلى دليل فرعي يسمى android-sdk
في الدليل الرئيسي الخاص بك:
export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>
مجموعة تطوير جافا لأوبونتو
قم بتثبيت الإصدار المناسب من Java Development Kit (JDK) .
- لنظام Android 11 ، قم بتثبيت OpenJDK11.
- بالنسبة إلى Android 9 و Android 10 ، قم بتثبيت OpenJDK9.
- لنظام التشغيل Android 7.0 و 7.1 و 8.0 و 8.1 ، قم بتثبيت OpenJDK8.
للحصول على التفاصيل ، راجع متطلبات JDK .
الإعداد لدعم Python
قم بتثبيت virtualenv
لمنصتك باتباع تعليمات التثبيت .
يمكنك التحقق من نجاح التثبيت عن طريق استدعاء virtualenv -h
.
ملفات CTS
قم بتنزيل وفتح حزم CTS من تنزيلات Compatibility Test Suite التي تتوافق مع إصدار Android الخاص بأجهزتك وجميع واجهات التطبيقات الثنائية (ABIs) التي تدعمها أجهزتك.
قم بتنزيل وفتح أحدث إصدار من ملفات وسائط CTS .
كشف الجهاز
اتبع الخطوة لإعداد نظامك لاكتشاف جهازك .
حد الذاكرة
قد ترغب في زيادة الحد الأقصى للذاكرة المتاحة أثناء التشغيل التجريبي في النص البرمجي cts-tradfed . الرجوع إلى مثال CL لمزيد من المعلومات.
إعداد جهاز Android
يبني المستخدم
يُعرَّف الجهاز المتوافق بأنه جهاز به بنية مُوقعة من المستخدم / مفتاح التحرير. يجب أن يقوم جهازك بتشغيل صورة نظام استنادًا إلى بنية المستخدم المعروفة والمتوافقة (Android 4.0 أو أعلى) من أسماء الرموز والعلامات وأرقام الإنشاء .
أول خاصية بناء على مستوى API
تعتمد بعض متطلبات CTS على التصميم الذي تم شحن الجهاز به في الأصل. على سبيل المثال ، قد يتم استبعاد الأجهزة التي تم شحنها في الأصل مع إصدارات سابقة من متطلبات النظام التي تنطبق على الأجهزة التي يتم شحنها مع إصدارات لاحقة.
لإتاحة هذه المعلومات لـ CTS ، كان بإمكان مصنعي الأجهزة تحديد خاصية وقت البناء ro.product.first_api_level
. قيمة هذه الخاصية هي أول مستوى لواجهة برمجة التطبيقات تم إطلاق الجهاز تجاريًا به.
يمكن لمصنعي الأجهزة إعادة استخدام التطبيق الأساسي المشترك لإطلاق منتج جديد كترقية لمنتج موجود في نفس مجموعة الأجهزة. يمكن لمصنعي الأجهزة تحديد مستوى واجهة برمجة التطبيقات للمنتج الحالي بشكل اختياري إلى ro.product.first_api_level
، بحيث يتم تطبيق متطلبات الترقية على CTS و Treble / VTS.
يمكن لمصنعي الأجهزة تحديد PRODUCT_SHIPPING_API_LEVEL
في ملف device.mk
الخاص بهم لتعيين هذه الخاصية ، كما هو موضح في المثال التالي:
# PRODUCT_SHIPPING_API_LEVEL sets ro.product.first_api_level to indicate
# the first api level that the device has been commercially launched on.
PRODUCT_SHIPPING_API_LEVEL := 21
أول مستوى لواجهة برمجة التطبيقات لنظام Android 9 أو أعلى
بالنسبة للأجهزة التي تم إطلاقها بنظام Android 9 أو إصدار أحدث ، قم بتعيين الخاصية ro.product.first_api_level
إلى قيمة صالحة من أسماء الرموز والعلامات وأرقام الإنشاء .
أول مستوى لواجهة برمجة التطبيقات لنظام Android 8.x أو أقل
بالنسبة للأجهزة التي تم إطلاقها على نظام Android 8.x أو إصدار أقدم ، قم بإلغاء تحديد (إزالة) خاصية ro.product.first_api_level
للبنية الأولى للمنتج. لجميع الإصدارات اللاحقة ، اضبط ro.product.first_api_level
على قيمة مستوى API الصحيحة. يتيح ذلك للخاصية تحديد منتج جديد بشكل صحيح والاحتفاظ بالمعلومات حول المستوى الأول لواجهة برمجة التطبيقات للمنتج. إذا لم يتم تعيين العلامة ، يقوم Android بتعيين Build.VERSION.SDK_INT
إلى ro.product.first_api_level
.
حزم الرقائق CTS
يتضمن Android 10 أو أعلى تنسيق حزمة يسمى APEX . لتشغيل اختبارات CTS لواجهات برمجة تطبيقات إدارة APEX (مثل التحديث إلى إصدار جديد أو الإبلاغ عن APEXes نشطة) ، يجب عليك تثبيت حزمة CtsShimApex
مسبقًا على قسم /system
.
يتحقق اختبار التحقق من صحة الرقاقة APEX من تنفيذ CtsShimApex
.
متطلبات ro.apex.updatable
إذا تم تعيين الخاصية
ro.apex.updatable
علىtrue
،CtsShimApex
مطلوبة لجميع الأجهزة التي تدعم إدارة حزم APEX.إذا كانت الخاصية
ro.apex.updatable
مفقودة أو لم يتم تعيينها ، فلا يلزم تثبيتCtsShimApex
مسبقًا على الجهاز.
يتحقق اختبار التحقق من صحة الرقاقة APEX من تنفيذ CtsShimApex
.
عمليات التثبيت المسبق والتحميل المسبق CtsShim
بدءًا من Android 11 ، يحتوي CtsShimApex
على تطبيقين تم إنشاؤهما مسبقًا (تم إنشاؤهما من مصدر الإنشاء ) ، ولا يحتويان على أي رمز باستثناء البيان. تستخدم CTS هذه التطبيقات لاختبار الامتيازات والأذونات.
إذا كان الجهاز لا يدعم إدارة حزمة APEX (أي أن خاصية ro.apex.updatable
مفقودة أو لم يتم تعيينها) ، أو إذا كان الجهاز يعمل بالإصدار 10 أو أقل ، فيجب تثبيت التطبيقين اللذين تم إنشاؤهما مسبقًا في بشكل منفصل.
إصدار الجهاز | التثبيت المسبق (إذا كان APEX مدعومًا) | التحميل المسبق | ||
---|---|---|---|---|
ذراع | إلى x86 | ذراع | إلى x86 | |
أندرويد 12 | android12- الافراج عن الذراع تحت /system/apex/com.android.apex.cts.shim.apex | android12-x86-release تحت /system/apex/com.android.apex.cts.shim.apex | android12-arm-CtsShim.apk تحت /system/app/CtsShimPrebuilt.apk android12-arm-CtsShimPriv.apk | android12-x86-CtsShim.apk تحت /system/app/CtsShimPrebuilt.apk android12-x86-CtsShimPriv.apk |
أندرويد 11 | android11- الافراج عن الذراع تحت /system/apex/com.android.apex.cts.shim.apex | android11-x86-release تحت /system/apex/com.android.apex.cts.shim.apex | android11-arm-CtsShim.apk تحت /system/app/CtsShimPrebuilt.apk android11-arm-CtsShimPriv.apk | android11-x86-CtsShim.apk تحت /system/app/CtsShimPrebuilt.apk android11-x86-CtsShimPriv.apk |
أندرويد 10 | android10 الإصدار تحت /system/apex/com.android.apex.cts.shim.apex | android10-arm-CtsShim.apk تحت /system/app/CtsShimPrebuilt.apk android10-arm-CtsShimPriv.apk | android10-x86-CtsShim.apk تحت /system/app/CtsShimPrebuilt.apk android10-x86-CtsShimPriv.apk | |
Android 9 و O و O-MR1 | غير متاح | غير متاح | arm-CtsShim.apk تحت /system/app/CtsShimPrebuilt.apk arm-CtsShimPriv.apk | x86-CtsShim.apk تحت /system/app/CtsShimPrebuilt.apk x86-CtsShimPriv.apk |
لاجتياز الاختبارات ، قم بتحميل التطبيقات مسبقًا في الدلائل المناسبة على صورة النظام دون إعادة توقيع التطبيقات.
نموذج بريمج
قدم Android 9 واجهات برمجة تطبيقات Open Mobile. بالنسبة للأجهزة التي تبلغ عن أكثر من عنصر آمن ، تضيف CTS حالات اختبار للتحقق من صحة سلوك Open Mobile APIs. تتطلب حالات الاختبار هذه التثبيت لمرة واحدة لعينة التطبيق الصغير في العنصر الآمن المضمن (eSE) الخاص بـ DUT أو في بطاقة SIM المستخدمة بواسطة DUT. يمكن العثور على نموذج eSE الصغير ونموذج SIM الصغير في AOSP.
راجع اختبار CTS للعنصر الآمن للحصول على معلومات أكثر تفصيلاً عن حالات اختبار Open Mobile API وحالات اختبار التحكم في الوصول.
متطلبات التخزين
تتطلب اختبارات ضغط وسائط CTS وجود مقاطع فيديو على وحدة تخزين خارجية ( /sdcard
). معظم المقاطع مأخوذة من Big Buck Bunny ، المحمية بحقوق الطبع والنشر من قبل Blender Foundation بموجب ترخيص Creative Commons Attribution 3.0 .
تعتمد المساحة المطلوبة على الحد الأقصى لدقة تشغيل الفيديو التي يدعمها الجهاز. راجع القسم 5 في مستند تعريف توافق Android للحصول على إصدار النظام الأساسي للقرارات المطلوبة.
فيما يلي متطلبات التخزين حسب الحد الأقصى لدقة تشغيل الفيديو:
- 480 × 360: 98 ميجا بايت
- 720 × 480: 193 ميجا بايت
- 1280 × 720: 606 ميجابايت
- 1920 × 1080: 1863 ميجابايت
الشاشة والتخزين
- يحتاج أي جهاز لا يحتوي على شاشة مضمنة إلى توصيله بشاشة.
إذا كان الجهاز يحتوي على فتحة بطاقة ذاكرة ، فقم بتوصيل بطاقة SD فارغة. استخدم بطاقة SD التي تدعم ناقل السرعة الفائقة (UHS) بسعة SDHC أو SDXC أو بطاقة ذات سرعة لا تقل عن 10 أو أعلى لضمان قدرتها على اجتياز CTS.
إذا كان الجهاز يحتوي على فتحات بطاقة SIM ، فقم بتوصيل بطاقة SIM نشطة في كل فتحة. إذا كان الجهاز يدعم رسائل SMS ، فيجب أن يكون لكل بطاقة SIM حقل رقم خاص بها مملوء. بالنسبة للأجهزة التي تعمل بنظام Android 12 أو أعلى ، يجب أن تدعم جميع بطاقات SIM تخزين أرقام الاتصال المختصرة (ADN). تلبي بطاقات GSM و USIM المزودة بملف مخصص للاتصالات (DF Telecom ) هذا المطلب.
المطور UICC
لإجراء اختبارات API لمشغل CTS ، يحتاج الجهاز إلى استخدام بطاقة SIM مع امتيازات مشغل CTS التي تلبي المتطلبات المحددة في إعداد UICC .
تكوين جهاز Android
إعادة تعيين بيانات المصنع للجهاز: الإعدادات> النسخ الاحتياطي وإعادة الضبط> إعادة تعيين بيانات المصنع .
اضبط لغة جهازك على الإنجليزية ( الولايات المتحدة ): الإعدادات> اللغة والإدخال> اللغة .
إذا كان الجهاز يدعم تخصيص الخطوط الافتراضية ، فقم بتعيين عائلة خطوط
sans-serif
الافتراضية علىRoboto
(عائلة خطوطsans-serif
الافتراضية المستخدمة في إصدارات AOSP).قم بتشغيل إعداد الموقع إذا كانت هناك ميزة GPS أو Wi-Fi / شبكة خلوية على الجهاز: الإعدادات> الموقع> تشغيل .
اتصل بشبكة Wi-Fi تدعم IPv6 ، ويمكنها التعامل مع DUT كعميل منفصل (انظر البيئة المادية أعلاه) ، ولديه اتصال بالإنترنت: الإعدادات> Wi-Fi .
تأكد من عدم تعيين نمط قفل أو كلمة مرور على الجهاز: الإعدادات> الأمان> قفل الشاشة> لا شيء .
قم بتمكين تصحيح أخطاء USB على جهازك: الإعدادات> خيارات المطور> تصحيح أخطاء USB .
اضبط الوقت على تنسيق 12 ساعة: الإعدادات> التاريخ والوقت> استخدام تنسيق 24 ساعة> إيقاف .
اضبط الجهاز ليظل مستيقظًا: الإعدادات> خيارات المطور> البقاء مستيقظًا> تشغيل .
في الإصدارين Android 5.x و 4.4.x فقط ، اضبط الجهاز للسماح بمواقع وهمية: الإعدادات> خيارات المطور> السماح بمواقع وهمية> تشغيل .
في Android 4.2 أو أحدث ، أوقف تشغيل التحقق من تطبيق USB: الإعدادات> خيارات المطور> التحقق من التطبيقات عبر USB> إيقاف التشغيل .
في نظام Android 13 أو إصدار أحدث ، اضبط الجهاز للسماح بمودم وهمي: الإعدادات> خيارات المطور> السماح بمودم Mock> تشغيل .
قم بتشغيل المتصفح وتجاهل أي شاشة بدء تشغيل / إعداد.
قم بتوصيل جهاز سطح المكتب الذي سيتم استخدامه لاختبار الجهاز باستخدام كبل USB.
قبل تشغيل CTS ، اضبط Roboto2 على أنه خط sans-serif باستخدام إعداد تكلفة يمكن الوصول إليه من قبل المستخدم (غير مخفي).
تثبيت الملف
تثبيت وتكوين التطبيقات المساعدة على الجهاز.
قم بإعداد جهازك وفقًا لإصدار CTS الخاص بك:
إصدارات CTS 2.1 R2 إلى 4.2 R4: قم بإعداد جهازك (أو المحاكي) لإجراء اختبارات إمكانية الوصول باستخدام:
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
على الجهاز ، قم بتمكين التفويض: الإعدادات> إمكانية الوصول> إمكانية الوصول> تفويض خدمة إمكانية الوصول .
إصدارات CTS 6.x أو أقل: على الأجهزة التي تعلن عن
android.software.device_admin
، قم بإعداد جهازك لتشغيل اختبار إدارة الجهاز باستخدام:adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`
في الإعدادات> الأمان> حدد مسؤولي الجهاز ، قم بتمكين مسؤولي الجهاز
android.deviceadmin.cts.CtsDeviceAdminReceiver*
. تأكد من استمرار تعطيلandroid.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver
وأي مسؤولي أجهزة محملين مسبقًا.
انسخ ملفات وسائط CTS إلى الجهاز كما يلي:
- انتقل (
cd
) إلى المسار حيث يتم تنزيل ملفات الوسائط وفك ضغطها. قم بتغيير أذونات الملف:
chmod u+x copy_media.sh
انسخ الملفات الضرورية:
لنسخ مقاطع بدقة تصل إلى 720 × 480 ، قم بتشغيل:
./copy_media.sh 720x480
إذا لم تكن متأكدًا من الحد الأقصى للدقة ، فانسخ جميع الملفات:
./copy_media.sh all
إذا كانت هناك عدة أجهزة ضمن adb ، فقم بإضافة الخيار التسلسلي (
-s
) لجهاز معين إلى النهاية. على سبيل المثال ، لنسخ ما يصل إلى 720 × 480 إلى الجهاز ذي الرقم التسلسلي 1234567 ، قم بتشغيل:./copy_media.sh 720x480 -s 1234567
- انتقل (