国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 邢台市| 古丈县| 特克斯县| 阜新| 阳新县| 关岭| 故城县| 桦川县| 武城县| 水城县| 常德市| 夏邑县| 浮梁县| 临邑县| 青河县| 新丰县| 明星| 娄底市| 东乌| 嵊州市| 博罗县| 岳池县| 河曲县| 灵川县| 遂溪县| 甘孜县| 利辛县| 肥东县| 巴彦县| 凤城市| 灵寿县| 陕西省| 东辽县| 蓝山县| 怀来县| 临沂市| 万年县| 新丰县| 全南县| 左云县| 北流市|