android camera分析2
来源:互联网 发布:简明python教程 编辑:程序博客网 时间:2024/05/19 04:29
这次主要看下cameraframwork部分的东西。
binder机制我也没有搞的多明白。
但不妨碍解决问题。或许写着写着就明白了
至于camera是如何从应用层到jni系统再到 下面的c++层就不写了
下面主要看下 c++层的代码组织结构和流程。
bp***端就是代理端 bn***端就是服务端。i***就是父类的声明或定义
先来列举下三个 代理---服务对
icamera.h 对应: 代理端:icamera.cpp 内部类有bpcamera的实现
服务端:CameraService::Client 直接继承了bncamera
IcameraClient: 代理类:IcameraClient.cpp内部类BPcameraClient的实现
服务端:camera.cpp 直接继承了bncameraclient
IcameraService 代理端:IcameraService.cpp
服务端: cameraService.cpp
camera.cpp 通过sp<IServiceManager> sm = defaultServiceManager();
sp<IBinder> binder = sm->getService(String16("media.camera"));
sp<ICameraService> mCameraService = interface_cast<ICameraService>(binder);”得到名字为media.camera”的CameraService. 通过调用CameraService的接口connect() 返回得到sp<ICamera> mCamera 这是就获得了服务器端的句柄。以后就可以通过这个句柄操作服务器端了。
这个似乎不需要其他类了。你妈其他类呢。icamera.cpp icameraservice.cpp应该响camera.cpp这样来获取自己的句柄阿。但我没找到阿
仔细看了下 icamera.cpp发现里面的connect里面也有连接服务器的操作。只不过他里面的操作比较简单,只需要bind提供的transact ontransact来进行沟通。这样的话就比上面的那个
要简单的多,所有省了一些步骤。
如果以上都能说的过去,IcameraClient这个东西如何解释。由于这两个类都在一个文件夹下。起码得有个transact吧。但没找到camera.cpp 里面的transact 也没找到使用ontransact()的地方,这个bind底层已经自动弄好了。
看来这个东西还是没有看懂。
希望看懂的给解释解释。
- android camera分析2
- Android 5.0 Camera系统源码分析(2):Camera打开流程
- Android 5.0 Camera系统源码分析(2):Camera打开流程
- Android USB Camera(2) : UVC协议分析
- android Camera模块分析
- Android Camera 模块分析
- android Camera模块分析
- Android Camera 模块分析
- Android Camera 模块分析
- Android Camera模块分析
- Android Camera 模块分析
- Android Camera模块分析
- Android Camera驱动分析
- Android 上Camera分析
- android Camera模块分析
- Android Camera源码分析
- Android Camera框架分析
- Android Camera分析
- 快来尝尝肉桂新口味儿!Linux Mint 16 “Petra” Cinnamon RC正式发布!现已加入肯德基豪华午餐~
- Android 分享功能(一)添加自己应用到系统分享列表
- 西游记不单单讲的是故事(2) ------ 摘自 吴闲云的《煮酒探西游》
- sigaction应用实例
- 每天一个linux命令(60):scp命令
- android camera分析2
- Want to design video games? Here's a good place to start.
- 《手把手教你把Vim改装成一个IDE编程环境 Ver: 0.7》下载
- 两个页面直接传参,不走action
- linux下解压命令大全
- 控制符控制输出格式
- postgres备份与恢复(导入/导出)
- undo备份/恢复
- 给你写的launchpad430--FLASH