Mejor compatibilidad de dispositivos con CameraX

26/10/2022


Mejor compatibilidad de dispositivos con CameraX

Publicado por el equipo de Android

Mejor compatibilidad de dispositivos con CameraXCámaraX es una biblioteca de Android Jetpack que facilita la incorporación de la funcionalidad de la cámara directamente en su aplicación de Android. Es por eso que nos enfocamos en gran medida en la compatibilidad de dispositivos lista para usar, para que pueda concentrarse en lo que hace que su aplicación sea única.

En esta publicación, veremos tres formas en que CameraX facilita la vida de los desarrolladores en lo que respecta a la compatibilidad de dispositivos. Primero, echaremos un vistazo a nuestro laboratorio de pruebas de CameraX, donde probamos más de 150 teléfonos físicos todos los días. En segundo lugar, veremos Quirks, el mecanismo que usa CameraX para manejar automáticamente las inconsistencias del dispositivo. En tercer lugar, analizaremos las formas en que CameraX facilita el desarrollo de aplicaciones para teléfonos plegables.

Laboratorio de pruebas de CameraX

Un solo estante en nuestro laboratorio de pruebas de CameraX a la izquierda y, a la derecha, una imagen en movimiento del interior de un dispositivo de prueba con soporte giratorio para teléfono Mejor compatibilidad de dispositivos con CameraX
(Izquierda) Un solo bastidor en nuestro laboratorio de pruebas de CameraX. Cada gabinete de prueba contiene dos teléfonos Android idénticos para probar las cámaras delantera y trasera. (Derecha) Un GIF que muestra el interior de una carcasa de prueba, con un soporte de teléfono giratorio (para probar las orientaciones vertical y horizontal) y un gráfico de prueba de alta resolución (no se muestra en la imagen).

Construimos el Laboratorio de pruebas de CameraX para garantizar que CameraX funcione en los dispositivos Android que la mayoría de la gente tiene en sus bolsillos. El Test Lab abrió en 2019 con 52 modelos de teléfonos. Hoy, Test Lab tiene 150 modelos de teléfonos. Damos prioridad a los dispositivos con la mayor cantidad de usuarios activos diarios durante los últimos 28 días (28 DAU) y dispositivos que aprovechan una amplia gama de sistemas en un chip (SoC). El laboratorio de pruebas actualmente cubre más de 750 millones de 28DAU. También probamos muchas versiones diferentes de Android, desde Android 5.1 (Lollipop).

Para generar resultados de prueba confiables, cada modelo de teléfono tiene su propio gabinete de prueba para controlar la luz y otros factores ambientales. Cada gabinete contiene dos teléfonos del mismo modelo para simplificar la prueba de las cámaras delantera y trasera. En el lado opuesto del recinto de prueba de los teléfonos, hay un cuadro de prueba de alta resolución. Este gráfico tiene muchas pruebas estándar de la industria para los atributos de la cámara, como la corrección del color, la resolución, la nitidez y el rango dinámico. El gráfico también tiene algunos elementos específicos para pruebas funcionales como la detección de rostros.

Cuando adopta CameraX en su aplicación, obtiene la seguridad de esta prueba continua en muchos dispositivos y niveles de API. Además, realizamos mejoras continuas en Test Lab, incluida la adición de nuevos teléfonos según las tendencias del mercado para garantizar que la mayoría de sus usuarios estén bien representados. Vea nuestro actual lista de dispositivos de prueba para el último inventario en nuestro laboratorio de pruebas.

peculiaridades

Google proporciona un Suite de prueba de imagen de cámara para que las cámaras de los OEM cumplan con una línea de base de consistencia. Aún así, cuando se trata de la amplia gama de dispositivos que ejecutan Android, puede haber diferencias en la experiencia de la cámara del usuario final. CameraX incluye una capa de abstracción, llamada Quirks, para eliminar estas variaciones en el comportamiento para que CameraX se comporte de manera consistente en todos los dispositivos sin el esfuerzo de los desarrolladores de aplicaciones.

