版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、F01_a基於軟硬整合觀點观摩:Session模式与Proxy-Stub模式的搭配(a)By 高煥堂內容1. Session设计模式:以CameraService服务为例2. Session设计模式:以VM的JNIEnv对象为例3. Session设计模式:典型架构4. 复习:Proxy-Stub模式5. Proxy-Stub设计模式: 以CameraService为例6. SurfaceFlinger服务的Session模式7. SurfaceFlinger服务的Proxy-Stub模式基於軟硬整合觀點1、Session设计模式:以CameraService服务为例ServerBrowser
2、 #1Browser #2Browser #3Browser #1SessionionSesBrowser #2ServerSessionBrowser #3 以CameraService为例 在Android的C+层里,有个CameraService系统服务。 在MediaServer进程初始化照相机服务。 此进程的main()函数代码:int main(int argc, char* argv) sp proc(ProcessState:self();sp sm = defaultServiceManager();/ .CameraService:instantiate();/ .IPCT
3、hreadState:self()-joinThreadPool(); 这个CameraService:instantiate()的代码是:void CameraService:instantiate() defaultServiceManager()-addService(String16(media.camera), new CameraService(); 首先创建CameraService对象,然后委托SM(ServiceManager)登录到BD(Binder Driver)里。 当一个Camera应用程序启动时,会建立一个CameraClient来与CameraService衔接。
4、相当于:相当于: 当很多个应用程序来衔接CameraService时, 该如何接待呢? 采用Session设计模式 步骤一、CameraClient先调用CameraService,这个动作通称为:取得取得连线(Connection)。 此时,CameraService创建一个Client对象, 并将Client的IBinder接口回传给CameraClient。 步骤二、CameraClient就调用Client,要求Client与CameraService通信,间接调用到CameraService的服务。 当CemeraClient透过SM绑定了CameraService之后,Camera
5、就可调用CameraService的connect()函数来建立一个连线。 这时,CameraClient把自己的接口传递给CameraService。 例如下述的Android程序源码:sp CameraService:connect(const sp& cameraClient)Mutex:Autolock lock(mLock); sp client;if (mClient != 0) / 這個cameraClient已經調用過connect()了/ 先前已經給它一個Client對象(mClient)了/ 就先將mClient轉型態sp currentClient = mClient.p
6、romote();/ 這currentClient就是mClient if (currentClient != 0) spcurrentCameraClient( currentClien t-getCameraClient();/ 比對一下mClient所記錄的cameraClient與/ 本次來訪的cameraClient是否同一個if (cameraClient-asBinder()= currentCameraClient-asBinder() return currentClient;/ 如果同一個,回傳先前的Client對象 elsereturn client; elsemClient.clear();/ 這個cameraClient是第一次來訪/ 建立一個新Client對象client = new Client(this, cameraClient,IPCThreadState:self()-getCallingPid(); mClient = client;return client; 这时,CameraService就在自己进程里诞生了一个Client的对象。 并且,将此Client对象的接口回传给CameraClient。sp CameraService:connect( constsp& cameraClient)/ 那么,接口和接口,从那里来的呢? 定义在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 京东POP店铺初级售前客服认证考试题库和答案
- 2026年应急救援员国家执业资格考试题库(附答案)
- 2026年农村应急管理员资格认证试题含答案
- 2025年九江市网格员笔试试题及答案解析
- 国药销售笔试题目及答案(2026完整版|国药集团专属)
- 安全文明出行,共创美好未来几年级主题班会课件
- 钳工证考试题库及答案
- 2026比较完美的面试题目及答案
- 2026边境问题面试题目及答案
- 2026编写剧本的面试题目及答案
- 娄底市2026国家电网招聘考试-电工类综合能力试题(含答案)
- 《油气输送管道工程地质灾害防治设计规范》SYT 7040-2021
- 2026年医保结算流程培训课件
- 雨课堂学堂在线学堂云《观影之道:影视艺术赏析(南昌)》单元测试考核答案
- 宁德时代shl测评题库
- 浙江省杭州市2026年某中学初一入学语文分班考试真题含答案
- 服装零售店店务管理手册(标准版)
- (2025年)福建辅导员面试试题真题及答案
- 户内GIS无尘化安装典型施工方法
- 小学科学实验器材清单及使用规范
- 四位一体多功能化工单元培训装置操作规程
评论
0/150
提交评论