AIDL + Binder相关知识介绍

AIDL相关知识:
1、AIDL是什么?
  AIDL(Android接口定义语言)是Android提供的一种进程间通信(IPC)机制。
  在Android上,一个进程通常无法访问另一个进程的内存。因此需要使用AIDL来处理。
  
2、AIDL支持的数据类型?
   一共支持4种数据类型:
   ①Java的基本数据类型
   ②Liat和Map
     a.元素必须是AIDL支持的数据类型
     b.Server端具体的类里必须是ArrayList或者HashMap
   ③其他AIDL生成的接口
   ④其他Parcelable的实体

3、AIDL如何编写?
   ①创建AIDL
      a.创建要操作的实现类,实现Parcelable接口,以便序列化/反序列化
      b.新建aidl文件夹,在其中创建接口aidl文件以及实体类的映射aidl文件
      c.make Project,生成Binder的Java文件
   ②服务端
      a.创建Service,在其中创建上面生成的Binder对象实例,实现接口定义的方法
      b.在onBind()中返回
   ③客户端
      a.实现ServiceConnection接口,在其中拿到AIDL类
      b.bindService()
      c.调用AIDL类中定义好的操作请求
      
      
Binder相关知识
    Binder 是一个类,实现了IBinder接口,IBinder接口定义了与远程对象的交互协议。通常
在进行跨进程通信时,不需要实现Binder接口,直接从Binder派生即可。

    除了实现Binder接口外,Binder中还提供了两个重要的接口:
    a.Transact(),客户端调用,用于发送调用请求。
    b.onTransact(),服务端响应,用于接收调用请求。
    
Binder成为了客户端与服务端的通信媒介,其主要作用在Service组件应用中。

Service与客户端通信,有两种方式,AIDL和Messenger.AIDL基于Binder,而Messenger基于AIdl.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值