安卓IPC机制:Binder和AIDL
2018-01-24 07:57
253 查看
1、继承树
2、介绍
Binder是Android跨进程通信方式,解决基于C/S模式的进程间通信。
实现了IBinder接口,是ServiceManager连接各种Manager的接口。
Binder在安卓系统中的位置:
3、Binder实现IPC
Client 通过bindService 后,返回一个IBinder指针,可以调用Binder.transact()函数把数据发送给Service中是Binder类,Service的Binder类中,调用Binder.ontransact()可以接收处理客户端发送的数据,并返回数据。(代码如下,bindService部分见Service介绍部份)
客户端:
服务器:
4、AIDL实现RPC
(1)服务端onTransact函数实现远程调用
AIDL的定义了一个I****接口,接口的stub类中,在onTransact函数里,定义了对远程调用的实现,如以下(HotkeyService的AIDL代码)
(2)客户端asInterface函数,实现(IBinder)类型转换
<1>、查询本地是否有此类
<2>、如果没有,返回Proxy类
5、Binder RPC流程图
2、介绍
Binder是Android跨进程通信方式,解决基于C/S模式的进程间通信。
实现了IBinder接口,是ServiceManager连接各种Manager的接口。
Binder在安卓系统中的位置:
3、Binder实现IPC
Client 通过bindService 后,返回一个IBinder指针,可以调用Binder.transact()函数把数据发送给Service中是Binder类,Service的Binder类中,调用Binder.ontransact()可以接收处理客户端发送的数据,并返回数据。(代码如下,bindService部分见Service介绍部份)
客户端:
服务器:
4、AIDL实现RPC
(1)服务端onTransact函数实现远程调用
AIDL的定义了一个I****接口,接口的stub类中,在onTransact函数里,定义了对远程调用的实现,如以下(HotkeyService的AIDL代码)
(2)客户端asInterface函数,实现(IBinder)类型转换
<1>、查询本地是否有此类
<2>、如果没有,返回Proxy类
5、Binder RPC流程图
相关文章推荐
- 安卓IPC之利用AIDL分析Binder的工作过程
- IPC机制——AIDL——Binder“连接池”
- Android的IPC机制Binder的各个部分
- Android IPC机制(三)——利用AIDL实现跨进程通信
- 通过 AIDL 分析 Binder 的工作机制
- AIDL使用和Binder机制详解
- IPC binder 机制历史
- Android的IPC机制Binder的各个部分
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
- 为什么Android要采用Binder作为IPC机制?
- Android进程间通信(IPC)机制Binder简要介绍和学习计划
- Android进程间通信(IPC)机制Binder简要介绍和学习计划
- Android进程间通信(IPC)机制Binder简要介绍和学习计划
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
- Android的IPC机制Binder的各个部分
- 为什么通过AIDL方式使用binder机制的时候如果Bn端函数比较耗时Bp端会ANR
- IPC机制系列之三 Android中的IPC方式 (AIDL)
- Android Binder机制的Native应用&&Android系统RPC与Binder && Android Service学习之AIDL, Parcelable和远程服务
- Binder---- Android 的IPC 通信机制