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文件中使用

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容