Android Binder库结构

来源:互联网 发布:javascript怎么学 编辑:程序博客网 时间:2024/06/05 17:09

Binder机制是Android系统中实现进程间通信的重要方法,Server端和Client端的类结构图如下。


                                                                      Server组件的实现原理



                                                                                          Client组件的实现原理

Server组件的大致启动过程:

(1)defaultServiceManager.addService(name, new XXXXX);//把Server注册到ServiceManager中

(2)processState::self()->startThredaPool()//打开binder设备文件,启动binder驱动,启动binder线程池

Client端使用Service的大致过程:

(1)IBinder = defaultServiceManager.getService(name);//获得Service的代理

(2)sp<IXXXX> Service=XXXXX.asInterface(IBinder)//转化为IXXX接口

(3)Service.test();//使用IXXX接口中的函数


Java层使用AIDL实现进程间通信时,test.aidl被编译为test.java,此java文件中的Stub内部类,相当于BnXXXX,开发者需要继承此类并实现test.aidl中定义的接口

Client端通过binderService获得Test的代理,利用asInterface转化为IXXX接口,此时即可使用接口函数完成通信工作。






原创粉丝点击