Qualcomm camera for Android8.0 學習(一)---- Camera架構概述


最近上手高通 camera項目,負責驅動模塊,或多或少對android o還是不足。所以打算惡補一下,一起進步【(android 8.0)camera hal3】

首先將代碼路徑澄清以一下:(由於代碼開發需要對路徑掌握十分熟悉,所以對於代碼路徑的熟悉度是必須的)

代碼路徑(每天三遍 上中晚)
(1)framework 層代碼
frameworks/base/core/java/android/hardware/camera2

(1.5)是camera framework和Camera service之間的IPC數據通信載體 /frameworks/av/camera
也就是說這就是一個binder通信載體

(2)camera service
frameworks/av/services/camera/libcameraservice$

(3)camera provider
hardware/interfaces/camera/provider/2.4

(4)hal層接口
hardware/interfaces/camera/common/1.0/
hardware/interfaces/camera/device/3.2
hardware/libhardware/include/hardware/camera3.h
hardware/libhardware/modules/camera/3_0

(5)hal層的實現
vendor/qcom/proprietary/camx/src/core/

(6)算法實現
vendor/qcom/proprietary/chi-cdk/vendor/node/
Android 的相機硬件抽象層 (HAL) 可將 Camera 2 中較高級別的相機框架 API (framework層)連接到底層的相機驅動程序和硬件(hardware)(這句話指明了hal的作用,就是鏈接framework和硬件的橋梁)。相機子系統包括相機管道組件的實現,而相機 HAL 則可提供用於實現這些組件版本的接口。

下面這張圖較好的說明了Camera各組件之間的關系:

其實以下這張圖片 我這邊也沒弄太明白,如果哪位大神了解可以直接回復,我這邊再進行組織,也可聯系我郵箱(christluos@163.com),一起進步!

 

 

 

framework:應用代碼位於framework層,它使用 Camera 2 API 與相機硬件進行交互。在內部,這些代碼會調用相應的 Binder 接口,以訪問與相機互動的原生代碼。

 

AIDL:與CameraService 關聯的 Binder 接口可在 frameworks/av/camera/aidl/android/hardware 中找到。生成的代碼會調用較低級別的原生代碼以獲取對實體相機的訪問權限,並返回用於在框架級別創建 CameraDevice 並最終創建 CameraCaptureSession 對象的數據。


原生框架:此框架位於 frameworks/av/ 中,並提供相當於 CameraDevice 和 CameraCaptureSession 類的原生類。

Binder IPC 接口:IPC binder 接口用於實現跨越進程邊界的通信。調用相機服務的若干個相機 Binder 類位於 frameworks/av/camera/camera/aidl/android/hardware 目錄中。

ICameraService 是相機服務的接口

ICameraDeviceUser 是已打開的特定相機設備的接口

ICameraServiceListener 是 CameraService的回調

ICameraDeviceCallbacks 是CameraDevice 回調。
相機服務(camer service):位於 frameworks/av/services/camera/libcameraservice/CameraService.cpp 下的相機服務是與 HAL 進行互動的實際代碼。
HAL:硬件抽象層定義了由相機服務調用、且您必須實現以確保相機硬件正常運行的標准接口。
---------------------
作者:羅大人
來源:CSDN
原文:https://blog.csdn.net/IT_luosong/article/details/88892419
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM