没有合适的资源?快使用搜索试试~ 我知道了~
首页android_camera_summary
资源详情
资源评论
资源推荐
第一部分 Camera 概述
Android 的 Camera 包含取景器(viewfinder)和拍摄照片的功能。目前 Android 发
布版的 Camera 程序虽然功能比较简单,但是其程序的架构分成客户端和服务器两
个部分,它们建立在 Android 的进程间通讯 Binder 的结构上。
以开源的 Android 为例,Camera 的代码主要在以下的目录中:
Camera 的 JAVA 程序的路径:
packages/apps/Camera/src/com/android/camera/
在其中 Camera.java 是主要实现的文件
frameworks/base/core/java/android/hardware/Camera.java
这个类是和 JNI 中定义的类是一个,有些方法通过 JNI 的方式调用本地代码得到,
有些方法自己实现。
Camera 的 JAVA 本地调用部分(JNI):
frameworks/base/core/jni/android_hardware_Camera.cpp
这部分内容编译成为目标是 libandroid_runtime.so。
主要的头文件在以下的目录中:
frameworks/base/include/ui/
Camera 底层库在以下的目录中:
frameworks/base/libs/ui/
这部分的内容被编译成库 libui.so。
Camera 服务部分:
frameworks/base/camera/libcameraservice/
这部分内容被编译成库 libcameraservice.so。
为了实现一个具体功能的 Camera,在最底层还需要一个硬件相关的 Camer 库
(例如通过调用 video for linux 驱动程序和 Jpeg 编码程序实现)。这个库将被
Camera 的服务库 libcameraservice.so 调用。
第二部分 Camera 的接口与架构
2.1 Camera 的整体框架图 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 部分的头文件在 frameworks/base/include/ui/目录中,这个目录是和
libmedia.so 库源文件的目录 frameworks/base/libs/ui/相对应的。
Camera 主要的头文件有以下几个:
ICameraClient.h
Camera.h
ICamera.h
ICameraService.h
CameraHardwareInterface.h
在这些头文件 Camera.h 提供了对上层的接口,而其他的几个头文件都是提供一
些接口类(即包含了纯虚函数的类),这些接口类必须被实现类继承才能够使用。
整个 Camera 在运行的时候,可以大致上分成 Client 和 Server 两个部分,它们分
别在两个进程中运行,它们之间使用 Binder 机制实现进程间通讯。这样在客户端
调用接口,功能则在服务器中实现,但是在客户端中调用就好像直接调用服务器中
的功能,进程间通讯的部分对上层程序不可见。
从框架结构上来看,ICameraService.h、ICameraClient.h 和 ICamera.h 三个类定义
了 MeidaPlayer 的接口和架构,ICameraService.cpp 和 Camera.cpp 两个文件用于
Camera 架构的实现,Camera 的具体功能在下层调用硬件相关的接口来实现。
从 Camera 的整体结构上,类 Camera 是整个系统核心,ICamera 类提供了
Camera 主要功能的接口,在客户端方面调用,CameraService 是 Camera 服务,它
通过调用实际的 Camera 硬件接口来实现功能。事实上,图中红色虚线框的部分都
是 Camera 程序的框架部分,它主要利用了 Android 的系统的 Binder 机制来完成通
讯。蓝色的部分通过调用 Camera 硬件相关的接口完成具体的 Camera 服务功能,
剩余11页未读,继续阅读
badphoto
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0