基本使用
- 编写.AIDL文件,定义需要的接口
- 新建AIDL文件,编写相应的方法
- 新建一个进程间传递对象,实现Parcelable
- 新建一个与传递对象同名的AIDL文件,简单声明Pacelable即可
- 自动编译之后,可在build/generated/aidl目录下找到AIDL文件对应的Java文件
- 实现定义的接口
- 继承自动生成的Binder类,实现其中的方法即可
- onTransact ()权限认证
- 将接口暴露给客户端使用
- 服务端编写一个Service类,并在onBind()方法中返回实现的接口
- 使用这个接口的Application的src目录下都要有对应.aidl文件的副本
- 客户端bindService(),利用返回的Bind对象,调用远程方法
注意事项
- aidl中支持的参数类型为基本数据类型,String,CharSequence,List,Map 其他必须import导入
- 接口中的参数除了aidl支持的类型,其他类型如对象必须标示其方向:in,out,inout
- in:客户端的参数输入
- out:服务端的参数输入
- inout:这个可以叫输入输出参数,客户端可输入、服务端也可输入。客户端输入了参数到服务端后,服务端也可对该参数进行修改等,最后在客户端上得到的是服务端输出的参数。
- 传递对象pacelable 小写