AIDL:IPC 、多个应用程序 、多线程
Binder: 只有IPC、 没有多线程 、多个应用程序
Messager:只有IPC 、没有多线程
demo下载地址:https://github.com/soulListener/AIDLPro.git
1、AIDL定义:
interfaceIMyAidlInterface{
//计算两个数的和
intadd(intvalue1,intvalue2);
}
定义完成之后要对项目进行编译,并且客户端与服务端AIDL文件要一致
2、要想使用AIDl就要通过Service来调用
public classAidlServiceextendsService{
@Nullable
@Override
publicIBinder onBind(Intent intent) {
return newIMyAidlInterface.Stub() {
@Override
public intadd(intvalue1,intvalue2)throwsRemoteException {
returnvalue1+value2;
}};}}
3、使用方式:
绑定服务
aidlService=(AidlService)IMyAidlInterface.Stub.asInterface(iBinder);
AIDL定义方法支持byte int long boolean float double char String
List、Map中存放的类型必须是基本数据类型(表明 in out 还是inout)
实现Parcelable