管道
1.半双工,单向的
2.一般在父子进程之前使用
socket
全双工的,可读可写
两个进程无需存在亲缘关系
共享内存
很快,不需要多次拷贝
进程无需存在亲缘关系
信号
1.单向,发出去之后怎么处理是别人的事
2.只能带个信号,不能带别的参数
3.知道进程pid就可以发信号了,也可以一次给一群进程发信号
问题:android framework用到了哪些ipc方式
总结:
列举用到了哪些ipc方式
说说这些ipc方式的特点
举例说明framework里怎么用到的
谈谈多binder的理解
binder是干嘛的
进程间通信
为什么选择binder作为最重要的IPC通信机制
性能,binder是可以跨物理内存,同时映射到内核和目标进程的用户空间,只拷贝一次
方便易用,
安全,身份信息由ipc机制在内核态添加
Binder交互模型
绘制binder通信架构图,讲解原理
进程如何启动binder机制?
打开binder驱动
内存映射,分配缓冲区
启动binder线程
一次完成的IPC通信流程
了解binder整体架构原理
了解应用和binder驱动的交互方式
了解IPC过程的通信协议
Linux内核的基础知识
1.进程隔离/虚拟地址空间(进程间互不干扰)
2.系统调用(用户空间通过系统调用访问许可资源)
3.binder驱动
什么时候启用的binder机制
zygote创建应用进程后,在进程初始化时启用binder(应用启动流程简单说下)
怎么启用Binder机制
1.打开binder驱动
2.映射内存,分配缓冲区
3.注册binder线程
4.进入binder loop