![粗浅的CBinder服务和客户例子_第1页](http://file4.renrendoc.com/view/ed0da02d4000aa8bf4c160951d285f89/ed0da02d4000aa8bf4c160951d285f891.gif)
![粗浅的CBinder服务和客户例子_第2页](http://file4.renrendoc.com/view/ed0da02d4000aa8bf4c160951d285f89/ed0da02d4000aa8bf4c160951d285f892.gif)
![粗浅的CBinder服务和客户例子_第3页](http://file4.renrendoc.com/view/ed0da02d4000aa8bf4c160951d285f89/ed0da02d4000aa8bf4c160951d285f893.gif)
![粗浅的CBinder服务和客户例子_第4页](http://file4.renrendoc.com/view/ed0da02d4000aa8bf4c160951d285f89/ed0da02d4000aa8bf4c160951d285f894.gif)
![粗浅的CBinder服务和客户例子_第5页](http://file4.renrendoc.com/view/ed0da02d4000aa8bf4c160951d285f89/ed0da02d4000aa8bf4c160951d285f895.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
粗浅的 C++Binder 服务和客户例子只支持注册服务获取服务,很粗浅,留底备用目录结构.├── Android.mk├── include│ └── IMyBinder.h├── lib│ ├── Android.mk│ └── IMyBinder.cpp├── server│ ├── Android.mk│ ├── main.cpp│ ├── MyBinder.cpp│ └── MyBinder.h└── test├── Android.mk└── test.cppIMyBinder.h#include<stdint.h>#include<sys/types.h>#include<utils/RefBase.h>#include<utils/Errors.h>#include<binder/IInterface.h>namespaceandroid{//----------------------------------------------------------------------------classIMyBinder:publicIInterface{public:DECLARE_META_INTERFACE(MyBinder);};//----------------------------------------------------------------------------classBnMyBinder:publicBnInterface<IMyBinder>{public:virtualstatus_t onTransact(uint32_tcode,constParcel&data,Parcel*reply,uint32_tflags=0);};//----------------------------------------------------------------------------};//namespaceandroidIMyBinder.cpp#defineLOG_TAG"MyBinder"#include<stdint.h>#include<sys/types.h>#include<binder/Parcel.h>#include"IMyBinder.h"namespaceandroid{classBpMyBinder:publicBpInterface<IMyBinder>{public:BpMyBinder(constsp<IBinder>&impl):BpInterface<IMyBinder>(impl){}};IMPLEMENT_META_INTERFACE(MyBinder,"demo.IMyBinder");status_tBnMyBinder::onTransact(uint32_tcode,constParcel&data,Parcel*reply,uint32_tflags){switch(code){default:returnBBinder::onTransact(code,data,reply,flags);}}};//namespaceandroidMyBinder.h#include<binder/BinderService.h>#include"IMyBinder.h"namespaceandroid{classMyBinder:publicBinderService<MyBinder>,publicBnMyBinder,protectedThread{public:staticcharconst*getServiceName(){return"demo.MyBinder";}MyBinder();virtual~MyBinder();virtualstatus_tonTransact(uint32_tcode,constParcel&data,Parcel*reply,uint32_tflags);virtualbool threadLoop();};};//namespaceandroidMyBinder.cpp#include"MyBinder.h"namespaceandroid{MyBinder::MyBinder()BnMyBinder(),Thread(false){}MyBinder::~MyBinder(){}status_tMyBinder::onTransact(uint32_tcode,constParcel&data,Parcel*reply,uint32_tflags){switch(code){default:returnBBinder::onTransact(code,data,reply,flags);}returnNO_ERROR;}boolMyBinder::threadLoop(){returntrue;}};//namespaceandroidmain.cpp#include<binder/BinderService.h>#include"MyBinder.h"usingnamespaceandroid;intmain(intargc,char**argv){MyBinder::publishAndJoinThreadPool();return0;}test.cpp#include<utils/RefBase.h>#include<utils/Log.h>#include<binder/IServiceManager.h>#include"IMyBinder.h"usingnamespaceandroid;sp<IMyBinder>gMyBinder;constsp<IMyBinder>&getMyBinderService(){sp<IServiceManager>sm=defaultServiceManager();sp<IBinder>binder;do{binder=sm->getService(String16("demo.MyBinder"));if(binder!=0)break;LOGW("Servicenotpublished,waiting...");usleep(500000);//0.5s}while(true);/*if(mDeathNotifier==NULL){mDeathNotifier=newDeathNotifier();}binder->linkToDeath(mDeathNotifier);*/gMyBinder=interface_cast<IMyBinder>(binder);LOGE_IF(gMyBinder==0,"noService!?");returngMyBinder;}intmain(){getMyBinderService();printf("getinstance%p\n",gMyBinder.get());return0;}Android.mk 贴server下的一个,其他类似修改LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)LOCAL_SRC_FILES:=\MyBinder.cpp\main.cppLOCAL_SHARED_LIBRARIES:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年平板显示检测系统项目可行性报告
- 2024年新型聚合物驱油剂项目可行性报告
- 《任务三-演出与评议核心素养目标教学设计、教材分析与教学反思-2023-2024学年初中语文统编版五四学制》
- 《会计学基础》期末考试模拟题(A卷)
- 保险业季度观察报(2024 年第 1 期) 新政迭出引降本准则切换筑新基 -联合资信
- 化学品的合理使用第3课时 2023-2024学年高一化学同步课件 人教版2019必修第二册
- 小升初押题卷(试题)-2023-2024学年六年级下册数学人教版
- 全球智慧城市行业市场前景及投资研究报告-培训课件外文版2024.5
- 2024版婚姻介绍担保合同书
- 护理高等教育发展现状分析(3篇模板)
- 《幼儿园综合素质》教学课件-第二章 教育法律法规
- 2019外研社版高中英语必修二Unit 2 单词短语句子复习默写单
- 灭火器的使用与维护
- 山东省青岛市城阳区2022-2023学年四年级下学期期末语文试卷
- 市政工程初步设计方案(完整版)
- 广西招生指南和高考指南
- 可信数据服务 数据交易合同示范文本
- 2023年广东高考生物卷试题真题及答案详解(精校版)
- 燃气锅炉安全知识培训
- 富士FUJI-100S-简体中文说明书
- 2022-2023学年宿迁市泗阳县小升初考试数学试卷含答案
评论
0/150
提交评论