Mejor compatibilidad de dispositivos con CameraX

Publicado por el equipo de Android

CámaraX es una biblioteca de Jetpack para Android que facilita la integración de las funciones de la cámara directamente en su aplicación de Android. Es por eso que nos enfocamos mucho 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 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 accesorio de prueba con un soporte giratorio para teléfono
(Izquierda) Un solo bastidor en nuestro laboratorio de pruebas de CameraX. Cada caso 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 un recinto de prueba, con un soporte para teléfono giratorio (para probar la orientación vertical y horizontal) y un gráfico de prueba de alta resolución (no se muestra).

Construimos el Laboratorio de pruebas 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 en los últimos 28 días (28DAU) 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 diferentes versiones 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 verificar la luz y otros factores ambientales. Cada estuche contiene dos teléfonos del mismo modelo para que sea más fácil probar las cámaras delantera y trasera. En el lado opuesto del caso de prueba de los teléfonos, hay una tabla de prueba de alta resolución. Este gráfico contiene 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, continuamente realizamos mejoras 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.

rarezas

Google proporciona un Conjunto de prueba de imagen de cámara para que las cámaras OEM cumplan con una línea base de consistencia. Sin embargo, 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 de comportamiento para que CameraX se comporte de manera consistente en todos los dispositivos sin ningún esfuerzo por parte de los desarrolladores de aplicaciones.

Encontramos estas rarezas en base a nuestras pruebas manuales, autoevaluaciones de Test Lab e informes de errores enviados a nuestra audiencia. Detector de problemas CameraX. Hasta la fecha, CameraX tiene más de 30 Quirks que corrigen automáticamente las inconsistencias de comportamiento para los desarrolladores. Aquí hay unos ejemplos:

  • OnePixelShiftPeculiaridad: Algunos teléfonos desplazan una columna de píxeles al convertir datos YUV a RGB. CameraX corrige automáticamente este problema en esos dispositivos.
  • ExtensionDisableQuirk: Para los teléfonos que no admiten extensiones o tienen un comportamiento defectuoso con las extensiones, CameraX desactiva algunas extensiones.
  • CameraUseInconsistentTimebaseQuirk: Algunos teléfonos no marcan la hora del video y el audio correctamente. 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. Seguiremos agregando más correcciones a medida que las encontremos, para que los desarrolladores de aplicaciones no tengan que lidiar con estas soluciones únicas. Si encuentra un comportamiento inconsistente en un dispositivo que está probando, puede hacerlo presentar un problema en el componente CameraX que detalla el comportamiento y el dispositivo en el que está sucediendo.

Teléfonos plegables

Los folletos siguen siendo 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 facilita el desarrollo de aplicaciones de cámara en dispositivos plegables.

por CameraX Vista previa del caso de uso gestiona 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 Definición de compatibilidad de Android requiere que “la dimensión larga de la cámara esté alineada 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 esta relación puede no ser siempre cierta. Con CameraX siempre puede conservar la relación de aspecto llenando PreviewView (lo que puede recortar la imagen de vista previa) o ajustando la imagen a PreviewView (lo que puede causar una pantalla ancha o cuadrada). configurando PreviewView.ScaleType para especificar qué método utilizar.

El aumento de dispositivos plegables también aumenta la posibilidad de que su aplicación se pueda usar en un entorno de múltiples ventanas. CameraX está diseñado 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 al usar CameraX en un entorno de múltiples ventanas.

Siempre estamos buscando nuevas formas de mejorar CameraX para que sea aún más fácil de usar. En cuanto a los plegables, por ejemplo, estamos explorando formas de permitir que los desarrolladores llamen establecer resolución de destino () sin tener que tener en cuenta las diferentes configuraciones en las que puede encontrarse un dispositivo de plegado. Estad atentos a este blog y al nuestro. 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 el nuestro. Cámara CodelabX. Si quieres profundizar un poco más con CameraX, echa un vistazo a la nuestra 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 el nuestro Documentación de CameraX. Si tiene alguna pregunta, no dude en ponerse en contacto con nosotros en nuestro Grupo de discusión CameraX.

Compruebe también

en vivo desde Droidcon, incluida la mayor actualización de Gemini en Android Studio y más lanzamientos del SDK de Android.

Acabamos de lanzar nuestro episodio de otoño de #TheAndroidShow en YouTube etcétera desarrollador.android.comy esta vez …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *