برای اجرای CTS، ابتدا محیط فیزیکی، دستگاه دسکتاپ و دستگاه اندرویدی را که برای آزمایش استفاده می کنید آماده کنید.
محیط فیزیکی
چراغ های بلوتوث LE
اگر دستگاه تحت آزمایش (DUT) از بلوتوث LE پشتیبانی می کند، حداقل سه چراغ بلوتوث LE را در فاصله 5 متری DUT قرار دهید تا تست اسکن بلوتوث LE انجام شود. این بیکن ها نیازی به پیکربندی یا انتشار چیز خاصی ندارند و می توانند از هر نوعی باشند، از جمله iBeacon، Eddystone، یا حتی دستگاه هایی که Beacon های BLE را شبیه سازی می کنند.
فوق پهن باند
اگر DUT از باند فوق عریض (UWB) پشتیبانی می کند، دستگاه دیگری که از UWB پشتیبانی می کند باید به اندازه کافی نزدیک و جهت دار قرار گیرد تا آنتن و منطقه مرده رادیویی نداشته باشد. برای تستهای دقت فاصله، نیازهای خاص موقعیتیابی و جهتگیری وجود دارد. برای جزئیات راه اندازی، به الزامات UWB مراجعه کنید. تست UWB باید به صورت دستی اجرا شود و در خط فرمان مشخص شود که کدام دو دستگاه یک متر از هم فاصله دارند. برای جزئیات بیشتر در مورد به اشتراک گذاری که برای این آزمایش لازم است، به اشتراک گذاری محلی مراجعه کنید.
دوربین ها
هنگام اجرای دوربین CTS، از شرایط نوری معمولی با نمودار الگوی آزمایشی (مانند الگوی شطرنجی) استفاده کنید. نمودار الگوی تست را با توجه به حداقل فاصله فوکوس DUT قرار دهید تا مطمئن شوید که خیلی به لنز نزدیک نیست.
سنسورهای دوربین را به سمت صحنه ای با نور کافی هدایت کنید تا حسگرهای تحت آزمایش بتوانند به حداکثر فریم هدف پیکربندی شده در ثانیه (FPS) همانطور که در CONTROL_AE_TARGET_FPS_RANGE
مشخص شده است برسند و باقی بمانند. این برای همه حسگرهای دوربین گزارش شده توسط getCameraIdList
اعمال می شود زیرا آزمایش روی دستگاه های لیست شده تکرار می شود و عملکرد را به صورت جداگانه اندازه گیری می کند.
اگر DUT از دوربین های خارجی مانند وب کم USB پشتیبانی می کند، هنگام اجرای CTS یک دوربین خارجی را وصل کنید. در غیر این صورت، تست های CTS با شکست مواجه می شوند.
GPS/GNSS
اگر DUT از ویژگی سیستم موقعیت یابی جهانی/سیستم ماهواره ناوبری جهانی (GPS/GNSS) پشتیبانی می کند، سیگنال GPS/GNSS را در سطح سیگنال مناسب برای دریافت و محاسبه مکان GPS به DUT ارائه دهید. بخش GPS باید با ICD-GPS-200C مطابقت داشته باشد. در غیر این صورت، سیگنال GPS/GNSS می تواند از هر نوعی باشد، از جمله یک شبیه ساز ماهواره یا یک تکرار کننده GPS/GNSS سیگنال های فضای باز، یا می توانید DUT را به اندازه کافی نزدیک پنجره قرار دهید تا بتواند مستقیماً سیگنال GPS/GNSS کافی را دریافت کند.
Wi-Fi و IPv6
تستهای CTS به یک شبکه Wi-Fi نیاز دارند که از IPv4 و IPv6 پشتیبانی میکند، دارای یک اتصال اینترنتی با DNS فعال برای IPv4 و IPv6 است، از IP multicast پشتیبانی میکند و میتواند با 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 STA/STA Concurrency پشتیبانی میکنند، چندین شبکه Wi-Fi (حداقل 2) مورد نیاز است. برای عبور از CTS، شبکههای Wi-Fi باید روی باندهای مختلف با SSIDهای مختلف یا روی یک SSID با BSSIDهای مختلف اجرا شوند.
وای فای RTT
اندروید شامل Wi-Fi RTT API برای قابلیت زمان رفت و برگشت Wi-Fi (RTT) است. این به دستگاه ها اجازه می دهد تا فاصله خود را تا نقاط دسترسی با دقت 1 تا 2 متر اندازه گیری کنند و به طور قابل توجهی دقت مکان داخلی را افزایش دهند. دو دستگاه توصیه شده که از Wi-Fi RTT پشتیبانی میکنند عبارتند از Google Wifi و نقطه دسترسی Compulab fitlet2 (پهنای باند 40 مگاهرتز در 5 گیگاهرتز تنظیم شده است).
نقاط دسترسی باید روشن شوند، اما نیازی به اتصال شبکه ندارند. لازم نیست نقاط دسترسی در کنار دستگاه آزمایش قرار گیرند، اما توصیه می شود در فاصله 40 فوتی DUT قرار گیرند. یک نقطه دسترسی معمولاً کافی است.
راه اندازی ماشین رومیزی
احتیاط : CTS از ماشین های لینوکس 64 بیتی پشتیبانی می کند. CTS در سیستم عامل ویندوز یا MacOS پشتیبانی نمی شود.
FFMPEG
بسته ffmpeg نسخه 5.1.3 (یا جدیدتر) را روی دستگاه میزبان نصب کنید.
نیاز به ماشین میزبان
حداقل نیاز برای دستگاه میزبان CTS 32 گیگابایت رم و ظرفیت دیسک 256 گیگابایت است. این برای تطبیق با افزایش تعداد موارد تست CTS و افزایش رزرو فضای پشته جاوا در Tradefed لازم است.
ADB و AAPT2
قبل از اجرای CTS، مطمئن شوید که نسخه های اخیر پل اشکال زدایی اندروید (adb) و ابزار بسته بندی دارایی اندروید (AAPT2) را نصب کرده اید و مکان آن ابزارها را به مسیر سیستم دستگاه خود اضافه کرده اید.
برای نصب ADB و AAPT2، آخرین ابزارهای پلتفرم Android SDK و ابزارهای ساخت Android SDK را از مدیر SDK Android Studio یا از ابزار خط فرمان sdkmanager دانلود کنید.
مطمئن شوید که adb
و aapt2
در مسیر سیستم شما هستند. دستور زیر فرض میکند که آرشیو بسته را در یک زیر شاخه به نام android-sdk
در فهرست اصلی خود دانلود کردهاید:
export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>
کیت توسعه جاوا برای اوبونتو
نسخه مناسب کیت توسعه جاوا (JDK) را نصب کنید.
- برای اندروید 11، OpenJDK11 را نصب کنید.
- برای اندروید 9 و اندروید 10، OpenJDK9 را نصب کنید.
- برای اندروید 7.0، 7.1، 8.0 و 8.1، OpenJDK8 را نصب کنید.
برای جزئیات، به الزامات JDK مراجعه کنید.
راه اندازی برای پشتیبانی از پایتون
با دنبال کردن دستورالعملهای نصب virtualenv
برای پلتفرم خود نصب کنید.
با فراخوانی virtualenv -h
می توانید تأیید کنید که نصب با موفقیت انجام شده است.
فایل های CTS
بستههای CTS را از Compatibility Test Suite Downloads که با نسخه Android دستگاههای شما و همه رابطهای باینری برنامه (ABI) که دستگاههای شما پشتیبانی میکنند مطابقت دارد، دانلود و باز کنید.
آخرین نسخه فایل های رسانه ای CTS را دانلود و باز کنید.
دانلود فایل های CTS مربوط به خط اصلی (اختیاری)
هنگامی که یک نسخه CTS را برای اولین بار اجرا می کنید، CTS به صورت پویا برخی از فایل های CTS مربوط به Mainline را دانلود می کند که بسته به سرعت شبکه شما حداقل 10 دقیقه به زمان اجرا اضافه می کند.
برای جلوگیری از افزایش زمان اجرای CTS، میتوانید فایلهای CTS مربوط به Mainline را قبل از اجرای نسخه CTS با پیروی از این دستورالعملها دانلود کنید:
سطح Android API را در دستگاه با اجرای:
adb shell getprop ro.build.version.sdk
دستورالعمل های موجود در اسکریپت
download_mcts.sh
را برای دانلود فایل های CTS خط اصلی دنبال کنید.بسته به سرعت شبکه شما، دانلود حداقل 10 دقیقه طول می کشد.
تشخیص دستگاه
این مرحله را دنبال کنید تا سیستم خود را برای شناسایی دستگاه خود تنظیم کنید .
محدودیت حافظه
ممکن است بخواهید حداکثر حافظه موجود را در طول اجرای آزمایشی در اسکریپت cts-tradefed افزایش دهید. برای اطلاعات بیشتر به مثال CL مراجعه کنید.
راه اندازی دستگاه اندروید
کاربر می سازد
یک دستگاه سازگار به عنوان دستگاهی با ساخت امضا شده توسط کاربر/کلید انتشار تعریف می شود. دستگاه شما باید یک تصویر سیستمی را بر اساس ساخت کاربر سازگار شناخته شده (اندروید 4.0 یا بالاتر) از کدها، برچسب ها و شماره ساخت اجرا کند.
اولین ویژگی ساخت سطح API
برخی از الزامات CTS به ساختاری که یک دستگاه در ابتدا با آن حمل شده است بستگی دارد. برای مثال، دستگاههایی که در اصل با نسخههای قبلی عرضه میشوند، ممکن است از الزامات سیستمی که برای دستگاههایی که با نسخههای بعدی عرضه میشوند، حذف شوند.
برای در دسترس قرار دادن این اطلاعات برای CTS، سازندگان دستگاه میتوانند ویژگی زمان ساخت ro.product.first_api_level
را تعریف کنند. ارزش این ویژگی اولین سطح API است که دستگاه با آن به صورت تجاری راه اندازی شد.
سازندگان دستگاه میتوانند از پیادهسازی اساسی مشترک برای راهاندازی یک محصول جدید به عنوان ارتقاء یک محصول موجود در همان گروه دستگاه، مجدداً استفاده کنند. سازندگان دستگاه می توانند به صورت اختیاری سطح API محصول موجود را روی 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
اولین سطح API برای Android 9 یا بالاتر
برای دستگاههایی که با Android 9 یا بالاتر راهاندازی میشوند، ویژگی ro.product.first_api_level
را روی یک مقدار معتبر از Codenames، Tags، و Build Numbers تنظیم کنید.
اولین سطح API برای Android 8.x یا پایین تر
برای دستگاههایی که با Android 8.x یا پایینتر راهاندازی میشوند، ویژگی ro.product.first_api_level
را برای اولین ساخت محصول از حالت تنظیم خارج کنید (حذف کنید). برای تمام ساختهای بعدی، ro.product.first_api_level
را روی مقدار صحیح سطح API تنظیم کنید. این به ویژگی اجازه می دهد تا محصول جدید را به درستی شناسایی کند و اطلاعات مربوط به اولین سطح API محصول را حفظ کند. اگر پرچم تنظیم نشده باشد، Android Build.VERSION.SDK_INT
به ro.product.first_api_level
اختصاص می دهد.
بسته های شیم CTS
Android 10 یا بالاتر شامل قالب بسته ای به نام APEX است. برای اجرای تست های CTS برای API های مدیریت APEX (مانند به روز رسانی به نسخه جدید یا گزارش APEX های فعال) باید یک بسته CtsShimApex
را روی یک پارتیشن /system
از قبل نصب کنید.
تست اعتبارسنجی APEX shim اجرای CtsShimApex
را تأیید می کند.
نیازهای ro.apex.updatable
اگر ویژگی
ro.apex.updatable
رویtrue
تنظیم شده باشد،CtsShimApex
برای همه دستگاه هایی که از مدیریت بسته APEX پشتیبانی می کنند لازم است.اگر ویژگی
ro.apex.updatable
وجود نداشته باشد یا تنظیم نشده باشد،CtsShimApex
نیازی به نصب از قبل روی دستگاه نیست.
تست اعتبارسنجی APEX shim اجرای CtsShimApex
را تأیید می کند.
CtsShim از قبل نصب و بارگذاری می کند
با شروع اندروید 11، CtsShimApex
شامل دو برنامه از پیش ساخته شده (ساخته شده از منبع ساخت ) است که هیچ کدی به جز مانیفست ندارند. CTS از این برنامه ها برای آزمایش امتیازات و مجوزها استفاده می کند.
اگر دستگاه از مدیریت بسته APEX پشتیبانی نمی کند (یعنی ویژگی ro.apex.updatable
وجود ندارد یا تنظیم نشده است)، یا اگر دستگاه دارای نسخه 10 یا پایین تر است، دو برنامه از پیش ساخته شده باید از قبل در سیستم به صورت جداگانه
اگر APEX پشتیبانی میشود، پیشنصبها برای نسخه مناسب باید بهعنوان /system/apex/com.android.apex.cts.shim.apex
قرار بگیرند.
اگر از برنامه های از پیش ساخته شده معمولی استفاده می شود، CtsShim
و CtsShimPriv
برای نسخه مناسب باید به ترتیب به عنوان /system/app/CtsShimPrebuilt.apk
و /system/priv-app/CtsShimPrivPrebuilt.apk
قرار گیرند.
جدول زیر، نصبهای پیشنصب و بارگیریهای اولیه موجود برای هر نسخه و معماری دستگاه را فهرست میکند.
نسخه دستگاه | از پیش نصب کنید (در صورت پشتیبانی از APEX) | پیش بارگیری کنید | ||
---|---|---|---|---|
ARM | x86 | ARM | x86 | |
اندروید 15 | android15-arm-release | android15-x86-release | android15-arm-CtsShim.apk | android15-x86-CtsShim.apk |
اندروید 14 | android14-arm-release | android14-x86-release | android14-arm-CtsShim.apk | android14-x86-CtsShim.apk |
اندروید 13 | android13-arm-release | android13-x86-release | android13-arm-CtsShim.apk | android13-x86-CtsShim.apk |
اندروید 12 | android12-arm-release | android12-x86-release | android12-arm-CtsShim.apk | android12-x86-CtsShim.apk |
اندروید 11 | android11-arm-release | android11-x86-release | android11-arm-CtsShim.apk | android11-x86-CtsShim.apk |
اندروید 10 | android10-release | android10-arm-CtsShim.apk | android10-x86-CtsShim.apk | |
اندروید 9، O و O-MR1 | N/A | N/A | arm-CtsShim.apk | x86-CtsShim.apk |
برای قبولی در آزمونها، برنامهها را از قبل در پوشههای مناسب روی تصویر سیستم بارگذاری کنید بدون اینکه برنامهها را دوباره امضا کنید.
اپلت نمونه
اندروید 9 API های Open Mobile را معرفی کرد. برای دستگاههایی که بیش از یک عنصر امن را گزارش میکنند، CTS موارد آزمایشی را برای تأیید رفتار Open Mobile API اضافه میکند. این موارد آزمایشی نیاز به نصب یکباره یک اپلت نمونه در عنصر امن (eSE) تعبیه شده DUT یا در سیم کارت مورد استفاده توسط DUT دارند. اپلت نمونه eSE و اپلت نمونه سیم کارت را می توان در AOSP یافت.
برای اطلاعات دقیق تر در مورد موارد تست Open Mobile API و موارد تست Access Control به تست CTS برای عنصر امن مراجعه کنید.
الزامات ذخیره سازی
تست استرس رسانه CTS نیاز دارد که کلیپهای ویدیویی در حافظه خارجی ( /sdcard
) قرار داشته باشند. اکثر کلیپ ها از Big Buck Bunny هستند که توسط بنیاد Blender تحت مجوز Creative Commons Attribution 3.0 دارای حق چاپ است.
فضای مورد نیاز به حداکثر وضوح پخش ویدئویی که توسط دستگاه پشتیبانی می شود بستگی دارد. برای نسخه پلتفرم رزولوشن های مورد نیاز به بخش 5 در سند تعریف سازگاری Android مراجعه کنید.
در اینجا الزامات ذخیره سازی با حداکثر وضوح پخش ویدیو آمده است:
- 480x360: 98 مگابایت
- 720x480: 193 مگابایت
- 1280x720: 606 مگابایت
- 1920x1080: 1863 مگابایت
صفحه نمایش و ذخیره سازی
- هر دستگاهی که صفحه نمایش تعبیه شده ندارد، باید به صفحه نمایش متصل شود.
اگر دستگاه دارای اسلات کارت حافظه است، یک کارت SD خالی را وصل کنید. برای اطمینان از اینکه می تواند از CTS عبور کند، از یک کارت SD استفاده کنید که از گذرگاه بسیار سریع (UHS) با ظرفیت SDHC یا SDXC یا کارتی با حداقل کلاس سرعت 10 یا بالاتر پشتیبانی می کند.
اگر دستگاه دارای اسلات سیم کارت است، یک سیم کارت فعال شده را به هر شیار وصل کنید. اگر دستگاه از پیامک پشتیبانی می کند، هر سیم کارت باید فیلد شماره خود را پر کند. برای دستگاههای دارای Android 12 یا بالاتر، همه سیمکارتها باید از ذخیره شمارههای تماس اختصاری (ADN) پشتیبانی کنند. کارتهای GSM و USIM با فایل اختصاصی مخابرات (DF Telecom ) این نیاز را برآورده میکنند.
توسعه دهنده UICC
برای اجرای آزمایشهای API حامل CTS، دستگاه باید از یک سیمکارت با امتیازات شرکت مخابراتی CTS استفاده کند که الزامات مشخصشده در آمادهسازی UICC را داشته باشد.
پیکربندی دستگاه اندروید
بازنشانی دستگاه به داده های کارخانه: تنظیمات > پشتیبان گیری و بازنشانی > بازنشانی به داده های کارخانه .
زبان دستگاه خود را به انگلیسی ( ایالات متحده ) تنظیم کنید: تنظیمات > زبان و ورودی > زبان .
اگر دستگاه از سفارشیسازی فونتهای پیشفرض پشتیبانی میکند، خانواده فونتهای پیشفرض
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 یا بالاتر ، دستگاه را طوری تنظیم کنید که به مودم ساختگی اجازه دهد: تنظیمات > گزینههای برنامهنویس > مجاز کردن مودم ساختگی > روشن .
مرورگر را راه اندازی کنید و هر صفحه راه اندازی/راه اندازی را رد کنید.
دستگاه رومیزی را که برای آزمایش دستگاه استفاده می شود با کابل USB وصل کنید.
قبل از اجرای CTS، Roboto2 را به عنوان فونت sans-serif با استفاده از تنظیمات affordance (نه پنهان) در دسترس کاربر تنظیم کنید.
نصب فایل
برنامه های کمکی را روی دستگاه نصب و پیکربندی کنید.
دستگاه خود را مطابق نسخه CTS خود تنظیم کنید:
نسخههای CTS 2.1 R2 تا 4.2 R4: دستگاه (یا شبیهساز) خود را برای اجرای آزمایشهای دسترسی با:
adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk
تنظیم کنیددر دستگاه، تفویض اختیار را فعال کنید: Settings > Accessibility > Accessibility > Delegating Accessibility Service .
نسخههای 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
فایل های لازم را کپی کنید:
برای کپی کردن کلیپ ها با وضوح 720x480، اجرا کنید:
./copy_media.sh 720x480
اگر از حداکثر وضوح مطمئن نیستید، همه فایل ها را کپی کنید:
./copy_media.sh all
اگر چندین دستگاه تحت adb وجود دارد، گزینه سریال (
-s
) یک دستگاه خاص را به انتها اضافه کنید. به عنوان مثال، برای کپی کردن تا 720x480 در دستگاه با سریال 1234567، اجرا کنید:./copy_media.sh 720x480 -s 1234567
- (