Android Binder机制实现进程间数据交换(不使用aidl实现)

本文详细介绍了Android中Binder机制在进程间通信(IPC)的应用,讲解了服务端如何创建Binder类并重写onTransact()方法,客户端如何通过反射获取Binder引用以调用服务。通过一个简单的播放音乐的例子展示了Binder通信过程,并对比了使用AIDL的情况。文章还提及了后期学习计划,包括更深入研究Binder、Pacel数据结构以及DexClassLoader类的应用。
摘要由CSDN通过智能技术生成
一、Binder机制(从framework层分析,Java层面分析)

在Android中,Binder用于完成进程间通信(IPC),即把多个进程关联在一起。

比如,普通应用程序可以调用音乐播放服务提供的播放、暂停、停止等功能。 Binder

工作在Linux层面,属于一个驱动只是这个驱动不需要硬件,或者说其操作的硬件是

基于一小段内存。从线程的角度来讲,Binder驱动代码运行在内核态,客户端程序调

Binder是通过系统调用完成的。Binder是一种架构,这种架构提供了服务端接口、

Binder驱动、客户端接口三个模块。Binder实际上是一种是C/S通信模式。C/S通信过

的重要函数:

a)在服务端,创建需要创建Binder类或者其衍生子类,其中需要重写Binder的

onTransact(int code, Parcel data, Parcel reply, int flags)方法,完成对客户端请求的监听;

其中,code是服务端和客户端约定的一种信息约定;

b)在客户端,首先要获得服务端的Binder对象的引用(至于具体怎么获取,后面会

详细说明,这里知道这个概念即可),在或得Binder对象的引用之后,可以调用binder.

transact(int code,Parcel data,Parcel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值