![Android音视频开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/334/31186334/b_31186334.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.4 添加服务的过程
下面分析一下BpServiceManager的addService函数:
![](https://epubservercos.yuewen.com/13E7E8/16896237204360306/epubprivate/OEBPS/Images/txt003_19.jpg?sign=1739314504-vtyHAH9dvlkEnP3r1zp2W7S80Q6dv4o5-0-13e3ce3dd677702f750e7ec3c3ceec3b)
这里的remote函数返回的就是前面创建的BpBinder(0)对象:
![](https://epubservercos.yuewen.com/13E7E8/16896237204360306/epubprivate/OEBPS/Images/txt003_21.jpg?sign=1739314504-TJu2HFoCqFqVAcsYJR4AoIDFCImiI8Ky-0-272731b328abd7b2159f30c6c1c6841a)
接着看看talkWithDriver的实现,顾名思义,是与driver谈话:
![](https://epubservercos.yuewen.com/13E7E8/16896237204360306/epubprivate/OEBPS/Images/txt003_23.jpg?sign=1739314504-7hQ0jc0ifC7o0EdoI7rIxQvrMAMRokSl-0-88b0dbc57b16c8731a1b9f8cfee9020a)
IPCThreadState::joinThreadPool、ProcessState::self->startThreadPool进入线程循环,talkWithDriver等待客户端Client请求,从Binder读取命令请求进行处理。
到现在为止,MediaPlayerService的服务器端已经向服务总管ServiceManager注册了。