Android Binder进阶篇二

一、Binder是什么?

  Binder是Android提供的进程IPC通信的工具。Binder通信使用的数据结构是Parcel。

二、Binder的优点?

  在Linux中进程IPC通信方式有很多,其中最常用的管道、Socket、共享内存、信号等。为什么Android还要设计一套新的IPC通信机制。

  • 性能,管道和共享内存都是比较高效的IPC通信方式。
  • 方便易用,管道和共享内存都是在内核开辟缓存的实现原理,不过,使用起来很复杂,使用上很容易出问题。
  • 安全性,Linux上提供的IPC通信都是不安全的,如:Socket通信,Socket的IP地址是开放的,只要知道IP地址都可以进行IPC通信,管道也是一样,命名管道是通过管道名通信的,只要知道管道名就可以通信。IPC安全性是如何体现,IPC通信安全主要是调用方的身份信息添加,调用方的身份信息不能在调用方添加吧,这样也不安全,安全的方式是在IPC通信机制内部的内核态添加调用方信息,就是在由IPC机制在内核中添加。

  Binder是基于以上三点设计的IPC通信。

三、原理

  1. Binder启动

    1. 打开Binder驱动(dev/binder)。
    2. 内存映射,分配缓冲区。
    3. 启动Binder线程。

  2. Binder通信

 

  3. 系统服务的Binder通信

原文地址:https://www.cnblogs.com/naray/p/15366672.html