Binder 是 Android 跨进程通信的核心,也是源码面试的"深水区"。
- 为什么用 Binder:性能(一次拷贝)、安全(UID 校验)、稳定
- 架构组成:Client / Server / ServiceManager / Binder 驱动
- 通信流程:代理对象 → Binder 驱动 → 目标对象
- 内存映射:mmap 实现一次拷贝(binder_proc / binder_node / binder_ref)
- 驱动层:binder_ioctl / BC_TRANSACTION / 线程管理
- Binder 线程池:服务端多线程处理请求