Android Binder通信一 Binder通信整体框架

1 前言

Binder通信机制是Android中很重要的一个概念,贯穿整个Android系统。因此无论是作为一个Android系统开发者还是App开发者,都应该重点掌握。关于Binder机制的博客文章,网上都很多了,很多写的也比较好。因此本系列仅仅作为深入掌握Binder的一个学习笔记。废话不多少,开始吧。

2 Binder通信整体框架

Binder通信的整体框架如下图:
这里写图片描述
上面只是Binder通信的一个简图,大体的讲解了Binder通信涉及到的角色。

可以看到,Binder通信是一个典型的C/S架构,一共有四个角色Client、Server、ServiceManager以及binder驱动。各个角色的作用如下:

Client:客户端,获取和使用服务的的对象,例如,在Android系统中,我们常常用Context#getSystemService(@ServiceName @NonNull String name)获取的就是一个Client,例如ActivityManager,WindowManager等都是一个Client。

Server:服务提供商,主要为客户端提供各种服务,例如常见的ActivityManagerService,WindowManagerService等。这些服务往往是管理整个Android系统的各种功能,是Android Framework层的核心。

ServiceManager: ServiceManager用于管理系统中的各种服务,因为Android系统功能很强大,往往有几十个服务,因此需要一个统一的服务管理者来管理。

Binder驱动: Binder通信的底层载体和支撑。Binder驱动支撑着整个Binder IPC过程,它是Binder实现IPC的基础,对于一般APP开发者来说,了解的少。但是它却有很大的作用,因此仍然需要了解。

3 Binder通信机制要点

个人觉得,要掌握Binder通信,可以从以下几个方面来掌握

1 Android 中使用Binder的原因
2 Binder驱动与协议
3 ServiceManager如何管理服务
4 Server如何注册服务
5 Client如何获取服务和使用服务
6 Binder 线程池工作过程

这每一个小点,都打算写一篇博客来分析,后续的博客打算逐步更新。

暂时写这么多吧,后续根据实际情况增加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值