惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Help Net Security
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
Netflix TechBlog - Medium
S
SegmentFault 最新的问题
The Cloudflare Blog
I
InfoQ
美团技术团队
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
L
LangChain Blog
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog

博客园 - 陈哈哈

Claude Code Windows 通知配置指南 Windows 上 agent-browser 使用问题排查与解决 踩坑实录:win11中Claude Code MCP 配置 context7 失败与调用问题全排查 Android N 多窗口模式,你需要知道的一切 Mac下设置Android源代码编译环境 Android编译过程中的碎碎念 编译Android AOSP代码 国内不FQ下载Android 源代码 android-plugmgr源代码分析 收集最好的Mac软件和使用方法 Android什么时候进行View中Background的加载 Android属性动画源代码解析(超详细) Fragment提交transaction导致state loss异常 Android怎么找到最优适配资源 解决在onCreate()过程中获取View的width和Height为0的4种方法 【译】使用newInstance()来实例化fragment 【译】Activitys, Threads和 内存泄露 【译】什么导致了Context泄露:Handler&内部类 【译】用Fragment解决屏幕旋转(状态发生变化)状态不能保持的问题
为什么使用Binder而不是其他IPC机制
陈哈哈 · 2015-04-29 · via 博客园 - 陈哈哈

本文搬运自:Advantages of using Binder for IPC in Android

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

  1. 所有基于文件系统IPC通信机制( 尤其pipes),由于缺少一个可以被所有程序读写的地方,这个地方用来让所有的进程可以mkfifo/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,然后同时将他们的代码带了进去。