💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
MS是一个可执行程序,入口函数是main,代码如下所示: **Main_MediaServer.cpp** ~~~ int main(int argc, char** argv) { //①获得一个ProcessState实例 sp<ProcessState>proc(ProcessState::self()); //②MS作为ServiceManager的客户端,需要向ServiceManger注册服务 //调用defaultServiceManager,得到一个IServiceManager。 sp<IServiceManager>sm = defaultServiceManager(); //初始化音频系统的AudioFlinger服务 AudioFlinger::instantiate(); //③多媒体系统的MediaPlayer服务,我们将以它作为主切入点 MediaPlayerService::instantiate(); //CameraService服务 CameraService::instantiate(); //音频系统的AudioPolicy服务 AudioPolicyService::instantiate(); //④根据名称来推断,难道是要创建一个线程池吗? ProcessState::self()->startThreadPool(); //⑤下面的操作是要将自己加入到刚才的线程池中吗? IPCThreadState::self()->joinThreadPool(); } ~~~ 上面的代码中,确定了5个关键点,让我们通过对这5个关键点逐一进行深入分析,来认识和理解Binder。