6.2.1 MediaServer的入口函数
最后更新于:2022-04-02 05:50:21
MS是一个可执行程序,入口函数是main,代码如下所示:
**Main_MediaServer.cpp**
~~~
int main(int argc, char** argv)
{
//①获得一个ProcessState实例
spproc(ProcessState::self());
//②MS作为ServiceManager的客户端,需要向ServiceManger注册服务
//调用defaultServiceManager,得到一个IServiceManager。
spsm = defaultServiceManager();
//初始化音频系统的AudioFlinger服务
AudioFlinger::instantiate();
//③多媒体系统的MediaPlayer服务,我们将以它作为主切入点
MediaPlayerService::instantiate();
//CameraService服务
CameraService::instantiate();
//音频系统的AudioPolicy服务
AudioPolicyService::instantiate();
//④根据名称来推断,难道是要创建一个线程池吗?
ProcessState::self()->startThreadPool();
//⑤下面的操作是要将自己加入到刚才的线程池中吗?
IPCThreadState::self()->joinThreadPool();
}
~~~
上面的代码中,确定了5个关键点,让我们通过对这5个关键点逐一进行深入分析,来认识和理解Binder。
';