Descripción general de CameraX   Parte de Android Jetpack

CameraX es una biblioteca de compatibilidad de Jetpack creada para que el desarrollo de una app de cámara te resulte más fácil. Proporciona una superficie de API coherente y fácil de usar que funciona en la mayoría de los dispositivos Android, y ofrece compatibilidad con versiones anteriores hasta Android 5.0 (nivel de API 21).

Si bien CameraX aprovecha las funciones de Camera2, usa un enfoque más simple que tiene en cuenta el ciclo de vida y se basa en casos prácticos. También resuelve los problemas de compatibilidad con dispositivos por ti, de manera que no tengas que incluir código específico para dispositivos en tu base de código. Estas funciones reducen la cantidad de código que tienes que escribir para agregar funciones de cámara a tu app.

Por último, CameraX permite a los desarrolladores aprovechar las mismas experiencias y funciones de cámara que proporcionan las apps de cámara preinstaladas, con solo dos líneas de código. Las extensiones de CameraX son complementos opcionales que te permiten agregar efectos en dispositivos compatibles. Estos efectos incluyen bokeh (retrato), HDR, nocturno y retoque facial.

Beneficios principales

CameraX mejora la experiencia del desarrollador de las siguientes maneras:

Facilidad de uso

CameraX se concentra en la compatibilidad

Figura 1: CameraX se orienta a Android 5.0 (nivel de API 21) y versiones posteriores, por lo que abarca la mayoría de los dispositivos Android.

CameraX presenta casos de uso, lo que te permite concentrarte en la tarea que necesitas completar en lugar de tener que dedicar tiempo a administrar variaciones específicas del dispositivo. Los diferentes casos de uso básicos son los siguientes:

  • Vista previa: Permite obtener una imagen en la pantalla.
  • Análisis de imágenes: Permite acceder a un búfer sin inconvenientes a fin de utilizarlo en tus algoritmos, por ejemplo, para pasar contenido a MLKit.
  • Captura de imágenes: Permite guardar imágenes de alta calidad.

Estos casos de uso funcionan en todos los dispositivos que ejecutan Android 5.0 (nivel de API 21) o versiones posteriores, lo que garantiza que el mismo código funcionará en la mayoría de los dispositivos del mercado.

Coherencia entre dispositivos

Figura 2: El Test Lab automatizado de CameraX garantiza que habrá una experiencia de API coherente entre muchos tipos y fabricantes de dispositivos.

Resulta difícil mantener un comportamiento de cámara coherente entre apps. Se deben tener en cuenta muchos factores, como la relación de aspecto, la orientación, la rotación, el tamaño de la vista previa y el tamaño de la imagen de alta resolución. Con CameraX, los comportamientos básicos simplemente funcionan.

Invertimos en un Test Lab automatizado de CameraX que prueba una variedad de comportamientos de cámara en diferentes dispositivos y sistemas operativos a partir de Android 5.0 (nivel de API 21). Las pruebas se realizan de manera continua para identificar y corregir una amplia variedad de problemas.

Nuestro objetivo es reducir la carga de las pruebas con el tiempo.

Nuevas experiencias de cámara

Figura 3. Captura de imagen con el efecto bokeh (retrato) usando CameraX.

CameraX tiene un complemento opcional, llamado Extensiones, que te permite acceder a las mismas funciones que las que se encuentran en la app nativa de cámara del dispositivo con solo dos líneas de código.

Las extensiones compatibles incluyen bokeh (retrato), HDR, nocturno y retoque facial. Estas funciones están disponibles solo en dispositivos compatibles.

Caso de éxito

A fin de ver de qué manera simplificó CameraX el desarrollo para Monzo, consulta su caso de éxito.

Recursos adicionales

Para obtener más información acerca de CameraX, consulta los siguientes recursos adicionales.

Codelab

  • Comienza a usar CameraX
  • Muestra de código

  • App de muestra de CameraX oficial