学习一个应用,首先从怎么使用开始,下面主要从 server 和 cilent 两方向开始。
一、服务端怎么使用?
#include "ITest.h"
int main()
{
// 获取一个 ProcessState 实例
// 每一个进程 只有 ProcessState 独一无二
// 三个过程
// 1. 单例模式
// 2. 构造
// 3. 打开 binder,mmap 分配一段内存接收数据
sp<ProcessState> proc(ProcessState::self());
// sm client 注册 得到IServiceManager
// 得到IServiceManager ,与另外一个进程 ServiceManager 通讯
p<IServiceManager> sm = defaultServiceManager();
sm->addService("name", new Test);
ProcessState::self()->startThreadPool();
IPCThreadState::self()->joinThreadPool();
}
二、客户端怎么使用?
#include "ITest.h"
int main() {
//获取service manager引用
sp < IServiceManager > sm = defaultServiceManager();
//获取名为"service.myservice"的binder接口
sp < IBinder > binder = sm->getService(String16("name"