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

更多相关文章

  1. 一款霸榜 GitHub 的开源 Linux 资源监视器!
  2. android 常见死机问题-如何分析
  3. Android(安卓)进程间通信-Intent、Messenger、AIDL
  4. ①Android(安卓)NuPlayer播放框架
  5. Android(安卓)开发之 Services 服务
  6. Android(安卓)MVP 模式应用实例
  7. Security and Permissions 安全与权限 (一)
  8. Android(安卓)Java(2015-6-18 15:28、2016-1-30 21:18、2016-5-31
  9. android studio 中好用的插件————你值的拥有

随机推荐

  1. 准大学生,如何预习计算机专业?
  2. 这道算法题用「动态规划」求解可麻烦了!
  3. 新手如何有效的刷算法题(LeetCode)
  4. 转:基于 Android(安卓)NDK 的学习之旅----
  5. 讲道理,MD5 到底是不是加密算法?
  6. 神器面世:快速生成你的专属卡通头像!
  7. 一个有意思的分钱模拟问题
  8. 如何设计一个支持增量操作的栈
  9. Markdown 必备神器
  10. 《Python知识手册》,V3.0版来了,2021年,走起