通过前面文章的内容,我们要知道从应用进程把图元数据传输到 SurfaceFlinger 进程中处理,需要使用跨进程通信,而对于跨进程通信我们可以想到 socket 通信、Binder 通信以及共享内存这几种方式。
一、跨进程通信介绍
在 Android 系统中,由于每个应用程序默认运行在自己的进程中,为了实现不同应用或同一应用的不同组件之间的交互,就需要跨进程通信(IPC)。而 Socket 通信、Binder 通信和共享内存都是实现进程间通信(IPC)的方式,但它们各有特点和适用场景。
1、socket通信
在 Android 中,Socket 通信是一种基于 TCP/IP 协议栈的低级别通信方式,允许设备间通过网络进行双向数据传输。
工作原理
基于TCP/IP协议,通过网络连接进行数据传输。每个Socket连接代表一个双向通道,数据在客户端和服务器之间双向流动。
优点
- 通用性:适用于任何网络环境,可以跨设备通信。
- 可靠性:TCP 提供可靠的数据传输,保证数据