Androi Camera架构
2020-02-22 本文已影响0人
叶羽西
框架中CameraService服务
ICameraService定义业务接口,CameraService实现接口。CameraService向系统注册,通过proxy方式向外提供服务支持。
camera服务注册
camera服务获取
注册camera服务
CameraServiceProxy(CameraService)将名为"media.camera.proxy"服务注册到系统。这时camera服务才算服务,可以接收客户端的请求。
获取camera服务
访问时通过CameraServiceProxy::notifyCameraserviceLocked("media.camera")获取之前注册的camera服务。Stub本质是Binder,具有远程输出数据的能力。代码实现可以了解到通过Binder可以实现到远程对象的跳转。
Binder为什么具有远程调用能力?
Binder类基于IBinder接口实现。IBinder是远程对象的基础接口,轻量级远程过程调用机制的核心部分,专为执行进程内和跨进程调用时的高性能而设计。IBinder接口描述了与可远程对象交互的抽象协议。