Skip to content
阅读进度

如何理解Binder 大数据传输限制? ​

返回 Framework 与系统服务 目录

标准回答 ​

官方对Binder事务缓冲的常见限制说明是约1MB,并由进程中同时进行的事务共享,不是每个参数或每次调用都拥有独立1MB。对象封送和多个并发事务也占资源,所以不能把载荷刚好控制在1MB当作安全方案。

图片或大数据应优先使用文件描述符、共享内存或可授权的URI,把控制信息与数据传输分开。仍需要设计所有权、访问权限、读写同步和释放时机。

Intent、Bundle或保存状态里放大Bitmap会把问题带到IPC或状态恢复流程,Parcelable也不会自动绕开传输大小和内存成本。

追问与回答 ​

Parcelable比Serializable快,所以能传任意大小吗 ​

不行。序列化效率与Binder事务容量是两回事,大对象还会增加复制、分配和GC负担。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。