Android Camera原理之camera service類與介面關係
阿新 • • 發佈:2019-07-24
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類與介面關係