和你一起终身学习,这里是程序员Android
经典好文推荐,通过阅读本文,您将收获以下知识点:
一、整体介绍
1、MiddleWare(MW)层介绍
2、Pipeline介绍
二、Camera Open流程
一、整体介绍
首先看下mtkcam
的整体框架图如下包含了很多的内容,其中camera
的打开流程也贯穿在其中,从Camera APK
一层层的系统调用到driver
再到Hardware
层,这篇文章主要从Pipeline
开始介绍打开camera
的流程,JAVA/Cameraservice/MiddleWare
层后续再进行介绍:
1、MiddleWare(MW)层介绍
ICameraProvider: 向上暴露的接口调用,实现是在CameraProverideer
中;
Device@3.2ICameraDevice: 用于Camera Service
去操作各个Camera device
的操作,实现在CameraDevice3
中;
Device@3.2ICameraDeviceSession: Camera
会话的接口;
ICameraDeviceCallBack: 底层对上层的CallBack
接口;
CameraDeviceManager: 用于管理CameraDevice
,包括查找,打开,关闭等。
2、Pipeline介绍
PipelineModel
是HAL3
核心架构,对上需要开放对Pipeline
创建 & 操作的API
,对下需要建立Pipeline
& 管理Pipeline
的生命周期。PipelineModel
会针对不同的场景创建不同的Pipeline
和HWNode
,HWNode
向下传输APP
层的命令,向上传递图形数据:
P1Node: pipeline