android摄像头代码,Android Camera代码结构

本文探讨了Android Camera的复杂性,包括摄像头参数配置、音频、马达等组件,以及QCOM和MTK在HAL层的不同实现。介绍了启动加载逻辑、ZSL和Chromatix概念,并列出相关Camera目录,如驱动、JAVA框架、JNI接口和服务。
摘要由CSDN通过智能技术生成

现代Camera越来越复杂,导致要彻底理解Camera相关的知识确属不易,早期的Camera就是一个摄像头而已,整个系统从上到下调用也基本

是一条线,而现在的Camera则要复杂的多,Camera要正常使用,不只有摄像头本身的各种参数需要配置,还包括音频、马达、距离感应器、闪光灯以及

一堆跟效果有关的软件库(人脸识别、各种模式、去红眼、微笑捕捉、JPEG编码)等等,当然如果只有这些还不算复杂,最复杂的是理解各厂家不同HAL层实

现。

本文主要介绍Android Camera代码结构以及相关的Camera基础知识。由于Camera架构相对比较规范,理解起来也并不难,但是QCOM、MTK对HAL层的实现上的差异却非常大,需要一番心思。【本文整理自早前Android开发笔记,暂时有点乱,以后再完善】

一、执行逻辑与概念

1、启动加载逻辑

Linux内核驱动在启动过程中会自动遍历执行挂载(在init.rc之前)。找到摄像头后会创建对应节点inode。在/sys/class目录

下应可看到对应的设备目录,要访问设备,可通过类似/proc/example,/sys/class/example/example/val,

/dev/example,/sys/devices/virtual/example/example等节点访问,这决定于驱动约定。

对摄像头而言就是/dev/video0,/dev/video1这样的设备,上层程序只能通过设备名访问该设备(ioctl,write,read,open,release...),示例:http://blog.chinaunix.net/uid-21880738-id-33610

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值