使用Android binder共享文件描述符

use*_*484 4 android android-binder

如何在C++中使用Android binder IPC在进程间共享文件描述符?你也可以发贴例子吗?

dig*_*edx 6

在客户端进程中,我们执行以下操作来执行活页夹事务

remote() - > transact(MYTRANSACTION,data,&reply,IBinder :: FLAG_ONEWAY);

数据和回复都是Parcel类型.使用Parcel对象在原生android中完成marshall和unmarshalling.它具有编组文件描述符的功能.

data.writeFileDescriptor(FD);

在服务器进程(即android中的Service)中,我们调用以下方法来读取服务器进程中的文件描述符.

int fd = data.readFileDescriptor();

在进程间共享文件描述符将由binder驱动程序处理.

重要说明:在销毁parcel对象之前复制接收的文件描述符.

您可以在Android-HelloWorldService中找到本机绑定器的实现和说明