ابزار اعتبارسنجی افزونه‌های دوربین

ابزار اعتبارسنجی افزونه‌های دوربین به سازندگان دستگاه امکان می‌دهد درستی پیاده‌سازی کتابخانه فروشنده OEM افزونه‌های دوربین را تأیید کنند. این ابزار شامل آزمایش‌های اعتبارسنجی خودکار و دستی است.

  • آزمایش‌های اعتبارسنجی خودکار: تأیید می‌کند که میانای کتابخانه فروشنده به‌درستی پیاده‌سازی شده است. برای مثال، اگر CaptureProcessor برای ضبط تصویر لازم باشد، آزمایش‌ها تأیید می‌کنند که ImageCaptureExtenderImpl#getCaptureStages() نمونه‌های CaptureStage لازم را برای ضبط تصاویر برمی‌گرداند.

  • آزمایش‌های اعتبارسنجی دستی: جلوه‌های تصویر و کیفیت تصاویر پیش‌نمایش و ضبط‌شده را اعتبارسنجی کنید. برای مثال، این آزمایش‌ها به سازندگان دستگاه اجازه می‌دهد به‌صورت دستی تأیید کنند که آیا جلوه روتوش چهره به‌درستی اعمال شده است یا اینکه قدرت بوکه کافی است یا نه.

کد منبع ابزار اعتبارسنجی بخشی از برنامه آزمایشی افزونه‌ها در مخزن Android Jetpack است.

ساختن ابزار اعتبارسنجی افزونه‌های دوربین

برای ساختن ابزار اعتبارسنجی افزونه‌ها، این مراحل را دنبال کنید:

  1. کد منبع کتابخانه Android Jetpack را بارگیری کنید. برای جزئیات، بخش بررسی کد در Android Jetpack README را ببینید.

  2. فایل extensionstestapp ‏APK را بسازید. این کار امکان اجرای آزمایش‌های اعتبارسنجی دستی را فراهم می‌کند.

      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
    
  3. فایل androidTest ‏APK را بسازید. این 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
    

اجرای آزمایش‌های خودکارسازی‌شده برای اعتبارسنجی

برای اجرای آزمایش‌های اعتبارسنجی خودکارسازی‌شده، فایل‌های extensionstestapp و androidTest APK را نصب کنید.

  • extensionstestapp APK

      adb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
  • androidTest APK

      adb 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 برگردانده می‌شود. درغیراین‌صورت، گزارش آزمایش نهایی پس‌از تکمیل همه آزمایش‌ها، موارد ناموفق را در پایانه نشان می‌دهد.

automated_validation_result-pass

شکل ۱. نتیجه «قبول» در آزمایش‌های خودکار

automated_validation_result-fail

شکل ۲. نتیجه آزمایش‌های خودکار با شکست مواجه شد

اجرای آزمایش‌های خودکار برای کلاسی خاص

برای اجرای آزمایش‌های خودکار کلاس خاص، نام و مسیر کلاس هدف را مشخص کنید. مثال زیر فرمان اجرای آزمایش‌ها را برای کلاس 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 هستند فهرست می‌کند. اگر دوربینی از هیچ حالت برافزایی پشتیبانی نکند، مورد فهرست مربوط به آن خاکستری است.

camera_validation_result-initial

شکل ۳. حالت ابزار اعتبارسنجی

روی یکی از دوربین‌ها تک‌ضرب بزنید تا حالت‌های افزونه را برای آزمایش ببینید. حالت‌های افزونه‌ای که دوربین انتخابی پشتیبانی نمی‌کند به‌رنگ خاکستری نشان داده می‌شود.

extension_mode_validation_result-initial

شکل ۴. حالت‌های افزونه دردسترس برای دوربین

درستی‌سنجی نتایج پیش‌نمایش

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

preview-bokeh_enabled

شکل ۵. پیش‌نمایش تصویر با بوکه فعال

فعالیت ضبط تصویر از عملکردهای زیر پشتیبانی می‌کند:

  • زوم‌پیش/ زوم‌پس کردن
  • تک‌ضرب زدن برای فوکوس کردن
  • دکمه تعویض حالت‌های فلاش
  • ‫EV +/-
  • دکمه عوض کردن فعال/غیرفعال کردن افزونه

