AIDL的基本用法

AIDL是AndroidInterfaceDefinitionLanguage的缩写,用于实现进程间通信(IPC)。它允许APP之间通过服务进行交互,支持基本数据类型、String、CharSequence以及实现了Parcelable接口的数据类型。参数定向tag如in、out、inout定义了数据的流向。AIDL文件可以声明数据类型和接口方法。
摘要由CSDN通过智能技术生成

AIDL 的定义

AIDL,即Android Interface Definition Language,Android接口定义语言。这门语言是为了实现进程间通信。每一个进程都有自己的一块独立的内存,都在自己的内存上存储自己的数据,执行自己的操作,每个进程之间你不知我,我不知你,而AIDL,就是两个进程之间沟通的桥梁。

aidl用来做什么

AIDL是Android中IPC(Inter-Process Communication)方式中的一种,AIDL是Android Interface definition language的缩写,对于小白来说,AIDL的作用是让你可以在自己的APP里绑定一个其他APP的service,这样你的APP可以和其他APP交互。

aidl文件支持的数据类型

1、八种基本数据类型:byte、char、short、int、long、float、double、boolean,
2、String、CharSequence
3、实现了Parcelable接口的数据类型
4、List类型。List承载的数据必须是AIDL支持的类型,或者是其他声明的AIDL对象
5、Map类型。Map承载的数据必须是AIDL支持的类型,或者是其他声明的AIDL对象

在使用其他声明的AIDL对象的时候必须要导包,即使要使用的AIDL对象文件和当前正在编辑的aidl文件在同一个文件夹下

参数定向TAG

所有的非基本参数都需要一个定向 tag 来指出数据的流向,不管是 in , out , 还是 inout 。基本参数的定向 tag 默认是并且只能是 in

in、out、inout称为AIDL接口方法参数的定向tag,代表着数据的流向。
in:服务端收到对象后对此对象做任何修改都不会同步给客户端。
out:无论客户端传过去的对象有没有提前设置值,在Binder传输过程中都会new一个空对象传递给服务端,服务端接收到的对象后对此对象所做的修改都会同步给客户端。
inout:服务端接受对象后,无论是客户端还是服务端对此对象所做的修改都会两端同步。
基本类型的参数只能是in。

aidl文件分类

aidl文件可以分为两类,一类用来声明实现了Parcelable接口的数据类型,以供其他AIDL文件使用那些非默认支持的数据类型。还有一类是用来定义接口方法,声明要暴露哪些接口给客户端调用。

demo 链接添加链接描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值