驱动的东西太多,这里我只给出一些架构图,并附上少许说明,我也是个Android初学者,大家可以交流一下!

  Android相对于Linux内核,新增了一些没有加入标准Linux内核的内容,形成Android的专用驱动,Linux的驱动我就不多说了,想了解的话,可以去学一下Linux!

  Android的专用驱动有以下几种:

  1、Ashmem:匿名共享内存驱动;

  2、Bingder:基于OpenBinder系统的驱动,为Android平台提供IPC支持;

  3、Logger:轻量级的Log驱动;

  5、PM:电源管理;

  6、LMK:在缺少内存的情况下,Kill Progress;

  7、PMEM:物理内存驱动。

  有些文章把上面的分成两类,我不想找分类标准,就不分了!

  而在Android中,有些Linux的驱动是没有用到的,而Android使用的设备驱动如下:

  1、Framebuffer显示驱动:

驱动的主设备号为29,次设备号为X,这个驱动在文件系统中的设备节点通常是/dev/fbX(X是次设备号,并且是递增的)。用户空间使用的大多是ioctl、mmap等接口。

Android没有直接使用Framebuffer,它是由init进程自动创建,被libui库调用。

  2、Event输入设备驱动

  

Input驱动程序的主设备号是13,次要设备的分配如下:

  a、Joystick:0~61;

  b、mouse:33~62;

  c、mice:63;

  d、事件设备:64~95.

文件系统中的设备点为/dev/input/eventX

用户空间多用的是read、ioctl、poll;

它是由init进程自动创建,被libui库调用。

  3、v4l2摄像头——视频驱动(中间的是L哦~Linux的简称!)

  v4l2的主设备号是81,次设备号:0~255,这些次设备号里也有好几种设备(视频设备、Radio设备、Teletext、VBI);

Android同样没有直接使用,通常是配合Android中的Camera或Overlay的硬件层使用。

posted on 2011-10-20 18:50  Conerlius  阅读(1672)  评论(0编辑  收藏  举报