ابزار اعتبارسنجی افزونههای دوربین به تولیدکنندگان دستگاه اجازه میدهد تا تأیید کنند که کتابخانه فروشنده افزونههای دوربین OEM به درستی پیادهسازی شده است. این ابزار شامل تستهای اعتبارسنجی خودکار و دستی است.
تستهای اعتبارسنجی خودکار: تأیید میکنند که رابط کتابخانه فروشنده به درستی پیادهسازی شده است. برای مثال، اگر
CaptureProcessorبرای ضبط تصویر مورد نیاز باشد، تستها تأیید میکنند کهImageCaptureExtenderImpl#getCaptureStages()نمونههایCaptureStageمورد نیاز برای ضبط تصاویر را برمیگرداند.آزمونهای اعتبارسنجی دستی: جلوههای تصویری و کیفیت تصاویر پیشنمایش و گرفتهشده را اعتبارسنجی کنید. به عنوان مثال، این آزمونها به تولیدکنندگان دستگاه اجازه میدهند تا به صورت دستی اعتبارسنجی کنند که آیا جلوه روتوش صورت به درستی اعمال شده است یا خیر یا اینکه آیا قدرت بوکه کافی است یا خیر.
کد منبع ابزار اعتبارسنجی بخشی از برنامه تست افزونهها در مخزن Android Jetpack است.
ابزار اعتبارسنجی افزونههای دوربین را بسازید
برای ساخت ابزار اعتبارسنجی افزونهها، مراحل زیر را دنبال کنید:
کد منبع کتابخانه Android Jetpack را دانلود کنید. برای جزئیات بیشتر، به بخش «بررسی کد» در فایل راهنمای جاوای Android Jetpack مراجعه کنید.
فایل APK
extensionstestappرا بسازید. این کار امکان اجرای تستهای اعتبارسنجی دستی را فراهم میکند.cd path/to/checkout/frameworks/support/./gradlew camera:integration-tests:camera-testapp-extensions:assembleDebugفایل APK در مسیر زیر خروجی داده میشود:
path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apkفایل
androidTestAPK را بسازید. این فایل APK امکان اجرای تستهای اعتبارسنجی خودکار را فراهم میکند.cd path/to/checkout/frameworks/support/./gradlew camera:integration-tests:camera-testapp-extensions:assembleAndroidTestفایل APK در مسیر زیر خروجی داده میشود:
path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/androidTest/debug/camera-testapp-extensions-debug-androidTest.apk
اجرای تستهای اعتبارسنجی خودکار
برای اجرای تستهای اعتبارسنجی خودکار، فایلهای APK مربوط extensionstestapp و androidTest را نصب کنید.
extensionstestappAPKadb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apkandroidTestAPKadb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/androidTest/debug/camera-testapp-extensions-debug-androidTest.apk
اجرای تمام تستهای خودکار
پس از نصب APKها، برای اجرای تمام تستهای خودکار جهت اعتبارسنجی پیادهسازی کتابخانه فروشنده، دستور زیر را اجرا کنید:
adb shell am instrument -w -r androidx.camera.integration.extensions.test/androidx.test.runner.AndroidJUnitRunnerاگر همه آزمایشها با موفقیت انجام شوند، نتیجه OK برگردانده میشود. در غیر این صورت، گزارش نهایی آزمایش، پس از اتمام همه آزمایشها، شکستها را در ترمینال نشان میدهد.

شکل ۱. نتایج تستهای خودکار تایید شد

شکل ۲. نتایج تستهای خودکار با شکست مواجه میشوند
اجرای تستهای خودکار از یک کلاس خاص
برای اجرای تستهای خودکار یک کلاس خاص، نام و مسیر کلاس هدف را مشخص کنید. مثال زیر دستور اجرای تستها برای کلاس ImageCaptureTest را نشان میدهد:
adb shell am instrument -w -r -e class **androidx.camera.integration.extensions.ImageCaptureTest** androidx.camera.integration.extensions.test/androidx.test.runner.AndroidJUnitRunnerاجرای تستهای اعتبارسنجی دستی
تستهای اعتبارسنجی دستی در برنامهی تست افزونهها یافت میشوند. پس از نصب و اجرای برنامهی تست افزونهها، با ضربه زدن روی گزینهی منو در بالا سمت راست، به حالت ابزار اعتبارسنجی بروید.
پس از تغییر به حالت ابزار اعتبارسنجی، صفحه اول تمام دوربینهایی را که شامل قابلیت REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE هستند، فهرست میکند. اگر دوربینی از هیچ حالت افزونهای پشتیبانی نکند، آیتم لیست مربوطه خاکستری است.

