media 服务注册
frameworks/av/media/mediaserver/main_mediaserver.cpp
media 入口函数是 main_mediaserver.cpp 中的 main()方法,代码如下:
int main(int argc __unused, char **argv __unused) 36 { 37 signal(SIGPIPE, SIG_IGN); 38 39 sp<ProcessState> proc(ProcessState::self()); 40 sp<IServiceManager> sm(defaultServiceManager()); 41 ALOGI("ServiceManager: %p", sm.get()); 42 AIcu_initializeIcuOrDie(); 43 MediaPlayerService::instantiate(); 44 ResourceManagerService::instantiate(); 45 registerExtensions(); 46 ::android::hardware::configureRpcThreadpool(16, false); 47 ProcessState::self()->startThreadPool(); 48 IPCThreadState::self()->joinThreadPool(); 49 ::android::hardware::joinRpcThreadpool(); 50 }
过程说明: 1. 获 取 ServiceManager: 讲 解 了 defaultServiceManager() 返回的是BpServiceManager 对象, 用于跟 servicemanager 进程通信;
2. 理解 Binder 线程池的管理, 讲解了 startThreadPool 和joinThreadPool 过程.