如何在 C++ 中使用 Android binder IPC 跨进程共享文件描述符?您也可以发布示例吗?
问问题
5915 次
1 回答
7
在客户端进程中,我们执行以下操作来执行绑定事务
remote()->transact(MYTRANSACTION, data, &reply, IBinder::FLAG_ONEWAY);
data 和 reply 是 Parcel 类型的。编组和解组是在原生 android 中使用 Parcel 对象完成的。它具有编组文件描述符的功能。
data.writeFileDescriptor(fd);
在服务端进程(即android中的Service)中,我们调用下面的方法来读取服务端进程中的文件描述符。
int fd = data.readFileDescriptor();
跨进程共享文件描述符将由binder 驱动程序处理。
重要:在包裹对象被销毁之前复制接收到的文件描述符。
你可以在Android-HelloWorldService找到原生绑定器的实现和解释
于 2013-02-06T07:58:49.773 回答