Android笔记---Binder

Binder是Android中使用最广泛的IPC机制,用于进程间通讯。通过计算机网络的概念,可以将Binder机制的各个元素进行一下映射:
- Binder 驱动—路由器
- Service Manager—DNS
- Binder Client—客户端
- Binder Server—服务器

Binder的原理可以概述为,进程1(客户端)希望与进程2(服务器)互相访问,但是由于跨进程(跨网络),所以需要借助Binder驱动(路由器)把请求正确投递到对方所在进程(网络),参与通信的进程需要持有Binder“颁发”的而已标志(IP地址),而Service Manager就是DNS映射器。

这里写图片描述

Client:服务的调用者,应用程序中,可以通过List packs = getActivity().getPackageManager().getInstalledPackages(0);来向ServiceManager请求服务。
Server:服务提供者,提供很多常用服务,如ActivityService、WindowManager,这些系统服务,能够让我们使用WiFi,display等等。
Service Manager:类似于网络中的DNS,绝大多数的服务都是通过Service Manager来获取,通过这个DNS来屏蔽掉对其他server的直接操作。
Binder Driver:底层的支持逻辑,承担路由的作用。

应用程序(Client) 首先向 Service Manager 发送请求 WindowManager 的服务,Service Manager 查看已经注册在里面的服务的列表,找到相应的服务后,通过 Binder kernel 将其中的 Binder 对象返回给客户端,从而完成对服务的请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值