我正在制作使用 Binder 相互通信的小型 Android 应用程序。
据我所知,Android Binder 有一个最大事务大小(1MB)。例如,TransactionTooLargeException
当应用程序尝试使用 Binder 事务发送大于 1MB 的消息时抛出。
我不明白为什么这是有限的。是否有任何理由限制最大交易规模?LinuxSOCK_STREAM
也是IPC,但没有限制。
这个限制有什么合理的理由吗?似乎 Android 文档没有解释为什么它们将事务大小限制为 1MB。('Binder 事务缓冲区具有有限的固定大小'那么他们为什么要限制缓冲区?)。
如果框架没有限制 IPC 大小,是否有任何关键案例?据我所知,即使对最大 IPC 大小没有限制,Linux 也能很好地工作。