注意:本文不做任何理论性的解释说明,只有实际操作,至于Service的绑定过程,AIDL的实现过程之类的,一律不做深入讲解,具体的原理讲解,请跳转学习AIDL,这一篇文章就够了,这篇文章讲解的很详细,在此致敬


下面开始教程:

一、创建AIDL服务端


1、鼠标选中main文件夹,右键,new —— ADIL —— AIDL file,如图所示


图文演示AIDL的使用全过程


2,输入aidl文件的名字,不要加后缀,如图所示,然后点击确定即可


图文演示AIDL的使用全过程



3,生成后的目录结构如下所示


图文演示AIDL的使用全过程



4,编写AIDL接口,如图所示


图文演示AIDL的使用全过程


5,点击工具栏的build——make project,studio会帮我们把ADIL文件编译成二进制文件


6,创建AIDL的实现类,在java文件夹上右键,new Service , 输入文件名,系统会自动生成对应的文件,并且会自动在AndroidMainfest中帮我们配置好,生成的Service如图
图文演示AIDL的使用全过程

7,实现前面定义的接口,具体编写方法看图

图文演示AIDL的使用全过程
8,编辑,安装到手机上,这样,AIDL的Service端就完成了


二、编写AIDL的客户端


1、创建AIDL文件夹,main ——— new —— Folder —— AIDL Folder,
图文演示AIDL的使用全过程

2,创建AIDL的存放文件夹,aidl ——new —— pacakge , 粘贴进我们前面生成的AIDL文件的包名,粘贴好之后,如图所示
图文演示AIDL的使用全过程

3,把在Service端端生成的AIDL文件粘贴进我们创建好的文件夹里面,如图所示
图文演示AIDL的使用全过程

4,点击工具栏的build——make project


5,把ADIL作为一个属性引入,同时把ServiceConnection也作为一个属性引入(可以在其它位置实现后再引入,我这里直接作为匿名内部类引入了)


6,在onServiceConnected里面实例化myAidlInterface,如图所示

图文演示AIDL的使用全过程

7,在适当的时候绑定Service,(一定要在调用之前绑定),如图所示,实际使用中,最好做判空处理(示例代码中没写),注意在解绑,防止内存泄漏等问题

new ComponentName("cn.showmac.aidlservice", "cn.showmac.aidlservice.PlusService")
ComponentName的两个参数,第一个是AIDL文件的包名,第二个是要返回AIDL对象的Service


图文演示AIDL的使用全过程


8,安装,执行

相关文章:

  • 2021-10-02
  • 2022-12-23
  • 2021-06-07
  • 2021-05-18
  • 2022-01-20
  • 2021-08-28
  • 2021-05-12
  • 2021-05-29
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-08
  • 2021-11-26
  • 2021-11-21
  • 2021-09-30
相关资源
相似解决方案