La herramienta de validación de extensiones de cámara permite a los fabricantes de dispositivos verificar que la biblioteca del proveedor de OEM de extensiones de cámara se implemente correctamente. La herramienta incluye pruebas de validación automáticas y manuales.
Pruebas de validación automatizadas: Valida 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 queImageCaptureExtenderImpl#getCaptureStages()
devuelve las instancias deCaptureStage
necesarias para capturar las imágenes.Pruebas de validación manual: Valida los efectos de las imágenes y la calidad de las imágenes capturadas y de la vista previa. 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 desenfoque 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:
Descarga el código fuente de la biblioteca de Android Jetpack. Para obtener más información, consulta la sección Cómo revisar el código del archivo readme de Android Jetpack.
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 envía a 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
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 envía a 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
.
APK de
extensionstestapp
adb install -r path/to/checkout/out/androidx/camera/integration-tests/camera-testapp-extensions/build/outputs/apk/debug/camera-testapp-extensions-debug.apk
APK de
androidTest
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 que validen 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á fallas en la terminal después de que se completen todas las pruebas.
Figura 1: Resultado correcto de las pruebas automatizadas
Figura 2: Las pruebas automatizadas generan errores
Ejecuta 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 de destino. En el siguiente ejemplo, se muestra el comando para ejecutar pruebas de 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 lanzar la app de prueba de extensiones, presiona el elemento de menú en la parte superior derecha para cambiar al modo de herramienta de validación.
Después de cambiar al modo de herramienta de validación, la primera página muestra todas las cámaras que contienen la función REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE
. Si una cámara no admite ningún modo de extensión, su elemento de lista correspondiente aparecerá en gris.
Figura 3: Modo de la herramienta de validación
Presiona una de las cámaras para ver los modos de extensión y probarlos. Los modos de extensión que no son compatibles con la cámara seleccionada se muestran en gris.
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 presionando 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.
Figura 5: Vista previa de la imagen con el efecto bokeh habilitado
La actividad de captura de imágenes admite las siguientes funciones:
- Acercar/Alejar
- Presionar para enfocar
- Botón de cambio de modos de flash
- VE +/-
- Botón de interruptor de extensión habilitada o inhabilitada
Verifica que las funciones de zoom, presionar 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. Se iniciará una actividad de validación de imágenes que mostrará la imagen capturada.
Figura 6: Imagen capturada con 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.
- Reabastecimiento
- Elemento de menú Guardar imagen
Verifica si la imagen capturada es correcta y coincide con el zoom, el enfoque con un toque, los modos de flash y la configuración 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 (exclamación) en la esquina inferior izquierda.
Consulta los resultados de la prueba
Después de que se verifica que un modo de extensión es aprobado o rechazado, el elemento de la 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 compatibles no se validan por completo.
- Fondo verde: La cámara admite al menos un modo de extensión. Todos los modos de extensión admitidos se validan con todos los resultados aprobados.
- 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.
Figura 7: Colores que indican los resultados de las pruebas de cámaras y modos de extensión
Otras funciones de la herramienta de validación
Una vez que se completen todas las pruebas, la actividad de la lista de cámaras proporcionará 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é.
- App de ejemplo de extensiones: Cambia al modo de app de ejemplo de extensiones.
Después de completar las pruebas, puedes exportar los resultados. Si encuentras un problema y se debe volver a verificar una versión nueva 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 compatibles en todas las cámaras para verificar que se hayan solucionado los problemas.