![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=1738838713-HLQwvXAv2Ev1uJterSShRq3YQdvJyqLB-0-5e228bf2d5d05ee2be4e549a1f02135b)
这里的remote函数返回的就是前面创建的BpBinder(0)对象:
![](https://epubservercos.yuewen.com/13E7E8/16896237204360306/epubprivate/OEBPS/Images/txt003_21.jpg?sign=1738838713-VPqiDjr4tspkLeCzQlm6ysMQGziTCz4A-0-ccceeddb9f38cfd7518b0ba71a094d85)
接着看看talkWithDriver的实现,顾名思义,是与driver谈话:
![](https://epubservercos.yuewen.com/13E7E8/16896237204360306/epubprivate/OEBPS/Images/txt003_23.jpg?sign=1738838713-3aiCModVNhM9lFndyPV73LvlasCB0vCq-0-6230282a641cd654e45323d1d073f075)
IPCThreadState::joinThreadPool、ProcessState::self->startThreadPool进入线程循环,talkWithDriver等待客户端Client请求,从Binder读取命令请求进行处理。
到现在为止,MediaPlayerService的服务器端已经向服务总管ServiceManager注册了。