Я делаю небольшие приложения для Android, которые общаются друг с другом с помощью Binder.Максимальный размер транзакции для Android IPC?
Как я знаю, Android Binder имеет максимальный размер транзакции (1MB). Например, TransactionTooLargeException
бросается, когда приложения пытаются отправить сообщения более 1 МБ с использованием транзакции Binder.
Я не могу понять, почему это ограничено. Есть ли причина ограничить максимальный размер транзакции? Linux SOCK_STREAM
также является IPC, но он не имеет предела.
Есть ли веские основания для этого ограничения? Похоже, что документы Android не объясняют, почему они ограничивают размер транзакции до 1 МБ («Буфер транзакции Binder имеет ограниченный фиксированный размер», то почему они ограничивают буфер?).
И есть ли какой-либо критический случай, если рамки не ограничивают размер IPC? Поскольку я знаю, что Linux работает хорошо даже без ограничения на максимальный размер IPC.
Но почему 1MB? Есть ли теоретическая база для ограничения 1 МБ? или это просто предположение? – DeanStark