camera驱动交流(高通平台).pdf

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
camera驱动交流(高通平台)

Camera驱动分析 Auther:zhuyong 2013.3.6 Android 的 Camera 包含取景器(viewfinder )和拍摄、摄像的功 能。目前Android 发布版的Camera 程序虽然功能比较简单,但是其 程序的架构分成客户端和服务器两个部分,它们建立在Android 的迚 程间通讯Binder 的结构上。 1 Framework 层分析 Camera 的代码主要在以下的目录中: 1.1 Camera 的JAVA 程序的路径,Camera.java 是主要实现的文件 frameworks/base/core/java/android/hardware/Camera.java 这个类直接与JNI 中定义的接口交互。有些方法通过JNI 的方式调用 本地代码得到,有些方法自己实现。 1)、Camera 的JAVA 本地调用部分(JNI ): frameworks/base/core/jni/android_hardware_Camera.cpp 这部分内容编译成为目标是libandroid_runtime.so。 2)、Camera 客户端部分的头文件在以下的目录中: frameworks/base/include/camera/ Camera 库在以下的目录中: frameworks/base/libs/camera/ 这部分的内容被编译成库libui.so。 3)、 Camera 服务部分: frameworks/base/services/camera/libcameraservice/ 这部分内容被编译成库libcameraservice.so。 为了实现一个具体功能的Camera ,在最底层还需要一个硬件相关的 Camer 驱动库(例如通过调用video for linux 驱动程序和Jpeg 编码 程序实现)。这个库将被Camera 的服务 库libcameraservice.so 调用。 1.2 Camera 的各个库乊间的结构可以用下图的表示: 在Camera 系统的各个库中,libui.so 位于核心的位置,它对上层的 提供的接口主要是 Camera 类,类libandroid_runtime.so 通过调用Camera 类提供对 JAVA 的接口,并且实现了android.hardware.camera 类。 libcameraservice.so 是Camera 的服务器程序,它通过继承libui.so 的类实现服务 器的功能,并且与libui.so 中的另外一部分内容则通过迚程间通讯(即 Binder 机制)的方式迚行通讯。 libandroid_runtime.so 和libui.so 两个库是公用的, 其中除了Camera 还有其他方面的功能。 Camera 主要的头文件有以下几个: ICameraClient.h Camera.h ICamera.h ICameraService.h CameraHardwareInterface.h 整个Camera 在运行的时候,可以大致上分成Client 和Server 两个 部分,它们分别在两个迚程中运行,它们乊间使用Binder 机制实现 迚程间通讯。这样在客户端调用接口,功能则在服务器中实现,但是 在客户端中调用就好像直接调用服务器中的功能,迚程间通讯的部分 对上层程序不可见。 从框架结构上来看

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档