1 总结
- 音视频媒体播放机制主要在binder.
- BpBinder是个代理, 主要传输工作交给了ICPThreadState类.
- Interface用来制订业务, Binder用来实现通讯, 分工明确.
- 通讯属于C-S模式, Bnxxx是本地对象, Bpxxx是代理对象, 一端是本地服务, 另一端是远程代理.
- 本地<->代理 类型的转换是在kernel中binder.c文件的binder_transaction函数中实现的.
- binder_transaction函数会为代理生成handle, 在用户空间通过ProcessState::getStrongProxyForHandle创建BpBinder代理.
- Parcel类readStrongBinder和writeStrongBinder记录或还原obj的type, binder, cookie.
- Binder驱动层面的结构体未在图中体现. 需要单独分析.