【Android-Service】AIDL的介绍及基本使用方法

本文详细介绍了AIDL(Android Interface Definition Language)的使用步骤,包括创建AIDL文件、定义方法、生成Java文件、实现接口、服务中返回接口以及通过IBinder调用方法。AIDL允许在不同应用间进行服务交互,或在同一应用内实现复杂的组件通信。
摘要由CSDN通过智能技术生成

AIDL定义:安卓接口定义语言,可以在一个应用中绑定其他应用的service,实现应用之间的交互,也可以在同一个应用中使用AIDL

AIDL使用的步骤

  1. 创建一个AIDL
  2. 在AIDL中定义方法
  3. make project
  4. 实现类 extends AIDL.Stub
  5. service中返回AIDL
  6. 通过绑定服务中返回的ibinder对象调用AIDL中的方法
步骤1:创建一个AIDL
注意! AIDL的文件夹是与java文件夹同级的!

在这里插入图片描述

2.在AIDL中定义方法

AIDL其实是一个interface

此处的注释不能出现中文,否则在第三步中无法生成正确的.java文件
此处的in只是一个标记
  1. in标记:传参数给服务端使用,服务端只能读,不能改
  2. out标记:将对象给服务端,对象中的内容是默认的,服务端进行修改,修改后可传给客户使用
  3. inout标记:结合in标记与out标记的作用

在这里插入图片描述

3.make project生成对应的java文件

make project在Build目录下可找到!
重构完成的项目可在该目录下找到AIDL对应的.java文件
在这里插入图片描述

4.实现类继承自AIDL.Stub

在这里插入图片描述
控制台中打印出相关信息仅为方便测试:
在这里插入图片描述

5.service中返回AIDL接口

在这里插入图片描述

6.通过绑定服务返回的ibinder对象实现AIDL中的方法

创建ibinder对象,使用AIDL中的方法:

使用AIDL定义的接口可以直接调用Stub.asinterface()方法返回一个ibinder
远程调用可能会导致异常,直接try-catch一下即可

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值