camera service主要是指 frameworks/av/services/camera/下面的代碼,最近在看這一塊的代碼,爲了更好地理清這一塊的代碼,也爲了後續學習camera方便一些,我以爲頗有必要理一下這一塊的總體架構。架構
下面分爲將camera service代碼分爲三個主要的執行模塊,分爲以Camera3Device 、 CameraManagerProvider 、Camera3Stream 爲核心。ide
- 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.jpgservice
camera service類與接口關係圖2.jpgim
camera service類與接口關係圖3.jpg通信