相机扩展验证工具

相机扩展验证工具允许设备制造商验证相机扩展 OEM 供应商库是否正确实施。该工具包括自动和手动验证测试。

  • 自动验证测试:验证供应商库接口是否正确实现。例如,如果图像捕获需要CaptureProcessor ,则测试验证ImageCaptureExtenderImpl#getCaptureStages()返回捕获图像所需的CaptureStage实例。

  • 手动验证测试:验证预览和捕获图像的图像效果和质量。例如,这些测试允许设备制造商手动验证面部修饰效果是否应用正确或散景强度是否足够。

验证工具的源代码是Android Jetpack 存储库扩展测试应用程序的一部分。

构建相机扩展验证工具

要构建扩展验证工具,请执行以下步骤:

  1. 下载 Android Jetpack 库源代码。有关详细信息,请参阅Android Jetpack 自述文件检查代码部分。

  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
    

运行自动验证测试

要运行自动验证测试,请安装extensionstestappandroidTest 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结果。否则,最终测试报告会在所有测试完成后显示终端故障。

自动验证结果通过

图 1.自动化测试 OK 结果

自动验证结果失败

图 2.失败的自动化测试结果

运行特定类的自动化测试

要运行特定类的自动化测试,请指定目标类的名称和路径。以下示例显示了为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

图 3.验证工具模式

点击其中一个摄像头以查看用于测试的扩展模式。所选摄像机不支持的扩展模式显示为灰色。

extension_mode_validation_result-initial

图 4.相机可用的扩展模式

验证预览结果

要验证预览结果,请通过点击所选相机的扩展模式来开始手动测试。然后显示包含预览的图像捕获活动。

预览-bokeh_enabled

图 5.启用散景的预览图像

图像捕获活动支持以下功能:

  • 放大/缩小
  • 点击对焦
  • 闪光模式切换按钮
  • 电动汽车 +/-
  • 扩展启用/禁用切换按钮

验证放大/缩小、点击对焦、闪光模式和 EV +/- 功能在预览中是否按预期工作。

验证捕获的图像结果

要捕获图像,请点击图像捕获活动中的CAPTURE按钮(圆形按钮)。这将启动显示捕获图像的图像验证活动。

photo_viewer-bokeh_enabled

图 6.启用散景的捕获图像

图像验证活动包括以下功能:

  • 收缩/收缩以缩放图像
  • 左右滑动切换拍摄的图像
  • 夺回
  • 保存图像菜单项

验证捕获的图像是否正确并与捕获图像时设置的放大/缩小、点击对焦、闪光模式和 EV +/- 设置相匹配。

如果捕获的结果正确,请点击右下角的通过按钮(复选标记)。否则,请点击左下角的FAIL按钮(感叹号)。

查看测试结果

扩展模式被验证为通过或失败后,扩展模式的列表项显示不同的背景颜色和指示符。在所有摄像机的列表视图中,项目以下列颜色显示:

  • 白色背景:相机至少支持一种扩展模式,并且支持的扩展模式未完全验证。
  • 绿色背景:相机至少支持一种扩展模式。所有支持的扩展模式都经过验证,所有结果都通过了。
  • 红色背景:相机至少支持一种扩展模式。所有支持的扩展模式都经过验证,至少有一个扩展模式结果失败。
  • 灰色背景:此功能不可用。

camera_validation_resultextension_mode_validation_result

图 7.表示相机和扩展模式测试结果的颜色

其他验证工具功能

在所有测试完成后,相机列表活动提供以下功能:

  • 导出测试结果:将测试结果作为 CSV 文件导出到Documents/ExtensionsValidation文件夹。
  • 重置:清除所有缓存的测试结果。
  • 扩展示例应用:切换到扩展示例应用模式。

完成测试后,您可以导出测试结果。如果您发现问题并且需要再次验证带有解决方案的供应商库实施的新版本,请重置之前的测试结果并在所有相机上重新运行所有支持的扩展模式,以验证问题是否已修复。