android进程间通信--AIDL

AIDL构成:

    服务端:

           服务端创建一个service来监听客户端请求,然后创建一个AIDL文件,里面是要实现的方法,将暴露给客户端的接口在这个AIDL文件中声明,最后在service中实现这个AIDL接口。

    客户端:

            客户端需要绑定服务端service,绑定成功后,将服务端返回的Binder对象转成AIDL接口所属类型,接着就可以调用AIDL中的方法了。

            

AIDL接口创建:

         创建一个后缀为AIDL的文件,在里面直接声明接口和方法。

       注意:如果AIDL文件中用到自定义的Parcelable对象,那必须新建一个和他同名的AIDL文件,并在其中声明他的Parcelable类型。

服务端Service:

        创建一个service,在里面创建一个binder对象并在onBind中返回他,这个对象继承创建的的AIDL文件并实现内部的方法(MyAidl().stub)

客户端实现:

         绑定远程服务,绑定成功后将服务端返回的Binder对象转换成AIDL接口,然后通过这个接口去调用服务端的远程方法。


AIDL支持类型:

       基本数据类型(int,long, char, boolean, double等)

       String和CharSequence

       List:只支持ArrayList,里面每个元素都必须能够被AIDL支持。

       Map:只支持HashMap,里面的每个元素都必须被AIDL支持,包括key和value。

       Parcelable:所有实现了Parcelable接口的对象。

       AIDL:所有AIDL接口本身也可以在AIDL文件中使用

你可能感兴趣的:(android进程间通信--AIDL)