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