博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么使用Binder而不是其他IPC机制
阅读量:6202 次
发布时间:2019-06-21

本文共 691 字,大约阅读时间需要 2 分钟。

本文搬运自:

使用Binder而不是其他(Semaphores , Message Queue, PIPES)作为IPC通信机制的理由:

  1. 所有基于文件系统IPC通信机制( 尤其pipes),由于缺少一个可以被所有程序读写的地方,这个地方用来让所有的进程可以/create 基于文件系统/socket形式的IPC端口。( 尽管可以使用/dev/socket,但它只能被系统进程,比如rile, zygote)
  2. 没有一种进程通信机制有Android需要的定位service(service location)的能力。在UNIX有PRC portmapper,而Android也需要相似的功能。(Android中的ServiceManager可以用来方便地注册/查找service)
  3. 有大量需要序列化的场景--比如intent、或其他message。Binder提供parcel抽象,它可以使用Parcel.java对数据进行封装。
  4. SysV 有一些严重的问题,比如说竞态条件、缺少权限控制。
  5. Message queues和管道不能传递description。UNIX Domain socket可以,但是不被使用(理由同1)
  6. Binder真的很轻量,并且自带权限机制。它也有一些非常漂亮的特点,比如唤醒recipient process,以及共享内存,这是其他机制所没有的。
  7. Binder从Palm开始就被使用了。以前的Palmer去了Android,然后同时将他们的代码带了进去。

转载于:https://www.cnblogs.com/kissazi2/p/4467050.html

你可能感兴趣的文章
C++ list的基本操作和使用
查看>>
ubuntu 下使用 jsoncpp库
查看>>
POJ 2255 Tree Recovery
查看>>
Binding Policy in .NET/ Assembly search order (Bin/GAC)
查看>>
Linux系统负载排查
查看>>
压缩感知,信号采集的重大突…
查看>>
Random.Next 方法 (Int32, Int32)
查看>>
如何根据经纬度获取地址
查看>>
视达配色教程12 粉红色的色彩性格是什么
查看>>
html5--6-11 CSS选择器7--伪类选择器
查看>>
html5--1.5 文本元素
查看>>
团队冲刺第七天
查看>>
用 Flask 来写个轻博客 (37) — 在 Github 上为第一阶段的版本打 Tag
查看>>
又是一天了
查看>>
[CDLinux]制作U盘CDLinux系统启动盘
查看>>
Java正则表达式详解
查看>>
漫水填充(泛洪填充、油漆桶)的C#实现(解决堆溢出问题)
查看>>
DOS命令(未完待续)
查看>>
Linux内核学习总结
查看>>
Centos6.4 编译安装 nginx php
查看>>