第39讲 Camera Native FW 之Camera3Device初始化流程详解

本讲是Android Camera Native Framework专题的第39讲,我们介绍Camera Native FW的Camera3Device初始化流程详解。

更多资源:

资源 描述
在线课程 极客笔记在线课程
知识星球 星球名称:深入浅出Android Camera 星球ID: 17296815
Wechat 极客笔记圈

Android Camera API2 Open Flow

Android Camera API2 Open Flow

流程说明:

Camera App调用CameraManager的openCamera方法,调用到CameraService的connectDevice,然后创建CameraDeviceClient,在Camera2ClientBase的initializeImpl中创建AidlCamera3Device,然后在AidlCamera3Device的initialize方法中调用CameraProviderManager的openAidlSession方法,进而通过ICameraDevice的open方法调用到HAL去执行Open Camera动作。

AidlCamera3Device::initialize() Flow

AidlCamera3Device::initialize() Flow

Main Task Description
创建Session 与HAL交互打开Camera
CAMERA CHARACTERISTICS 获取静态Metadata,判断是否支持 •mSupportNativeZoomRatio •mIsCompositeJpegRDisabled
LOGICAL MULTI-CAMERA CONFIGURATION 如果是Logical Multicam,则对mPhysicalDeviceInfoMap,mDistortionMappers 和 mZoomRatioMappers,mUHRCropAndMeteringRegionMappers进行相应的赋值
METADATA QUEUES 初始化Metadata Queue,通过FMQ (Fast Message Queue) 用共享内存的方式来传递CaptureRequest和CaptureResult Metadata Buffer

Camera3Device::initializeCommonLocked() Flow

Camera3Device::initializeCommonLocked() Flow

Main Task Description
线程管理 •StatusTracker •Request Thread •Preparer Thread •CameraServiceWatchdog

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Android Camera Native Framework