图文演示AIDL的使用全过程

来源:互联网 发布:数组词有哪些 编辑:程序博客网 时间:2024/05/18 14:14

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


下面开始教程:

一、创建AIDL服务端


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





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






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






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





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


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


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


8,编辑,安装到手机上,这样,AIDL的Service端就完成了


二、编写AIDL的客户端


1、创建AIDL文件夹,main ——— new —— Folder —— AIDL Folder,


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


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


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


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


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


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

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





8,安装,执行

原创粉丝点击