zoukankan      html  css  js  c++  java
  • 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通信

  • 相关阅读:
    G a+b+c+d=?
    H Kuangyeye and hamburgers
    python 实现加法
    高精度板子
    angular项目一
    angular大牛的博客
    autocomplete
    angular的 表单
    快捷方式控制台调试each这种方法的时候怎么停
    自己练习的一些应该熟记的代码
  • 原文地址:https://www.cnblogs.com/naray/p/15366672.html
Copyright © 2011-2022 走看看