参考:https://blog.csdn.net/omnispace/article/details/105463974
一、无论是Android系统,还是各种Linux衍生系统,各个组件、模块往往运行在各种不同的进程和线程内,这里就必然涉及进程/线程之间的通信。对于IPC(Inter-Process Communication, 进程间通信)
1、Linux现有管道、消息队列、共享内存、套接字、信号量、信号这些IPC机制
2、Android额外还有Binder IPC机制
(1)Android OS中的Zygote进程的IPC采用的是Socket机制
(2)在上层system server、media server以及上层App之间更多的是采用Binder IPC方式来完成跨进程间的通信。
(3)对于Android上层架构中,很多时候是在同一个进程的线程之间需要相互通信,例如同一个进程的主线程与工作线程之间的通信,往往采用的Handler消息机制。
想深入理解Android内核层架构,必须先深入理解Linux现有的IPC机制;对于Android上层架构,则最常用的通信方式是Binder、Socket、Handler,当然也有少量其他的IPC方式,比如杀进程Process.killProcess()采用的是signal方式。下面说说Binder、Socket、Handler
二、Binder
1、Binder作为Android系统提供的一种IPC机制,无论从系统开发还是应用开发,都是Android系统中最重要的组成,也是最难理解的一块知识点,想了解