以Android中MediaServer启动来看Native层的Binder IPC通信机制

1)MediaServer在Native层,用C++实现。

2)MediaServer作为客户端,向ServiceManager(Server端)注册服务。

3)这是一个典型的Android Binder 机制的IPC通信,只不过所以的实现都在Native层。

3)注意MediaServer获取到的是BpXXX,也就是ServerManager的Binder代理。

4)关键一点,作为业务类的IServerManager是如何和作为通信层的类BpBinder绑定的。

5)问题1是:IPCThreadState是如何获取到BnServerManager的?有理解深刻的可以评论、讨论。

6)问题2是:talkWithDriver做了什么?

以Android中MediaServer启动来看Native层的Binder IPC通信机制_第1张图片

注:参照《深入理解Android系统》,以及Android源码

你可能感兴趣的:(Android开发)