驱动的东西太多,这里我只给出一些架构图,并附上少许说明,我也是个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显示驱动:

Android的驱动程序(一)_第1张图片

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

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

  2、Event输入设备驱动

  

Android的驱动程序(一)_第2张图片

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的驱动程序(一)_第3张图片

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

转载于:https://www.cnblogs.com/chiefCTO/archive/2011/10/20/2219313.html

更多相关文章

  1. Android中Input型输入设备驱动原理分析
  2. 超过 50% 的 Android 设备依然运行 2.2 版本
  3. Android获取设备唯一ID

随机推荐

  1. android电池管理系统从上层的java到底层
  2. android sdk 兼容低版本的处理方法
  3. Android高手进阶教程(二十一)---Android
  4. Android仿网易客户端实现抽屉式拖拉菜单
  5. Android App内版本更新完美适配7.0、8.0
  6. 详细讲解Android的图片下载框架Universia
  7. Pocket 开发者 Max Weiner:Android 开发其
  8. 关于Android中的位置服务解读
  9. 谈谈WM和Android比较
  10. TextView 相关属性