如何在C++中使用Android Binder IPC跨进程共享文件描述符?你能够提供示例代码吗?
如何在C++中使用Android Binder IPC跨进程共享文件描述符?你能够提供示例代码吗?
remote()->transact(MYTRANSACTION, data, &reply, IBinder::FLAG_ONEWAY);
data和reply的类型是Parcel。使用Parcel对象在原生Android中执行marshalling和unmarshalling操作。它具有将文件描述符进行marshalling的功能。
data.writeFileDescriptor(fd);
int fd = data.readFileDescriptor();
共享文件描述符跨进程将由binder驱动程序处理。
重要提示:在包裹对象被销毁之前,复制接收到的文件描述符。
您可以在Android-HelloWorldService中找到本地binder的实现和解释。