Android Camera 架构

相机系统

第一层: Java APP
第二层: Framework 封装 java 层的调用;实现 native 层的 CameraService
第三层: Camera HAL google 实现的 HIDL 标准接口,同时芯片厂商和 OEM 厂商基于 HIDL 接口实现自己的功能
第四层: Driver 相机驱动层
第五层: 各种电子、感光元件以及相机依赖的硬件

类:

CameraServiceClient

CameraDevice CameraProviderManager

Camera3Device

CameraHAL

# 数据

# CameraMetaData

以 key-value 的形式存储数据
Camera 系统中流转的三种主要数据都是继承了 CameraMetaData

# CaptureChractoristics 静态数据

相机静态配置数据:

  • 输入流配置
  • 输出流配置
  • 高分辨率配置
  • 高帧率配置

# CaptureRequest 拍摄请求

有 2 种类型的请求:

  • capture 非重复请求
  • repeating 重复请求 例如:实现预览的请求可以用 repeating 请求实现

CameraCaptureSession 管理相机连接的会话

CameraCaptureSession 由 createCameraSession 方法创建

# CaptureResult 拍摄结果

# 数据流向

CameraDevice CameraCaptureSession CameraManager.AvailabilityCallback