私はバインダーを使ってお互いに通信する小さなAndroidアプリケーションを作っています。Android IPCの最大トランザクションサイズ?
私が知っているように、Android Binderは最大トランザクションサイズ(1MB)を持っています。たとえば、アプリケーションがバインダートランザクションを使用して1MBを超えるメッセージを送信しようとすると、TransactionTooLargeException
がスローされます。
なぜこれが限定されているのか理解できません。最大トランザクションサイズを制限する理由はありますか? Linux SOCK_STREAM
もIPCですが、制限はありません。
制限はありますか? Android文書では、トランザクションサイズを1MBに制限する理由が説明されていないようです(「Binderトランザクションバッファのサイズは限られていますが、なぜバッファを制限するのですか?」)。
フレームワークでIPCサイズが制限されていない場合、重要なケースはありますか?私が知っているように、LinuxはIPCの最大サイズに制限がなくてもうまく動作します。
なぜ、1MBですか? 1MBの制限の理論的根拠はありますか?それは単なる仮定ですか? – DeanStark