شکل ۳. حالت ابزار اعتبارسنجی
برای مشاهده حالتهای توسعه برای آزمایش، روی یکی از دوربینها ضربه بزنید. حالتهای توسعهای که توسط دوربین انتخابشده پشتیبانی نمیشوند، با رنگ خاکستری نشان داده شدهاند.

شکل ۴. حالتهای توسعه موجود برای یک دوربین
نتایج پیشنمایش را تأیید کنید
برای تأیید نتایج پیشنمایش، با ضربه زدن روی حالت توسعه برای دوربین انتخابشده، یک آزمایش دستی را آغاز کنید. سپس یک فعالیت ضبط تصویر حاوی پیشنمایش نشان داده میشود.

شکل ۵. پیشنمایش تصویر با فعال بودن بوکه
فعالیت ضبط تصویر از عملکردهای زیر پشتیبانی میکند:
- بزرگنمایی/کوچکنمایی
- ضربه برای فوکوس
- دکمه تغییر حالتهای فلاش
- EV +/-
- دکمه سوئیچ فعال/غیرفعال کردن افزونه
تأیید کنید که عملکردهای بزرگنمایی/کوچکنمایی، فوکوس با ضربه، حالتهای فلاش و EV +/- همانطور که در پیشنمایش انتظار میرود، کار میکنند.
نتایج تصویر گرفته شده را تأیید کنید
برای گرفتن تصویر، روی دکمه CAPTURE (دکمه گرد) در فعالیت ضبط تصویر ضربه بزنید. این یک فعالیت اعتبارسنجی تصویر را اجرا میکند که تصویر گرفته شده را نشان میدهد.

شکل ۶. تصویر گرفته شده با فعال بودن بوکه
فعالیت اعتبارسنجی تصویر شامل توابع زیر است:
- برای مقیاسبندی تصویر، انگشت خود را به داخل/خارج بکشید
- برای تغییر تصاویر گرفته شده، به چپ/راست بکشید
- بازپسگیری
- مورد منوی ذخیره تصویر
بررسی کنید که آیا تصویر گرفته شده صحیح است و با تنظیمات بزرگنمایی/کوچکنمایی، فوکوس با ضربه، حالتهای فلاش و EV +/- که هنگام گرفتن تصویر تنظیم شدهاند، مطابقت دارد یا خیر.
اگر نتایج ثبت شده صحیح است، روی دکمهی «قبول» (علامت تیک) در گوشهی پایین سمت راست ضربه بزنید. در غیر این صورت، روی دکمهی «مردود » (علامت تعجب) در گوشهی پایین سمت چپ ضربه بزنید.
مشاهده نتایج آزمون
پس از اینکه یک حالت توسعه به عنوان موفق یا ناموفق تأیید شد، آیتم لیست مربوط به حالت توسعه با رنگ پسزمینه و نشانگر متفاوتی نمایش داده میشود. در نمای لیست همه دوربینها، آیتمها با رنگهای زیر نمایش داده میشوند:
- پسزمینه سفید: دوربین حداقل از یک حالت توسعه پشتیبانی میکند و حالتهای توسعه پشتیبانیشده بهطور کامل اعتبارسنجی نشدهاند.
- پسزمینه سبز: دوربین حداقل از یک حالت توسعه پشتیبانی میکند. تمام حالتهای توسعه پشتیبانیشده با قبول شدن نتایج، اعتبارسنجی شدهاند.
- پسزمینه قرمز: دوربین حداقل از یک حالت توسعه پشتیبانی میکند. تمام حالتهای توسعه پشتیبانیشده با حداقل یک نتیجه ناموفق در حالت توسعه اعتبارسنجی شدهاند.
- پسزمینه خاکستری: این ویژگی در دسترس نیست.


شکل ۷. رنگهایی که نتایج آزمایش را برای دوربینها و حالتهای توسعه نشان میدهند
سایر توابع ابزار اعتبارسنجی
پس از اتمام تمام آزمایشها، فعالیت فهرست دوربین عملکردهای زیر را ارائه میدهد:
- خروجی گرفتن از نتایج آزمون: نتایج آزمون را به صورت یک فایل CSV به پوشه
Documents/ExtensionsValidationخروجی میگیرد. - تنظیم مجدد: تمام نتایج آزمایش ذخیره شده در حافظه پنهان را پاک میکند.
- برنامه نمونه افزونهها: به حالت برنامه نمونه افزونهها میرود.
پس از اتمام آزمایش، میتوانید نتایج آزمایش را صادر کنید. اگر مشکلی پیدا کردید و نیاز به تأیید مجدد نسخه جدیدی از پیادهسازی کتابخانه فروشنده به همراه راهحلها بود، نتایج آزمایش قبلی را مجدداً تنظیم کنید و تمام حالتهای توسعه پشتیبانیشده را روی همه دوربینها دوباره اجرا کنید تا تأیید شود که مشکلات برطرف شدهاند.