Android系统IPC机制
介绍
在安卓系统上,我们知道每个应用都在自己的进程中运行。当应用加载时,应用程序管理器通知Zygote。Zygote分叉自身并复制虚拟机(VM)。因此,应用程序获得一个具有加载库的“热”VM。每个安卓应用都是沙盒化的,因此每个进程相互独立。沙盒概念用于管理或包含不同级别的权限,限制在每个个体应用中。因此,它需要IPC来在应用/服务/系统服务之间进行通信。在一个进程下,可能有多个线程,它们共享进程内存,但有自己的堆栈。
IPC是任何软件系统/操作系统的基础。安卓提供了两种实现IPC的方式。
- ashmem
- Binder
- Socket
上述三种方式支持设备内的IPC。让我们首先了解一下ashmem。
ashmem
ashmem(匿名共享内存子系统)类似于POSIX SHM(共享内存)的概念。不同之处在于,ashmem声称克服了内存泄漏的问题。ashmem不适用于安卓应用,而是被低级别的系统软件/进程使用。系统