国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

binder 進(jìn)程間通信筆記

2019-11-09 14:44:17
字體:
供稿:網(wǎng)友

1.bbinder binder實(shí)體對(duì)象

2.bpbinder binder引用對(duì)象

3.binder代理對(duì)象

4.ibinder bbinder 和bpbinder都繼承與ibinder

注意:應(yīng)用需要使用的是binder的代理對(duì)象,使用前需要將引用對(duì)象轉(zhuǎn)換成代理對(duì)象。

ICameraService.Stub.asInterface(binder);

defaultServiceManager 拿到的是serviceManager 其實(shí)也是一個(gè)binder服務(wù)

getService()是拿到的普通binder服務(wù)

例子

class BpExampleService : public BpInterface<IExampleService>

{

virtual int get()

{

Parcel data,reply;

data.writeInterfaceToken(IexampleService::getInterfaceDescriptor());

remote()->transact(EXAMPLE_GET,data,&reply);  //remote()函數(shù)得到Binder引用對(duì)象的指針,然后調(diào)用它的transcat() 此函數(shù)會(huì)調(diào)用IPCThread類的函數(shù)來向驅(qū)動(dòng)傳遞數(shù)據(jù)

                                                                                              最后到了onTransact方法調(diào)用遠(yuǎn)程實(shí)體對(duì)象ExampleService 類對(duì)應(yīng)的方法

return reply.readInt();

}

}

status_t BnExampleService::onTransact(...)

{

switch(code)

{

case EXAMPLE_GET:

CHECK_INTERFACE(IExampleService,data,reply);

reply->writeInt(get());  //調(diào)用get方法

break;

case EXAMPLE_SET:

CHECK_INTERFACE(IExampleService,data,reply);

set(data->readInt()); //調(diào)用set方法

break;

default:

return BBinder::onTransact(code,data,reply,flags);

}

}

圖片參考此處http://www.cnblogs.com/winfu/p/6061296.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 临泽县| 崇义县| 奎屯市| 英吉沙县| 洞口县| 吉林市| 安吉县| 台中县| 清丰县| 勐海县| 西丰县| 聊城市| 蓬溪县| 洛南县| 长武县| 荔波县| 和田市| 剑川县| 天台县| 石景山区| 夏河县| 河池市| 浑源县| 金阳县| 德清县| 星子县| 普宁市| 连南| 阳曲县| 峡江县| 崇州市| 商洛市| 长顺县| 邓州市| 明溪县| 鸡西市| 田林县| 阳泉市| 阳泉市| 宁河县| 肇东市|