没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Android's camera 模块代码分析
内容目录
Android's camera 模块代码分析..................................................................................................1
1 Android's camera 模块概述..........................................................................................................2
2 camera 模块调试方式..................................................................................................................2
3 camera 对视频处理流程..............................................................................................................2
4 代码分析......................................................................................................................................4
1 Android's camera
模块概述
Camera 模块是 android 系统中用于处理视频输入的模块。Android 将 camera 定义为一个
framework, 这样客户可以使用 camera's framework 支持不同的硬件,只需客户实现 camera 的
framework 。本文主要介绍 camera framework 和如何实现 camera framework。
2 camera
模块调试方式
• 生成 avd.
android create avd -t 1 -n myavd // 生成 avd , -t 制定 typeid, -n 指定生成 avd 的名字
mksdcard -l sdcard 512M /sdcard.img // 生成虚拟的 sdcard, 512m 指定大小, sdcard.img 指
定 sdcard 的名字。
• 启动 android 模拟器(包括虚拟的 sdcard)
emulator -sdcard /sdcard.img
• 通过 adb logcat 获取启动 log.
• 分析启动 log 是否正常,是否正常启动了 sdcard.
• 使用模拟器进行拍照,并查看 log.
以上是基于 android 提供的虚拟机来实现的模拟。在没有硬件的环境里面,可以通过这个环
境进行配置和测试。
3 camera
对视频处理流程
简单的流程控制。
简单的数据流程:
4
代码初步描述
下图为 camera 调用流程,为 android 提供的 camera 框架。
以上的框架已经由 android 实现,在移植新的硬件的时候,我们无需修改以上对应的 code.
需要实现的 code 为 CameraHardwareInterface 这一层。
1. CameraHardwareInterface 链接 camera server 和 vedio4linux(也可能是其他的驱动),
通过实现 CameraHardwareInterface 可以屏蔽不同的 driver 对之前实现的 code 的冲击,
这样无论使用何种驱动程序,camera hal 几乎不需要进行任何的修改。
CameraHardwareInterface 接口定义于文件
frameworks/base/include/ui/CameraHardwareInterface.h 中。
Class CameraHardwareInterface : public virtual RefBase
{
virtual status_t startRecording(...) = 0;
virtual boid stopRecording() = 0;
virtual status_t autoFocus(...) = 0;
virtual status_t takePicture(....) = 0;
…
};
类中定义了 拍照 录像 等 api,当需要支援新的硬件时就需要继承于类 Class
CameraHardwareInterface ,支援 拍照录像等功能。
换句话讲每一个 CameraHardwareInterface 实例对应一个硬件。(不知道这样说
对不对)
2. CameraService 是 Camera 框架的中间层,用于链接 CameraHardwareInterface 和
Client.
定义于文件 frameworks/base/camera/libcameraservice/CameraService.h
剩余20页未读,继续阅读
资源评论
- zhw8410032013-01-13正在做Android camera驱动开发,资源很好,学习中,多谢分享
- wisemyaltera2013-09-23谢谢分享,正在学习android Camera架构!
- lig7642013-09-10正研究高通camera架构,学些学习,谢谢分享!
xiker
- 粉丝: 0
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功