【Android知识笔记】进程通信(一)

一、Android Framework 用到了哪些 IPC 方式

Linux 的 IPC 方式有:

  • 管道
  • Socket
  • 共享内存
  • 信号
  • 信号量
  • 消息队列

管道通信

  • 管道是基于pipefs文件系统实现的,也就是多个进程通过对同一个文件进行读写来实现进程间通信。
  • 半双工,单向的,通过 pipe(fds) 系统函数调用可得到一对文件描述符,一个fd[0]只读,一个fd[1]只写
  • 一般是在父子进程之间使用(匿名管道),子进程会继承父进程生成的描述符
  • 父进程fork出子进程后,子进程继承了父进程的读写fd,此时父进程关闭只读描述符fd[0]保留只写描述符fd[1],而子进程关闭只写描述符fd[1]保留只读描述符fd[0],这样父进程就可以向子进程写数据进行通信了。即父进程写,子进程读,只能一端写一端读,半双工通信。
  • 管道在内存中的实现本质就是一段内核buffer缓冲区(

你可能感兴趣的:(Android知识笔记,android,IPC,Binder,进程通信,AIDL,Socket,ServiceManager)