Capítulo 1: Bem-vindo ao Android Camera2
Saiba por que o Android Camera2 é importante, como ele se compara ao Camera1 e CameraX, o que ele permite e o que você construirá nesta série.
Capítulo 2: Entendendo as Câmeras de Smartphones
Explore o hardware do módulo de câmera dentro de cada smartphone: a lente, o sensor de imagem, o processador ISP, a diferença entre RAW e JPEG, designs de múltiplas câmeras e a jornada completa dos fótons até uma foto armazenada.
Capítulo 3: Fotografia Moderna em Smartphones
Um tour pelos recursos computacionais e ópticos dos smartphones modernos: HDR, bokeh de retrato, modo noturno, câmera lenta, ultra-angular, teleobjetiva, macro e como a fotografia computacional funde hardware e software.
Capítulo 4: Explore a Câmera do Seu Próprio Celular
Use o aplicativo complementar Android Camera Parameters para inspecionar seu próprio dispositivo. Aprenda a ler os IDs das câmeras, verificar os Níveis de Hardware, enumerar câmeras, inspecionar formatos suportados, taxas de quadros, faixas de zoom e capacidade RAW.
Capítulo 5: Criando seu primeiro projeto Camera2
Configure um projeto Android Camera2 completo do zero. Aprenda sobre permissões de câmera, inicialização do CameraManager, threading em background com HandlerThread e a configuração de projeto necessária para a aceleração de hardware do TextureView.
Capítulo 6: Descobrindo Câmeras
Enumere e consulte cada câmera em um dispositivo Android usando CameraCharacteristics. Aprenda a semântica de ID de câmera, direções de lente (frontal/traseira/externa), câmeras USB OTG externas e a hierarquia de nível de hardware de LEGACY a LEVEL_3.
Capítulo 7: Abrindo uma Câmera
Estabeleça uma conexão ao vivo com um dispositivo de câmera usando openCamera(). Domine o ciclo de vida do CameraDevice, implemente o StateCallback com onOpened/onDisconnected/onError, integre a abertura/fechamento com o onPause/onResume da Atividade e trate cada código de erro do CameraAccessException com controle de concorrência baseado em Semaphore.
Capítulo 8: Mostrando a Pré-visualização da Câmera
Renderize quadros da câmera ao vivo na tela usando TextureView, SurfaceTexture, Surface e CameraCaptureSession. Implemente o SurfaceTextureListener, corrija a proporção de aspecto com transformações de Matrix no configureTransform, construa uma CaptureRequest TEMPLATE_PREVIEW e inicie o fluxo de pré-visualização com setRepeatingRequest.
Capítulo 9: Tirando Fotos
Capture fotos estáticas de alta qualidade com o Camera2 usando ImageReader (JPEG), gatilho de pré-captura AE e a máquina de estados CaptureCallback. Salve fotos com o MediaStore compatível com Scoped Storage (Android 10+) e FileOutputStream legado, sempre lembrando de fechar o buffer de imagem.
Capítulo 10: O Pipeline do Camera2
Mergulho profundo na arquitetura do pipeline do Camera2 — CaptureRequest, CaptureResult, filas de solicitação, callbacks de resultado e o fluxo de ponta a ponta desde o envio da solicitação até o processamento no HAL e resultados.
Capítulo 11: Tipos de Captura
Aprenda os três tipos de captura do Camera2 — disparo único (capture), sequencial (captureBurst) e repetida (setRepeatingRequest) — além de modelos integrados (TEMPLATE_PREVIEW, TEMPLATE_STILL_CAPTURE, TEMPLATE_RECORD e mais).
Capítulo 12: Mergulho Profundo no CameraCharacteristics
Domine o CameraCharacteristics — os metadados estáticos imutáveis que descrevem cada câmera antes de você abri-la. Níveis de hardware (LEGACY, LIMITED, FULL, LEVEL_3, EXTERNAL), flags de capacidade, organização das chaves de metadados e consultas de capacidade em tempo de execução.
Capítulo 13: Exposição
Domine os fundamentos da exposição fotográfica — o Triângulo de Exposição com ISO, velocidade do obturador e abertura. Entenda os stops de EV, a regra Sunny 16 e como diferentes combinações criam a mesma exposição com compensações criativas.
Capítulo 14: Exposição Manual no Camera2
Assuma o controle criativo total da exposição com a API Android Camera2. Aprenda a desativar a exposição automática, definir o ISO manual via SENSOR_SENSITIVITY, controlar a velocidade do obturador em nanossegundos com SENSOR_EXPOSURE_TIME e construa exemplos práticos em Kotlin para timelapses, exposições longas e bracketing.
Capítulo 15: Foco
Domine o foco automático e manual no Android Camera2. Entenda os modos de AF, a máquina de estados de AF, sequências de disparo único e captura, foco manual com dioptrias LENS_FOCUS_DISTANCE, distância hiperfocal e a construção de um controle deslizante SeekBar de foco em Kotlin.
Capítulo 16: Balanço de Branco e Cor
Controle a cor no Android Camera2 com predefinições de Balanço de Branco Automático e correção de cor manual. Aprenda os modos de AWB, temperatura de cor (2000K–10000K), transformações de cor 3×3, COLOR_CORRECTION_GAINS e código Kotlin funcional para predefinições de pôr do sol em tons quentes e balanço de branco manual completo.
Capítulo 17: O Pipeline 3A
Orquestre a Exposição Automática (AE), o Foco Automático (AF) e o Balanço de Branco Automático (AWB) em uma sequência confiável de captura de fotografia estática. Aprenda o gatilho de pré-captura, modos de flash, máquinas de estado AE/AF e construa código Kotlin de qualidade de produção que coordena todos os três "A"s antes de cada disparo.
Capítulo 18: Fotografia RAW
Domine o formato RAW_SENSOR, a criação de arquivos DNG com o DngCreator, padrões Bayer e a captura simultânea de RAW+JPEG na API Camera2 do Android
Capítulo 19: Vídeo de Alta Velocidade
Construa capturas em câmera lenta de 120fps e 240fps com CameraConstrainedHighSpeedCaptureSession, createHighSpeedRequestList e faixas de FPS do StreamConfigurationMap na API Camera2 do Android
Capítulo 20: Multicâmera
Explore os dispositivos de multicâmera lógica do Android 9+, IDs de câmera física, sincronização de sensor APPROXIMATE vs CALIBRATED, alternância de zoom contínua e captura física dupla simultânea via OutputConfiguration.setPhysicalCameraId() na API Camera2
Capítulo 21: HDR e Ultra HDR
Implemente vídeo HDR10 e HLG via DynamicRangeProfiles, e capturas estáticas JPEG_R do Android 14 (Ultra HDR ISO 21496-1) com arquitetura SDR-principal + mapa de ganho para fotos de alto alcance dinâmico retrocompatíveis
Capítulo 22: Extensões de Câmera
Use CameraExtensionSession para fotografia computacional acelerada por OEM: modo Noturno, modo retrato Bokeh, extensão HDR, Retoque Facial e modo Automático. Consulte CameraExtensionCharacteristics, gerencie a latência e contraste a arquitetura da Sessão Padrão vs. de Extensão.
Capítulo 23: Zero Shutter Lag & Reprocessing
Construa Zero Shutter Lag (ZSL) com buffer circular YUV/PRIVATE, CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG, sessões de captura reprocessáveis via InputConfiguration, reinjeção de quadros com ImageWriter e createReprocessCaptureRequest para processamento ISP pesado pós-captura. Também cobre switchToOffline() para continuidade do processamento em segundo plano.
Capítulo 24: CameraX
Domine o CameraX, a biblioteca de câmera do Jetpack que envolve o Camera2 e reconhece o ciclo de vida. Aprenda a arquitetura UseCase, o Camera2Interop para injetar parâmetros manuais e uma estrutura de decisão para escolher entre CameraX vs Camera2.
Capítulo 25: Desenvolvimento de Câmera Nativa
Trabalhe de forma nativa com a stack de câmera do NDK do Android. Use o ACameraManager para abrir câmeras a partir do C++, vincule a memória do AHardwareBuffer diretamente como texturas Vulkan para AR de cópia zero e entenda a interoperabilidade OpenGL/Vulkan para pipelines de 60fps. Inclui contexto de migração de EVS automotivo.
Capítulo 26: Programação Assíncrona de Câmera
Domine o inferno de callbacks do Camera2 usando coroutines e Flow do Kotlin. Aprenda suspendCancellableCoroutine para operações únicas (openCamera, createCaptureSession, capture), callbackFlow para fluxos contínuos de ImageReader e CaptureResult, operadores combine para UIs reativas e padrões de segurança de threads para evitar ANRs e deadlocks.
Capítulo 27: Testes de Câmera
O guia completo de testes de câmera Android. Entenda o Camera ITS (Image Test Suite), o que os OEMs validam antes do envio (combinações de recursos, testes de cena, fusão de sensores), testes manuais do CTS Verifier e como escrever seus próprios testes de instrumentação com mocks do Mockito e testes de nível de hardware parametrizados que rodam no CI.
Capítulo 28: Arquitetura do Camera2
O grande final da arquitetura do Camera2. Viaje por toda a pilha, desde o seu aplicativo Kotlin passando pelo IPC do Binder, o Framework, o CameraService em nativo, o Camera3Device, o HAL3 com camera3_device_t, o driver de kernel V4L2 e, finalmente, o sensor físico, ISP, lente VCM e hardware de flash. Inclui o requisito Treble HAL, o wrapper LEGACY HAL1 e o CameraDeviceSetup do Android 15. Mapa completo da jornada do leitor pelas camadas.
Camera Metadata Encyclopedia
Complete reference guide for all essential CameraCharacteristics metadata keys including Sensor, Lens, Control, Scaler, Request, Flash, JPEG, Statistics, and Info categories.