تأیید کنید که عملکردهای زوم‌پیش/زوم‌پس، ضربه برای فوکوس، حالت‌های فلاش، و EV +/- در پیش‌نمایش طبق انتظار کار می‌کنند.

نتایج تصویر ضبط‌شده را به‌تأیید برسانید

برای ضبط تصویر، روی دکمه ضبط (دکمه گرد) در فعالیت ضبط تصویر تک‌ضرب بزنید. این کار فعالیت اعتبارسنجی تصویری را راه‌اندازی می‌کند که تصویر ضبط‌شده را نشان می‌دهد.

photo_viewer-bokeh_enabled

شکل ۶. تصویر ضبط‌شده با بوکه فعال

فعالیت اعتبارسنجی تصویر شامل عملکردهای زیر است:

  • برای تغییر اندازه تصویر، انگشتان را ازهم دور یا به‌هم نزدیک کنید
  • برای جابه‌جایی بین تصاویر ثبت‌شده، به چپ/راست بلغزانید
  • بازپس‌گیری
  • گزینه منو ذخیره کردن تصویر

بررسی کنید که آیا تصویر گرفته‌شده صحیح است و با تنظیمات بزرگ‌نمایی/کوچک‌نمایی، ضربه زدن برای فوکوس، حالت‌های فلاش، و EV +/- که هنگام گرفتن تصویر تنظیم شده‌اند مطابقت دارد یا نه.

اگر نتایج ضبط‌شده صحیح است، روی دکمه قبول (علامت تیک) در گوشه پایین سمت چپ تک‌ضرب بزنید. درغیراین‌صورت، روی دکمه رد (علامت تعجب) در گوشه پایین سمت راست تک‌ضرب بزنید.

مشاهده نتایج آزمایش

پس‌از اینکه حالت افزونه به‌عنوان قبولی یا ردی تأیید شد، مورد فهرست برای حالت افزونه رنگ پس‌زمینه و نشانگر متفاوتی را نشان می‌دهد. در فهرست نمای همه دوربین‌ها، موارد با رنگ‌های زیر نمایش داده می‌شوند:

  • پس‌زمینه سفید: دوربین حداقل از یک حالت افزونه پشتیبانی می‌کند و حالت‌های افزونه پشتیبانی‌شده کاملاً اعتبارسنجی نشده‌اند.
  • پس‌زمینه سبز: دوربین از حداقل یک حالت گسترش پشتیبانی می‌کند. همه حالت‌های افزونه پشتیبانی‌شده با همه نتایج موفقیت‌آمیز تأیید می‌شوند.
  • پس‌زمینه قرمز: دوربین حداقل از یک حالت افزونه پشتیبانی می‌کند. همه حالت‌های افزونه پشتیبانی‌شده با حداقل یک نتیجه حالت افزونه ناموفق اعتبارسنجی می‌شوند.
  • پس‌زمینه خاکستری: این ویژگی دردسترس نیست.

camera_validation_result extension_mode_validation_result

شکل ۷. رنگ‌هایی که نتایج آزمایش دوربین‌ها و حالت‌های افزونه را نشان می‌دهند

عملکردهای دیگر ابزار اعتبارسنجی

پس‌از تکمیل همه آزمایش‌ها، فعالیت فهرست دوربین عملکردهای زیر را ارائه می‌دهد:

  • صادر کردن نتایج آزمایش: نتایج آزمایش را به‌صورت فایل CSV به پوشه Documents/ExtensionsValidation صادر می‌کند.
  • بازنشانی: همه نتایج آزمایش ذخیره‌شده در حافظه نهان را پاک می‌کند.
  • برنامه نمونه افزونه‌ها: به حالت برنامه نمونه افزونه‌ها تغییر می‌کند.

پس‌از تکمیل آزمایش، می‌توانید نتایج آزمایش را صادر کنید. اگر مشکلی پیدا کردید و نسخه جدیدی از پیاده‌سازی کتابخانه فروشنده با راه‌حل‌ها باید دوباره درستی‌سنجی شود، نتایج آزمایش قبلی را بازنشانی کنید و همه حالت‌های افزونه پشتیبانی‌شده را در همه دوربین‌ها دوباره اجرا کنید تا مطمئن شوید مشکلات برطرف شده‌اند.