The Android Developer Challenge is back! Submit your idea before December 2.

Visão geral do CameraX

O CameraX é uma biblioteca de suporte do Jetpack criada para facilitar o desenvolvimento de apps de câmera. Ele fornece uma superfície de API consistente que é fácil de usar, funciona na maior parte dos dispositivos Android e é compatível com versões anteriores ao Android 5.0 (API de nível 21).

Embora ele utilize os recursos do Camera2, tem uma abordagem mais simples, baseada em casos de uso e compatível com ciclos de vida. Ele também resolve problemas de compatibilidade de dispositivos para que você não precise incluir códigos específicos na sua base. Esses recursos reduzem a quantidade de código que você precisa escrever ao adicionar recursos da câmera ao seu app.

Por fim, o CameraX permite aos desenvolvedores aproveitar as mesmas experiências e recursos de câmera de apps pré-instalados, com apenas duas linhas de código. As extensões do CameraX são complementos opcionais que permitem adicionar efeitos como "Retrato", "HDR", "Visão noturna" e "Embelezamento" ao seu app em dispositivos compatíveis (link em inglês).

A biblioteca CameraX está no estágio Alfa, já que suas superfícies de API ainda não foram terminadas. Não recomendamos o uso de bibliotecas Alfa em produção. É preciso evitar que as bibliotecas dependam estritamente de bibliotecas Alfa em produção, já que as superfícies de API podem ser alteradas de formas incompatíveis com a fonte e o binário.

Benefícios principais

O CameraX melhora a experiência do desenvolvedor das seguintes formas:

Facilidade de uso

O CameraX foca na compatibilidade

Figura 1. O CameraX é voltado para o Android 5.0 (API de nível 21) e versões posteriores, abrangendo a maioria dos dispositivos Android

O CameraX apresenta os casos de uso, que permitem que você se concentre na tarefa que precisa ser executada em vez de gastar tempo gerenciando nuances específicas do dispositivo. Existem vários casos de uso básicos:

Esses casos de uso funcionam em todos os dispositivos com Android 5.0 (API de nível 21) ou versões posteriores, garantindo que o mesmo código funcione na maior parte dos dispositivos do mercado.

Consistência entre dispositivos

Figura 2. O laboratório de testes automatizado do CameraX garante uma experiência de API consistente entre muitos tipos de dispositivos e fabricantes.

Gerenciar o comportamento consistente da câmera entre apps é difícil. Há muito a ser considerado, incluindo proporção, orientação, rotação, tamanho de visualização e tamanho de imagem de alta resolução. Com o CameraX, esses comportamentos básicos funcionam sem problemas.

Estamos investindo em um laboratório de testes automatizados para o CameraX em que é testada uma variedade de comportamentos de câmera em diversos dispositivos e em todos os tipos de sistemas operacionais desde o Android 5.0 (API de nível 21). Esses testes são realizados continuamente para identificar e corrigir vários problemas.

Nosso objetivo é reduzir significativamente sua necessidade de fazer testes ao longo do tempo.

Novas experiências de câmera

Figura 3. O CameraX permite novas experiências dentro do app, como efeitos de retrato. Imagem capturada no Huawei Mate 20 Pro com o CameraX.

O CameraX tem um complemento opcional chamado Extensões, que permite acessar os mesmos recursos e capacidades de apps de câmera nativos com apenas duas linhas de código.

O primeiro conjunto de capacidades disponíveis inclui Retrato, HDR, Modo noturno e Embelezamento. Esses recursos estão disponíveis em dispositivos compatíveis.

Outros recursos

Para saber mais sobre o CameraX, consulte os seguintes recursos.

Codelab

  • Primeiros passos com o CameraX (link em inglês)
  • Amostra de código

  • App de amostra oficial do CameraX (link em inglês)