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系统》,以及Android源码