Android(安卓)进程间通信AIDL学习
16lz
2021-01-25
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
更多相关文章
- 一款霸榜 GitHub 的开源 Linux 资源监视器!
- android 常见死机问题-如何分析
- Android(安卓)进程间通信-Intent、Messenger、AIDL
- ①Android(安卓)NuPlayer播放框架
- Android(安卓)开发之 Services 服务
- Android(安卓)MVP 模式应用实例
- Security and Permissions 安全与权限 (一)
- Android(安卓)Java(2015-6-18 15:28、2016-1-30 21:18、2016-5-31
- android studio 中好用的插件————你值的拥有