IPC机制---使用AIDL
1、服务端
服务端首先要创建一个Service 用来监听客户端的连接请求,然后创建一个AIDL文件,将暴露给客户端的接口在这个文件AIDL文件中声明,最后在Service 中实现这个AIDL接口即可。
2、客户端
客户端所要做的事情就比较简单一些,首先需要绑定服务端的Service,绑定成功后,将服务端返回的Binder对象转换成AIDL接口所属的类型,接着就可以调用AIDL中的方法了
在AIDL文件中,并不是所有的数据类型都是可以使用的,那么到底AIDL文件支持哪些数据类型呢?
基本数据类型(int long char boolean double 等)
String 和 CharSequence
List:只支持ArrayList,里面每个元素都必须能被AIDL支持
Map :只支持HashMap,里面的每个元素都必须被AIDL支持,包括key 和value;
Parcelable:所有实现了Parcelable 接口的对象
AIDL:所有的AIDL接口本身也可以在AIDL文件中使用
服务端代码
见 github
客户端 代码
见 github