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