android Camera 结构
Java层 :Frameworks\base\core\java\android\hardware\Camera.java
JNI: Frameworks\base\core\jni\android_hardware_Camera.cpp
C++: Frameworks\av\include,Frameworks\av\camera,Frameworks\av\services\camera
第一部分, 也即第一组binder;PS:这里发起链接,获取具体模组的代理,在App进程
ICameraClient, 对应的代理类为BpCameraClient, 对应的服务类为BnCameraClient(抽象类), Camera(具体的实现类),另外 Camera还有一个父类BaseCamera
用于发送链接请求,接收回调 第二部分, 也即第二组Binder; PS:这里只是用来选择、管理模组,并且在服务进程
ICameraService, 对应的代理类为BpCameraService, 对应的服务类为 抽象类BnCameraService, 实现类CameraService
用于接收请求,管理ICamera 第三部分,也即第三组Binder;PS:这里对应Device 即具体模组,在服务进程
ICamera, 对应的代理类为BpCamera,对应的服务类 抽象类为BnCamera, 实现类为Client, 其同时也继承BasicClient, 并且有子类CameraClient, Camera2Client
用于管理具体的摄像头模组
调用逻辑
Camera.java 通过 JNI android_hardware_Camera 创建c++ 层Camera对象, 在BaseCamera中获取ICameraServcie的代理(这个Binder服务已经注册到ServiceManager,可以通过名称获取),通过ICameraService代理向CameraService发起链接请求 并且将ICameraClient 作为回调发送到CameraService, 收到请求之后,CameraService 会根据系统版本选择new CameraClient 或者 Camera2Client ,并且将ICameraClient 传入Client中;即每一个CameraClient 都有一个对应的回调。 然后发起链接的BaseCamera 从reply中读取出ICamera的代理BpCamera。 最后就可以通过BpCamera 控制摄像头的预览拍照等功能。
android Camera 结构的更多相关文章
- 【转】android camera(三):camera V4L2 FIMC
关键词:android camera CMM 模组 camera参数 CAMIF V4L2 平台信息:内核:linux系统:android 平台:S5PV310(samsung exynos ...
- Android 源代码结构(转)
简介 在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试.但是,如果目标版本的SDK没有关联对应版本的源代码的 ...
- Android 源代码结构
简介 在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试.但是,如果目标版本的SDK没有关联对应版本的源代码的 ...
- Android Camera开发经验总结以及踩过的那些坑
写在开头 需求方:上传试卷的时候,用户自己拍的照片有很多问题.如:不清晰.图片歪了.错误图片等.我们要是能够对拍摄照片进行识别处理就好了,能够裁切矫正就更好了,最好可以像二维码扫描一样,直接识别处理- ...
- Android Camera 通过V4L2与kernel driver的完整交互过程
http://blog.chinaunix.net/uid-26215986-id-3552456.html 原文地址:Android Camera 通过V4L2与kernel driver的完整交互 ...
- android camera jni调用
http://www.mamicode.com/info-detail-1002139.html how to compile library of native camera for androi ...
- qcom Android Camera【转】
本文转载自:http://blog.csdn.net/Wilsonboliu/article/details/54949196 1.总体架构 Android Camera 框架从整体上看是一个 cli ...
- 高通Android camera运行流程【转】
本文转载自:http://blog.csdn.net/unicornkylin/article/details/13293295 1.总体架构 Android Camera 框架从整体上看是一个 cl ...
- MTK Android Camera运行流程
Android Camera 运行流程 总体架构1.CameraService服务的注册2.Client端的应用层到JNI层Camera App-JNI3.Client到Service的连接4.HAL ...
随机推荐
- 待实验:Android 增量升级
参考资料: 增量升级(省流量更新)的Android客户端实现 http://blog.csdn.net/sgwhp/article/details/9009427 http://my.oschina ...
- 6.9 Android 优缺点
Android N主要在运行时和图形处理上做了更新. 运行时间上,Android N对编译器进行了优化,软件的运行时间提升了3-6倍.引入了一个全新的JIT编译器,使得App安装速度快了75%,编译代 ...
- gvim 备份文件去除 配置
默认情况下使用Vim编程,在修改文件后系统会自动生成一个带~的备份文件,看上去又乱又讨人厌. 怎么让Vim不自动生成这些备份文件呢? 1. 找到你的Vim安装目录,如果是在Windows下默认路径安装 ...
- CentOS6.5下Tomcat7 Nginx Redis配置步骤
所有配置均在一台机器上完成,部署拓扑信息如下: 注意:由于Redis配置对jar包和tomcat版本比较严格,请务必使用tomcat7和本文中提供的jar包.下载地址: http://pan.baid ...
- 用c#开发微信 (12) 微统计 - 阅读分享统计系统 2 业务逻辑实现
微信平台自带的统计功能太简单,有时我们需要统计有哪些微信个人用户阅读.分享了微信公众号的手机网页,以及微信个人用户访问手机网页的来源:朋友圈分享访问.好友分享消息访问等.本系统实现了手机网页阅读.分享 ...
- Python模拟HTTP Post上传文件
使用urllib2模块构造http post数据结构,提交有文件的表单(multipart/form-data),本示例提交的post表单带有两个参数及一张图片,代码如下: #buld post bo ...
- Ubuntu上安装ns2-2.34
Ubuntu上安装ns2-2.34 步骤1 下载ns-allinone-2.34 $ tar zxf ns-allinone-2.34.tar.gz 步骤2 sudo apt-get install ...
- [游戏模版4] Win32 显示鼠标位置
>_<:use MOUSE_MOVE message refresh the position information. >_<:use LOWORD(lParam) get ...
- jdbc实现简单的增删改查
先是Book类. 略 然后一个主页,写一个表单,提交Book的信息到AddBook. 略 AddBook.jsp连接jdbc,并向Book表插入. <%@ page language=" ...
- python+redis测试环境搭建
针对windows操作系统. redis安装: 微软操作系统下,需下载github下面的开源项目,redis网站地址可以找到,直接解压即可. cmd到指定目录,输入下方命令,启动redis服务. re ...