上传者: weber00
|
上传时间: 2021-11-17 14:44:24
|
文件大小: 927KB
|
文件类型: -
整个流程的总结如下:
->先是系统注册 CameraService 的服务
->APP 层调用 Camera.open()
->Camera.java 调用 JNI native_setup()
->JNI 层调用 android_hardware_Camera_native_setup
-> HAL 客户端(Camera.cpp)调用 connect 与服务端(CameraService.cpp)连接得到
CameraService 中的 CameraClient 的一个实例
->服务端 CameraClient 的初始化,实例化 Camera Hal 接口 CameraHardwareInterface
->CameraHardwareInterface 打开 Camera 驱动, 真正的实现是在 QCamera2HWI.cpp 中。
对应的代码层次:
App--->framework-java--->jni--->framework-c++(Camera)--->binder--->
framework-c++(CameraService)-->framework-c++(CameraService::Client)--->
framework-c++(CameraClient) --->(CameraHardwareInterface) ---> HAL