I'm making small Android applications which communicate with each other using Binder.
As I know, Android Binder has a maximum transaction size (1MB). For example, TransactionTooLargeException
is thrown when applications try to send bigger than 1MB messages using Binder transaction.
I cannot understand why this is limited. Is there any reason to limit the maximum transaction size? Linux SOCK_STREAM
is also IPC, but it does not have a limit.
Is there any reasonable reason for that limit? It seems Android documents do not explain why they limit transaction size to 1MB.('The Binder transaction buffer has a limited fixed size' then why do they limit buffer?).
And are there any critical case if framework did not limit IPC size? As I know Linux works well even without a limit on maximum IPC size.