Encontramos estas peculiaridades basadas en nuestras propias pruebas manuales, las pruebas automáticas del laboratorio de pruebas y los informes de errores archivados en nuestro público. Rastreador de problemas de CameraX. A partir de hoy, CameraX tiene más de 30 Quirks que corrigen automáticamente las inconsistencias de comportamiento para los desarrolladores. Aquí están algunos ejemplos:

  • OnePixelShiftPeculiaridad: Algunos teléfonos desplazan una columna de píxeles al convertir datos YUV a RGB. CameraX corrige automáticamente esto en esos dispositivos.
  • ExtensionDisableQuirk: Para teléfonos que no admiten extensiones o tienen un comportamiento defectuoso con las extensiones, CameraX desactiva ciertas extensiones.
  • CameraUseInconsistentTimebaseQuirk: Algunos teléfonos no marcan correctamente la hora del video y el audio. CameraX corrige las marcas de tiempo para que el video y el audio se alineen correctamente.

Estos son solo algunos ejemplos de cómo CameraX maneja automáticamente el comportamiento peculiar del dispositivo. Continuaremos agregando más correcciones a medida que las encontremos, para que los desarrolladores de aplicaciones no tengan que lidiar con estas excepciones por su cuenta. Si encuentra un comportamiento inconsistente en un dispositivo que está probando, puede presentar un problema en el componente CameraX que detalla el comportamiento y el dispositivo en el que está sucediendo.

Teléfonos plegables

Los plegables siguen siendo los factor de forma de teléfono inteligente de más rápido crecimiento. Su flexibilidad en el tamaño de la pantalla agrega complejidad al desarrollo de la cámara. Aquí hay algunas formas en que CameraX simplifica el desarrollo de aplicaciones de cámara en plegables.

CámaraX Vista previa del caso de uso maneja las diferencias entre la relación de aspecto de la cámara y la relación de aspecto de la pantalla. Con factores de forma tradicionales de teléfono y tableta, esta diferencia debería ser pequeña porque Sección 7.5.5 del Documento de definición de compatibilidad de Android requiere que la "dimensión larga de la cámara se alinee con la dimensión larga de la pantalla". Sin embargo, con los dispositivos plegables, la relación de aspecto de la pantalla puede cambiar, por lo que es posible que esta relación no siempre se mantenga. Con CameraX, siempre puede conservar la relación de aspecto llenando PreviewView (que puede recortar la imagen de vista previa) o ajustando la imagen en PreviewView (que puede resultar en formato de pantalla ancha o columna). Establecer PreviewView.ScaleType para especificar qué método utilizar.

El aumento de dispositivos plegables también aumenta la posibilidad de que su aplicación pueda usarse en un entorno de múltiples ventanas. CameraX está configurado para soporte de múltiples ventanas fuera de la caja. CameraX maneja todos los aspectos de la administración del ciclo de vida por usted, incluido el caso de múltiples ventanas donde otras aplicaciones pueden tener acceso prioritario a recursos únicos, como el micrófono o la cámara. Esto significa que no se requiere ningún esfuerzo adicional por parte de los desarrolladores de aplicaciones cuando se utiliza CameraX en un entorno de múltiples ventanas.

Siempre estamos buscando más formas de mejorar CameraX para que sea aún más fácil de usar. Con respecto a los plegables, por ejemplo, estamos explorando formas de permitir que los desarrolladores llamen establecerTargetResolution() sin tener que tener en cuenta las diferentes configuraciones en las que puede estar un dispositivo plegable. Estad atentos a este blog y a nuestros Notas de la versión de CameraX para actualizaciones sobre nuevas características!

Primeros pasos con CameraX

Tenemos una serie de recursos para ayudarlo a comenzar con CameraX. El mejor punto de partida es nuestro Laboratorio de código CameraX. Si desea profundizar un poco más con CameraX, consulte nuestro muestras de código de cámara, que van desde una aplicación básica hasta funciones más avanzadas como extensiones de cámara. Para obtener una descripción general de todo lo que CameraX tiene para ofrecer, consulte nuestro Documentación de CameraX. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro Grupo de discusión CameraX.

Te puede interesar

Subir