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通信

  • 相关阅读:
    Node.js Express 框架
    Node.js RESTful API
    vim中自动格式化代码
    如何去掉linux配置文件的注释行和空行
    ImmutableJS
    JavaScript的相关知识
    React容器组件和展示组件
    node.js
    svg学习
    Redux 基础概念
  • 原文地址:https://www.cnblogs.com/naray/p/15366672.html
Copyright © 2011-2022 走看看