Android使用AIDL通讯笔记

这块已经有很多大神写过了,不过自己一直也不太了解,记录下防止自己忘了.
AIDL主要用在进程间通讯,内部使用Binder机制传输

创建aidl接口

studio里面创建一个接口很简单,只要选择新建->aidl文件,就会自动生成一个范例文件,只要在这里面改改就好了.
在这里插入图片描述
aidl接口可以接受一般的基本类型还有他们的list,map,需要传输其他类的话需要在其中声明并实现Parcelable接口.

parcelable BeanParcelable;
----------------------------

import com.example.aidltest.BeanParcelable;

interface IMyAidlInterface {
    void basicTypes(in BeanParcelable bean);
}

这里一定要记得加in out.运行之后,会自动生成一个同名的java文件.
在这里插入图片描述这也能看出来是在binder的线程里运行的

in out 参数

  • in只输入,无法返回数据
  • out只返回,无法发送数据
  • inout 两者皆可
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    out只传了个全为空的数组

生成的类

主要生成了Stub,Proxy两个类实现了传输的方法.
客户端调用Proxy,Sutb实现了onTransact方法,服务端继承Stub实现接口.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值