Herramienta de validación de extensiones de la cámara

La herramienta de validación de extensiones de la cámara permite que los fabricantes de dispositivos verifiquen que la biblioteca de proveedores de OEM de Camera Extensions se implementó correctamente. La herramienta incluye pruebas de validación automatizadas y manuales.

  • Pruebas de validación automatizadas: Validan que la interfaz de la biblioteca del proveedor se implemente correctamente. Por ejemplo, si CaptureProcessor es necesario 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 manual: Valida los efectos de imagen y la calidad de las imágenes de vista previa y las imágenes capturadas. Por ejemplo, las pruebas permiten que los fabricantes de dispositivos validen 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 app de prueba de extensiones en el repositorio de Android Jetpack.

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

Para compilar la herramienta de validación de extensiones, sigue estos pasos:

  1. Descarga el código fuente de la biblioteca de Android Jetpack. Para obtener más información, consulta la sección Cómo extraer el código del README de Android Jetpack.

  2. Compila el APK de 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 genera en la siguiente ruta de acceso:

      path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
    
  3. Compila el APK de 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 genera en la siguiente ruta de acceso:

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

Ejecuta pruebas de validación automatizadas

Para ejecutar las pruebas de validación automatizadas, instala los APKs 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

Ejecuta todas las pruebas automatizadas

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

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

Si se superan todas las pruebas, se muestra un resultado OK. De lo contrario, el informe de prueba final mostrará errores en la terminal después de que se completen todas las pruebas.

automated_validation_result-pass

Figura 1: Resultado OK de las pruebas automatizadas

automated_validation_result-fail

Figura 2: Las pruebas automatizadas arrojan errores

Cómo ejecutar pruebas automatizadas de una clase específica

Para ejecutar pruebas automatizadas de una clase específica, especifica el nombre y la ruta de acceso de la clase objetivo. En el siguiente ejemplo, se muestra el comando para ejecutar pruebas en 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

Ejecuta pruebas de validación manuales

Las pruebas de validación manual se encuentran en la app de prueba de extensiones. Después de instalar y ejecutar la app de prueba de extensiones, cambia al modo de herramienta de validación. Para ello, presiona el elemento de menú en la parte superior derecha.

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

camera_validation_result-initial

Figura 3: Modo de la herramienta de validación

Presiona una de las cámaras para ver los modos de extensión que se pueden probar. Los modos de extensión que no admite la cámara seleccionada se muestran en gris.

extension_mode_validation_result-initial

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

Verifica los resultados de la vista previa

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

preview-bokeh_enabled

Figura 5: Imagen de vista previa con bokeh habilitado

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

  • Acercar/Alejar
  • Presionar para enfocar
  • Botón para cambiar los modos del flash
  • EV +/-
  • Botón de activación o desactivación de la extensión

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

Verifica los resultados de la imagen capturada

Para capturar la imagen, presiona 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 el efecto bokeh habilitado

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

  • Pellizca para acercar o alejar la imagen.
  • Desliza el dedo hacia la izquierda o la derecha para cambiar las imágenes capturadas.
  • Volver a capturar
  • Elemento de menú para guardar la imagen

Verifica si la imagen capturada es correcta y coincide con el acercamiento/alejamiento, el enfoque con un toque, los modos de flash y los ajustes de EV +/- que se establecieron cuando se capturó la imagen.

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

Consulta los resultados de la prueba

Después de que se verifica un modo de extensión como aprobado o rechazado, el elemento de lista del 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 se validan por completo.
  • Fondo verde: La cámara admite al menos un modo de extensión. Se validan todos los modos de extensión admitidos y se aprueban todos los resultados.
  • Fondo rojo: La cámara admite al menos un modo de extensión. Todos los modos de extensión admitidos se validan con al menos un resultado de modo de extensión que falla.
  • Fondo gris: Esta función no está disponible.

camera_validation_result extension_mode_validation_result

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

Otras funciones de la herramienta de validación

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

  • Export test results: 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é.
  • App de ejemplo de extensiones: Cambia al modo de la app de ejemplo de extensiones.

Después de completar las pruebas, puedes exportar los resultados. Si encuentras un problema y es necesario volver a verificar una nueva versión de la implementación de la biblioteca del proveedor con las soluciones, restablece los resultados de la prueba anterior y vuelve a ejecutar todos los modos de extensión admitidos en todas las cámaras para verificar que los problemas se hayan solucionado.