Application framework:
用于给APP提供访问hardware的Camera API2,通过binder来访问camera service。
1 | frameworks\base\core\java\android\hardware\camera2 |
frameworks\av\camera 是camera framework与camera service IPC通讯的数据载体等等
主要的类
CameraManager:
Camera2操作camera主要类
CameraDeviceImpl:
CameraCaptureSession:
camera service
1 | frameworks\av\services\camera\libcameraservice |
主要类或文件
CameraDeviceClient.cpp
CameraProviderManager.cpp
Camera3Device.cpp
AIDL
1 | frameworks/av/camera/aidl/android/hardware |
- 基于Binder实现的一个用于让App fw代码访问natice fw代码的接口。。其中:
(1) ICameraService 是相机服务的接口。用于请求连接、添加监听等。
(2) ICameraDeviceUser 是已打开的特定相机设备的接口。应用框架可通过它访问具体设备。
(3) ICameraServiceListener 和 ICameraDeviceCallbacks 分别是从 CameraService 和 CameraDevice 到应用框架的回调。
cameraprovider
1 | hardware\interfaces\camera\provider\2.4 |
主要类
CameraProvider.cpp android.hardware.camera.provider@2.4-service.rc
camera HAL interface
1 | hardware\interfaces\camera\common\1.0 |
camera HAL implement
1 | vendor\qcom\proprietary\camx\src\core |
主要类
camerahal3entry.cpp: camera hal 调用的入口 camxhal3.cpp: camera hal接口主要实现类,capture_Request与capture_Result中转类,主要通过这个类来处理capture request与回调 capture result. camxhaldevice.cpp: camxhal3module.cpp
算法实现
vendor\qcom\proprietary\chi-cdk\vendor\node
核心算法都在这里