国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 长泰县| 宁夏| 辽源市| 和平县| 铜陵市| 辽宁省| 怀柔区| 大田县| 略阳县| 库尔勒市| 建湖县| 石城县| 湘潭县| 古田县| 呼伦贝尔市| 澄迈县| 邵武市| 海口市| 武川县| 民乐县| 清镇市| 大兴区| 定远县| 扶沟县| 正阳县| 卢湾区| 宿松县| 廊坊市| 方山县| 沐川县| 元氏县| 平罗县| 美姑县| 上栗县| 广东省| 当雄县| 迁西县| 乌兰察布市| 驻马店市| 定边县| 区。|