Android Camera原理之camera service类与接口关系

《Android Camera架构》
《Android Camera进程间通信类总结》
《Android Camera模块解析之拍照》
《Android Camera模块解析之视频录制》
《Android Camera原理之CameraDeviceCallbacks回调模块》
《Android Camera原理之openCamera模块(一)》
《Android Camera原理之openCamera模块(二)》
《Android Camera原理之createCaptureSession模块》
《Android Camera原理之setRepeatingRequest与capture模块》
《Android Camera原理之编译》
《Android Camera原理之camera provider启动》
《Android Camera原理之cameraserver与cameraprovider是怎样联系的》
《Android Camera原理之camera service与camera provider session会话与capture request轮转》
《Android Camera原理之camera HAL底层数据结构与类总结》
《Android Camera原理之camera service类与接口关系》

camera service主要是指 frameworks/av/services/camera/下面的代码,最近在看这一块的代码,为了更好地理清这一块的代码,也为了后续学习camera方便一些,我觉得很有必要理一下这一块的整体架构。

下面分为将camera service代码分为三个主要的执行模块,分为以Camera3Device 、 CameraManagerProvider 、Camera3Stream 为核心。

  • Camera3Device
    frameworks/av/services/camera/libcameraservice/devices/Camera3Device.cpp
    调用源头,也是开发者控制逻辑的起始点,变向的也可以看成是控制源。
  • CameraManagerProvider
    frameworks/av/services/camera/libcameraservice/common/CameraProviderManager.cpp
    这是控制camera service 与 camera provider交互的地方,保证camera serviec 与camera provider会话正常。
  • Camera3Stream
    frameworks/av/services/camera/libcameraservice/devices/Camera3Stream .cpp
    管理输入输出源的地方,从HAL层取输出源,并将输出源返回到上层以供上层消费。

下面是这三个模块之前的关系图,以后它们与HAL层之间的联系,显然核心的工作在HAL层完成,但是camera service作为上层组织 上层和camera HAL通信的中间层也是非常重要的。

本文只是串联了camera service之间的主要模块关系,大家查看代码即可,本文结束后,camera 学习的主要阵地要转到camera HAL层了,这也是最难的模块。

camera service类与接口关系图.jpg
camera service类与接口关系图1.jpg
camera service类与接口关系图2.jpg
camera service类与接口关系图3.jpg

推荐阅读更多精彩内容