如何获得:
Server和Client通过获得Service Manager的远程接口,来享受Service Manager的服务。
对于普通的Server来说,Client如果想要获得Server的远程接口,那么必须通过Service Manager远程接口提供的getService接口来获得,这本身就是一个使用Binder机制来进行进程间通信的过程。
而对于Service Manager这个Server来说,Client如果想要获得Service Manager远程接口,却不必通过进程间通信机制来获得,因为Service Manager远程接口是一个特殊的Binder引用,它的引用句柄一定是0。
那如何获得Service Manager远程接口呢?
获取Service Manager远程接口的函数是defaultServiceManager。
获得之后:
对Server来说,就是调用IServiceManager::addService这个接口来和Binder驱动程序交互了。对Client来说,就是调用IServiceManager::getService这个接口来和Binder驱动程序交互了。