1. 程式人生 > >Android Camera原理之camera service類與介面關係

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類與介面關係