1、Android Camera 驱动开发入门必备知识

camera的方向:
1.camera 驱动调试(kernel层)——c语言
2.camera hal层调试开发——c++(涉及到JNI)
3.camera应用层开发——java

1:硬件相关

简单的数字电路要懂,看的懂电路图(这个很简单),能根据电路找到相应Camera硬件连接的GPIO,并根据芯片手册配置GPIO为相应的模式;比如GPIO模式,输入IO或输出IO;或配置成PWM模式;不同的模式这个GPIO的工作方式是不同的;还有Camera DVDD AVDD IOVDD上电控制,和I2C配置这些。

2:Camera驱动

比如ov5640;你要找本Linux驱动相关的书看看,比如《linux设备驱动程序》知道简单的linux设备驱动写法;当然工作中Camera驱动不需要你写的,有参考的可以使用,但是参考驱动一般支持实现录像、拍照功能,别的白平衡、对焦等都需要你去自己调试;

3:V4L2协议

V4L2英文缩写video for linux version 2.

目前高通和三星、MTK和全志这些平台,camera驱动架构都是V4L2架构,但是MTK平台除外,MTK camera驱动架构采用的是自己一套字符设备驱动架构的方式。

因为驱动导出/dev/video0接口是通过V4L2协议的;上层C的应用也是通过V4L2协议访问/dev/video0的;实际V4L2协议就是通过一些标志linux ioctl()函数和底层驱动通信的;V4L2协议是为了屏蔽各种Camera驱动的不同(比如usb摄像头,mipi接口摄像头)而提供的统一和摄像头驱动通信的规范;

4:语言

你要知道C++的class的相关知识,最好能看到C++的代码,既然你有C的知识,哪把C++的面相对象看懂,知道C++的class就可以了;为什么要懂C++呢?因为Android Camera HAL访问/dev/video0都是用C++写的,二十几个个xxxx.cpp不同的类相互继承实现的;而且你要懂Android HAL层的写法,至少查查资料知道用哪里看;一般都是CameraModule.cpp或CameraHal.cpp;

5:Framework JNI调用

JNI的写法最好以知道一些,至少可以抄就可以,因为这些写法都是固定的,因为调试的过程中有时候你一个人要从java层跟踪代码到HAL层再到驱动;

6: Linux系统

你要会用Linux,因为所有的Android源码都是在Linux下编译的;你要知道ARM架构,交叉编译器;比如arm-linux-gcc;知道怎么编译Android和kernel源码;怎么刷机;怎么调试;最好买块带Camera的Android开发板。

参考链接:https://www.zhihu.com/question/21573611/answer/65120008

Camera学习(1)相关推荐

  1. camera学习入门指南

    等待补充. 1.背景介绍 近年来,随着消费电子领域市场的快速增长,如安防.图像等领域,camera市场得到了快速发展.智能手机这几年以拍照作为主打卖点,带动了camera(CCM)出货. 具体可以看电 ...

  2. Android 10 Camera学习笔记:Camera Framework架构

    CameraFramework架构 又是很久没有写了,这几天一直在看camera framework相关源码,于是乎整理出了这个架构图.Camera API2比较好整理,反而是Camera API1花 ...

  3. camera学习所必备的知识(第六天)

    1:硬件相关:简单的数字电路要懂,看的懂电路图(这个很简单),能根据电路找到相应Camera硬件连接的GPIO,并根据芯片手册配置GPIO为相应的模式:比如GPIO模式,输入IO或输出IO:或配置成P ...

  4. android的camera学习(2)——底层驱动分析

    记录自己对驱动的框架的大致分析 参考文档: https://blog.csdn.net/yanbixing123/article/details/52299519 https://blog.csdn. ...

  5. 浅谈Camera subsytem

    文章目录 引言 1.相机演变 2.相机架构 a.总体架构 架构图 打开相机 相机预览 相机拍照 相机录像 b.软件架构 3.相机详解 4.相机性能 5.相机调试 6.相机领域 7.相机模组 8.思维拓 ...

  6. 虚拟摄像头之五: 详解 android8 的 Camera 子系统框架

    前言 由于 android 版本差异. camera子系统框架也有不同调整,本文是采用 android8 源码作为参考对象,对 camera 子系统进行框架梳理, 建立起框架性认知后.在进一步分析各模 ...

  7. CVPR2019论文题目中文列表

    英文题目 中文题目   Finding Task-Relevant Features for Few-Shot Learning by Category Traversal 少镜头学习中用类别遍历法寻 ...

  8. MTK 人像双摄虚化导通流程

    和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一. 创建 LogicalCameraName 相关的metadata 二. 导通 LogicalCam ...

  9. Android UVC驱动外接摄像头

    写在前面: 这篇文章转自: https://blog.csdn.net/luzhenyuxfcy/article/details/50883910 最近做一个UVC深度摄像头的demo,需要取出数据. ...

最新文章

  1. HarmonyOS UI开发 TableLayout(表格布局) 的使用
  2. ML基石_2_LearnAnswer2
  3. Oracle架构入门级基础
  4. 【c++版数据结构】之循环单链表的实现(带头结点以及尾节点)
  5. java数据类型_Java 变量、表达式和数据类型详解
  6. mysql is null走索引_Mysql数据库索引IS NUll ,IS NOT NUll ,!= 是否走索引
  7. UVA - 1339 ​​​​​​​Ancient Cipher
  8. 在伦敦逛菜市场_我在伦敦进行岗后求职的经验教训
  9. 聊聊Vue(前端Vue面试包过)【面试干货】
  10. C#DataTable2Json(附时间格式化)
  11. PCL中把txt文件转换成.pcd文件(很简单)
  12. 温度冲击试验箱军标GJB 150与GB 2423区别
  13. 开源网管工具 Cacti,Nagios,Zabbix 比较
  14. 数据库基本语句和关键字详解
  15. 长安大学微型计算机原理与接口技术答案,长安大学微机原理与接口技术AB卷试题与答案.doc...
  16. Siri 和谷歌竟然暗藏《复联4》彩蛋!
  17. SaaS黑马杀出 亦群协作云平台发布
  18. 30岁宝妈转行UI设计,后来怎么样了?
  19. rror: [$injector:unpr] http...r?p0=contentCategoryServicePro错误解决方案
  20. 计算机外存是ram硬盘还是,都是存储器,但RAM、ROM、闪存、硬盘怎么分?

热门文章

  1. 如何解决激活Project Web App feature失败的解决方案
  2. python 批量切割语音
  3. Golang-Bcrypt加密
  4. python反爬虫应对措施之搭建代理IP池
  5. Windows命令行基础
  6. 【Web 安全】XSS 攻击详解
  7. js 中RGB十六进制码补色算法及实现 by shawl.qiu
  8. 酷睿i9“出山大典”之后,游戏玩家与内容创作用户都笑了……
  9. listView item 增加间距 以及item根部局 margin 失效原因
  10. Unity编程笔记----多语言切换