Camera 进程相关(未完待续)
camera 相关进程查看:
Android 8.0 引入了 Treble,用于将 CameraHal API 切换到由 HAL 接口描述语言 (HIDL) 定义的稳定接口。
-
camera.provider进程的启动和实例化的开始: 通过hardware/interfaces/camera/provider/2.4/default/service.cpp 在 Android O 中,系统启动时,就会启动 CameraProvider 服务。这个服务进程的启动很简单,主要动作是注册该 CameraProvider,以便 CameraServer 启动时能找到它。需要注意的是,此时 CameraProvider 还未实例化与初始化。 -
CameraService 的启动与初始化: 一般来说应该是 Provider 服务先启动,然后 Cameraserver 再启动,并 ”连接“ 到 Provider. CameraService 在frameworks/av/camera/cameraserver/main_cameraserver.cpp开始.
总的步骤: 1.android.hardware.camera.provider@2.4-service 进程启动,仅注册 Provider; 2.cameraserver 进程启动,实例化 CameraService,并注册到 ServiceManager 中; 3.由于强指针首次引用,CameraService::onFirstRef() 被调用,相当于进行初始化; 4.在 CameraService 初始化过程中,通过 CameraProviderManager 来获取已注册的 Provider,并实例化、初始化 CameraProvider; 5.CameraProvider 初始化过程中,从动态库中加载了 HAL 层的关键结构,并将其封装到 ameraModule 中; 6.将获取到的 CameraProvider 保存在 ProviderInfo 中,以便后续的使用。
|