Android 进程间通信AIDL学习

aidl: Android Interfacedefinition language,即安卓接口定义语言,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口
ipc:inter processcommunication :内部进程通信


首先实现aidl远程服务:

1,新建as工程,new->AIDLfile创建IMiddlePerson.aidl。

2,然后新建RemoteService继承Service

3,在RemoteService新建内部类MyBinder

private class MyBinder extends IMiddlePerson.Stub{

    @Override
    public void callMethonInService() {
	//这里调用远程方法
        methodInService();
    }
}

4在onBind方法中返回MyBinder类对象

5在Manifest中声明Service 并添加意图过滤器


    

这样远程服务创建完成。


客户端绑定远程服务

1,绑定

Intent intent = new Intent();
intent.setAction("org.cailu.remoteservice");
//Android 5.0以后service服务必须采用显示方式启动,所以必须加上这句话。就是aidl文件所在的包名
intent.setPackage("cailu.org.aidlserver");
bindService(intent, conn, BIND_AUTO_CREATE);


2.创建MyConn实现ServiceConnection接口。在onServiceConnected中将service转成IMiddlePerson对象。
IMiddlePerson iMp = IMiddlePerson.Stub.asInterface(service);

3.通过iMp可以访问远程的方法

代码地址:demo

你可能感兴趣的:(Android 进程间通信AIDL学习)