Herramienta de validación de extensiones de cámara

La herramienta de validación de extensiones de cámara permite a los fabricantes de dispositivos verificar que la biblioteca del proveedor OEM de extensiones de cámara esté implementada correctamente. La herramienta incluye pruebas de validación automatizadas y manuales.

  • Pruebas de validación automatizadas: valide que la interfaz de la biblioteca del proveedor esté implementada correctamente. Por ejemplo, si se requiere CaptureProcessor para la captura de imágenes, las pruebas validan que ImageCaptureExtenderImpl#getCaptureStages() devuelva las instancias CaptureStage necesarias para capturar las imágenes.

  • Pruebas de validación manuales: valide los efectos de la imagen y la calidad de la vista previa y las imágenes capturadas. Por ejemplo, las pruebas permiten a los fabricantes de dispositivos validar manualmente si el efecto de retoque facial se aplica correctamente o si la intensidad del bokeh es suficiente.

El código fuente de la herramienta de validación forma parte de la aplicación de prueba de extensiones en el repositorio de Android Jetpack .

Cree la herramienta de validación de extensiones de cámara

Para crear la herramienta de validación de extensiones, siga estos pasos:

  1. Descargue el código fuente de la biblioteca Android Jetpack. Para obtener más información, consulte la sección Consulta del código del archivo README de Android Jetpack .

  2. Compile el APK extensionstestapp . Esto permite ejecutar pruebas de validación manuales.

      cd path/to/checkout/frameworks/support/
      ./gradlew camera:integration-tests:camera-testapp-extensions:assembleDebug
    

    El APK se envía a la siguiente ruta:

      path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
    
  3. Compile el APK androidTest . Este APK permite ejecutar pruebas de validación automatizadas.

      cd path/to/checkout/frameworks/support/
      ./gradlew camera:integration-tests:camera-testapp-extensions:assembleAndroidTest
    

    El APK se envía a la siguiente ruta:

      path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/androidTest/debug/camera-testapp-extensions-debug-androidTest.apk
    

Ejecute pruebas de validación automatizadas

Para ejecutar las pruebas de validación automatizadas, instale los APK extensionstestapp y androidTest .

  • 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
    

Ejecute todas las pruebas automatizadas

Después de instalar los APK, para ejecutar todas las pruebas automatizadas para validar la implementación de la biblioteca del proveedor, ejecute el siguiente comando:

adb shell am instrument -w -r androidx.camera.integration.extensions.test/androidx.test.runner.AndroidJUnitRunner

Si todas las pruebas pasan, se devuelve un resultado OK . De lo contrario, el informe de prueba final muestra fallas en el terminal una vez completadas todas las pruebas.

pase_resultado_validación_automatizada

Figura 1. Resultado correcto de las pruebas automatizadas

resultado_validación_automatizada-fallo

Figura 2. Resultado de pruebas automatizadas con fallas

Ejecute pruebas automatizadas de una clase específica

Para ejecutar pruebas automatizadas de una clase específica, especifique el nombre y la ruta de la clase de destino. El siguiente ejemplo muestra el comando para ejecutar pruebas para la clase ImageCaptureTest :

adb shell am instrument -w -r -e class **androidx.camera.integration.extensions.ImageCaptureTest** androidx.camera.integration.extensions.test/androidx.test.runner.AndroidJUnitRunner

Ejecute pruebas de validación manuales

Las pruebas de validación manuales se encuentran en la aplicación de prueba de extensiones . Después de instalar e iniciar la aplicación de prueba de extensiones, cambie al modo de herramienta de validación tocando el elemento del menú en la parte superior derecha.

Después de cambiar al modo de herramienta de validación, la primera página enumera todas las cámaras que contienen la capacidad REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE . Si una cámara no admite ningún modo de extensión, su elemento de lista correspondiente aparece en gris.

camera_validation_result-inicial

Figura 3. Modo de herramienta de validación

Toque una de las cámaras para ver los modos de extensión para realizar pruebas. Los modos de extensión que no son compatibles con la cámara seleccionada se muestran en gris.

extensión_modo_validación_resultado-inicial

Figura 4. Modos de extensión disponibles para una cámara

Verificar los resultados de la vista previa

Para verificar los resultados de la vista previa, inicie una prueba manual tocando un modo de extensión para la cámara seleccionada. Luego se muestra una actividad de captura de imágenes que contiene la vista previa.

vista previa-bokeh_enabled

Figura 5. Imagen de vista previa con bokeh habilitado

La actividad de captura de imágenes admite las siguientes funciones:

  • Acercar / alejar
  • Toca para enfocar
  • Botón de cambio de modos de flash
  • EV +/-
  • Botón de cambio de extensión habilitada/deshabilitada

Verifique que las funciones de acercar/alejar, tocar para enfocar, modos de flash y EV +/- funcionen como se espera en la vista previa.

Verificar los resultados de la imagen capturada

Para capturar la imagen, toque el botón CAPTURAR (el botón redondo) en la actividad de captura de imágenes. Esto inicia una actividad de validación de imágenes que muestra la imagen capturada.

photo_viewer-bokeh_enabled

Figura 6. Imagen capturada con bokeh habilitado

La actividad de validación de imágenes incluye las siguientes funciones:

  • Pellizque hacia adentro o hacia afuera para escalar la imagen
  • Deslice hacia la izquierda/derecha para cambiar las imágenes capturadas
  • Reconquista
  • Guardar elemento de menú de imagen

Verifique si la imagen capturada es correcta y coincide con la configuración de acercar/alejar, tocar para enfocar, modos de flash y EV +/- que se establecieron al capturar la imagen.

Si los resultados capturados son correctos, toque el botón PASAR (marca de verificación) en la esquina inferior derecha. De lo contrario, toque el botón FAIL (signo de exclamación) en la esquina inferior izquierda.

Ver resultados de la prueba

Después de verificar que un modo de extensión es correcto o fallido, el elemento de la lista para el modo de extensión muestra un color de fondo y un indicador diferentes. En la vista de lista de todas las cámaras, los elementos se muestran en los siguientes colores:

  • Fondo blanco: la cámara admite al menos un modo de extensión y los modos de extensión admitidos no están validados por completo.
  • Fondo verde: la cámara admite al menos un modo de extensión. Todos los modos de extensión admitidos se validan y todos los resultados pasan.
  • Fondo rojo: la cámara admite al menos un modo de extensión. Todos los modos de extensión admitidos se validan y al menos un resultado del modo de extensión falla.
  • Fondo gris: esta función no está disponible.

resultado_validación_cámaraextensión_modo_validación_resultado

Figura 7. Colores que indican los resultados de las pruebas para cámaras y modos de extensión

Otras funciones de la herramienta de validación

Una vez completadas todas las pruebas, la actividad de la lista de cámaras proporciona las siguientes funciones:

  • Exportar resultados de la prueba: exporta los resultados de la prueba como un archivo CSV a la carpeta Documents/ExtensionsValidation .
  • Restablecer: borra todos los resultados de las pruebas almacenados en caché.
  • Aplicación de muestra de extensiones: cambia al modo de aplicación de muestra de extensiones.

Después de completar la prueba, puede exportar los resultados de la prueba. Si encuentra un problema y es necesario verificar nuevamente una nueva versión de la implementación de la biblioteca del proveedor con las soluciones, restablezca los resultados de las pruebas anteriores y vuelva a ejecutar todos los modos de extensión admitidos en todas las cámaras para verificar que los problemas estén solucionados.