所需E币: 4
时间: 2020-2-28 17:28
大小: 97KB
Android平台——Binder机制Android平台——Binder机制由代码来补充部分:intmain(intargc,char**argv){ spproc(ProcessState::self()); spsm=defaultServiceManager(); LOGI("ServiceManager:%p",sm.get()); AudioFlinger::instantiate(); MediaPlayerService::instantiate(); CameraService::instantiate(); ProcessState::self()->startThreadPool(); IPCThreadState::self()->joinThreadPool();}spproc(ProcessState::self()),这一行代码会建立ProcessState对象,一个进程只有唯一的一个ProcessState对象,而ProcessState类的作用是来打开/dev/binder设备。这也就说明了一个问题,一个进程只不可能同时存在多个对/dev/binder的操作。[pic]spsm=defaultServiceManager(),这一行代码要做的事情参见上图。1、创建一个BpBinder。2、由BpBinder对象创建BpServiceManger对象。(为什么要采取如此不自然的方式,可以看一下这两个对象继承的基类)。完成这一步骤的最重要的作用在于以后对于IServiceManager对象的方法的调用,都将会由其子类BpServ……