在桌面 Linux 上运行轻量级 Binder IPC 服务
移植 Android Binder IPC 机制到标准 Linux,实现服务端/客户端跨进程方法调用。 · 难度:入门 · +10XP
在桌面 Linux 上运行轻量级 Binder IPC 服务
Binder 是 Android 核心 IPC,但也可作为通用 Linux IPC 使用。本教程将编译 libbinder 和 servicemanager,在用户空间启动 Binder 驱动(需要加载 binder_linux 内核模块)。编写一个加法计算服务:客户端发送两个整数,服务端返回和。演示如何实现 BnInterface 与 BpInterface,以及通过 transact() 方法发送 Parcel 数据。
class BnAdder : public BnInterface {
status_t onTransact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) {
int a = data.readInt32();
int b = data.readInt32();
reply->writeInt32(a + b);
return NO_ERROR;
}
};