美文网首页程序员今日看点
浅析Binder(一)——开篇

浅析Binder(一)——开篇

作者: NoOneDev | 来源:发表于2016-12-24 11:42 被阅读164次

Binder是Android系统提供的一种IPC(进程件通信)机制,由于Android基于Linux,所以除了Binder之外,还存在其他IPC机制,比如:管道,socket等。Binder的优势在于灵活,方便及安全

Android系统中主要有四个组件Client , Server , Service Manager , BinderDriver组成,关系图如下

binder.jpg
  • ClientSrever , ServiceManager 在用户控件实现,只有Binder Driver是在内核空间实现。(也就是多对于还没研究内核的开发者而言,Binder Driver可先只做了解。)

  • Server进程先注册一些ServiceServiceManager中,所以serverServiceManager的客户端,而ServiceManager是服务端,ServiceManger是一个守护进程,并向Client提供查询Server接口。

  • Client想要使用某个Service时先到ServiceManager中获取Service的相关信息,然后根据这些信息与Service所在Server进程间简历通信通路

  • Binder驱动程序就是用来在三者之间传递信息的一种工具

大家会发现,这个很像代理模式,不应该说就是代理模式。通俗的理解是:
宅男Client女神Server婚介所ServiceManager,网络平台Binder Driver女神Server太优秀导致没人敢要,所以先将自己的有的一些服务Service(造娃,嘿嘿嘿...)通过网络(Binder Driver)的方式挂载到婚介所,然后等待别人的联系。某一天宅男(Client)感觉很空虚,于是想娶个媳妇回家传宗接代,但是一直没有找到合适的对象,但是它知道有ServiceManager这样一个婚介所,所以他就把他对老婆的要求(造娃,嘿嘿嘿 。。。)告诉ServiceManager,然后ServiceManager查看记录发现还真有这么一个合适的对象,然后就将这个女神的PID 告诉了它,然后宅男Client再把他自己的PID告诉女神Server女神没办不想成为剩女所以只能和他通过上网的方式聊天骗取感情,但是他们一直没有见过面,所以只能通过Binder这个平台来发消息,收消息。

PS:

Binder进程间通信机制的每一个Server进程和Client进程都维护一个Binder线程池来处理进程间通信请求,因此Server进程和Client进程可以并发地提供和访问服务。Binder驱动程序向用户空间暴露了一个设备文件/dev/binder,使得应用程序进程可以间接地通过它来建立通信通道。

上面纯属扯淡,有兴趣的还是自己去看书吧!
《深入理解Android5.0源码》
《深入理解Android 卷I》
《Android系统源代码情景分析》罗升阳大神著

相关文章

  • 浅析Binder(一)——开篇

    Binder是Android系统提供的一种IPC(进程件通信)机制,由于Android基于Linux,所以除了Bi...

  • Android Binder通信原理文章汇总

    Android Binder浅析 — CameraService往ServiceManager添加服务 Andro...

  • 浅析Binder

    Binder浅析 1. 背景知识 Binder在Android系统中是用来进行进程间通信的,所以在介绍Binder...

  • Android中Binder

    根据鸿洋的博文:Android aidl Binder框架浅析,用Google 的 Gliffy应用绘制。

  • Android源码分析 - Binder概述

    开篇 本篇无源码分析,只对Binder做通信过程和基础架构的介绍 Binder是Android中最重要的一种进程间...

  • Android Binder实现浅析-Binder驱动

    简介 Android是如何实现跨进程通信的,大家熟悉的Binder是什么,怎么设计的,进程间的数据如何发送接收的。...

  • 浅析ActivityManagerService(一)——开篇

    今天开始我么开始学习ActivityManagerService相关只是,其中包括ActivityManagerS...

  • 重庆火锅

    ------浅析《火锅英雄》 正如影片开篇所言,重庆是一座火锅的城市。 火...

  • Binder浅析——AIDL的使用

    Binder浅析——AIDL的使用 前言 我们知道Android的进程之间是相互隔离的,内存独立,互相之间是不能直...

  • Android Binder机制浅析

    引言 在写这篇文章之前,参考了很多资料,但是依旧不敢下笔(或者说是不知道从何下笔)。怕自己理解有误差,对大家造成不...

网友评论

    本文标题:浅析Binder(一)——开篇

    本文链接:https://www.haomeiwen.com/subject/nmplvttx.html