
2:Camera驱:比ov5640;要找本Linux驱相关书看看比《linux设备驱程序》知道简单linux设备驱写;工作Camera驱需要写参考使用参考驱般支持实现录像、拍照功能别白平衡、焦等都需要自调试;
3:要习V4L2协议驱导/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:JNI写知道些至少抄些写都固定调试程候要java层跟踪代码HAL层再驱;
5:要用Linux所Android源码都Linux编译;要知道ARM架构交叉编译器;比arm-linux-gcc;知道编译Androidkernel源码;刷机;调试;买块带CameraAndroid发板;
上图是画的是针对Camera的Grpahic Buffer基本流向图从图中可以看出,camera架构主要拥有三个进程:
1、Camera App
2、CameraServer
3、CameraProvider
在研究Grpahic Buffer流向时,Camera App作为一个系统app,不免俗的要和SurfaceFlinger
进程打交道,可以认为Camera App的整个GUI的合成显示是交给SurfaceFlinger的。
而除了GUI的surface,camera还拥有一个用来显示preview的surface,这个surface的graphic
buffer是在当前进程分配,填充是camera provider进程填充的,具体步骤如上图所示,不在赘述。
内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的 *** 作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如下图所示。
linux内核说明
内核是 *** 作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管
理等。这些组成其实是需要详细说明的
2 . linux shell
shell是系统的用户界面,提供了用户与内核进行交互 *** 作的一种接口。它接收用户输入的 命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。
目前主要有下列版本的shell。
a.Bourne Shell:是贝尔实验室开发的。
b.BASH:是GNU的Bourne Again Shell,是GNU *** 作系统上默认的shell,大部分linux的发行套件使用的都是这种shell。
c.Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。
d.C Shell:是SUN公司Shell的BSD版本。
3 . linux 文件系统
文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,如EXT2、 EXT3、 FAT、 FAT32、 VFAT和ISO9660。
4. linux 应用
标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、办公套件、Internet工具和数据库等。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)