Android使用Linux2.6,对标准内核改动较少,但是增加了一些内容,如yaffs文件系统

Android专用驱动

Ashmem匿名共享内存
节点名称/dev/ashmem, 为用户空间程序提供内存分配机制,实现类似malloc的功能
内核中代码路径: kernelmm/ashmeme.c
C libutils库对其进行了封装:system/core/libcutils/ashmeme-*.c

Binder
节点名称/dev/binder, 为用户程序提供IPC支持,是Android中的主要IPC方式
用户空间的libutils工具库(framework/base/libs/utils)和Service Manager守护进程中调用Binder接口提供对整个系统的支持

Logger
三个设备节点:/dev/log/main, /dev/log/event, /dev/log/radio
在内核中代码: kernel/drivers/misc/logger.c
在用户空间logcat(system/core/logcat)调用Logger驱动

Android使用的设备驱动

Framebuffer显示驱动
对于嵌入式系统,Framebuffer通常作为LCD控制器驱动或者其他显示设备的驱动;
FB是一个字符设备,通常其设备节点为/dev/fbX,但在Android中使用/dev/graphic/fb0,该设备节点由init进程自动创建,被libui库调用
FB驱动在用户空间多使用ioctl,mmap,write等文件系统接口进行操作,ioctl用于获得/设置信息,mmap可以将Framebuffer的内存映射到用户空间,write直接用写的方式输出显示内容

Event输入设备驱动
Event驱动是通用的输入设备驱动,目前可支持鼠标,键盘,触摸屏等多种输入设备;
Event设备在文件系统中的设备节点为:/dev/input/eventX,由init进程创建,公libui库使用;
用户空间使用read,ioctl,poll等文件系统接口操作Event设备

V4L2 Camera & Video驱动
V4L2驱动既可以支持视频捕获,也可以支持视频输出,但因为两者硬件结构相差很大,因此一个系统中的两种驱动程序需要分别实现;
Android中没有直接使用V4L2驱动,而是通过Camera或者Overlay硬件抽象层来使用
用户空间使用ioctl, mmap操作V4L2

OSS音频驱动
Open Sound System是基于字符的音频驱动, 用户空间用ioctl/read/write操作/dev/mixer, /dev/dsp, /dev/xxx接口
Android中没有直接使用OSS驱动,可基于OSS来实现Android Audio部分的硬件抽象层

ALSA音频驱动
比OSS使用更方便的音频驱动,除了OSS原来的ioctl等原始接口外,ALSA还提供了函数库,以简化应用程序;
建议使用用户空间的ALSA库接口,而不是直接操作ALSA驱动程序;
Android中没有直接使用ALSA驱动,而是通过Android–>Audio硬件抽象层–>ALSA库–>ALSA驱动

MTD驱动
Memory Technology Device,通常用于Linux中Flash驱动程序,包括字符设备(/dev/mtdX)和块设备(/dev/block/mtdblockX
MTD驱动通常不在用户空间直接调用,而是用于构建文件系统,用户空间只需要使用文件系统即可

蓝牙驱动
两部分:蓝牙协议 + 蓝牙控制器驱动;
蓝牙协议部分:包括HCI接口,SCO模块,L2CAP模块,BNEP模块等
蓝牙控制器驱动部分:为基于SDIO/UART/USB接口的蓝牙设备提供驱动

Wlan驱动
用户空间使用标准的socket接口进行控制
Wifi驱动在Android中一般编译成module的方式,通过应用程序设置开关进行加载和卸载


更多相关文章

  1. 箭头函数的基础使用
  2. NPM 和webpack 的基础使用
  3. Python list sort方法的具体使用
  4. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  5. Android之提高Service优先级总结及android:persistent的使用
  6. Android:Android学习进阶路线
  7. Android的Log系统
  8. Retrofit系列文章翻译2—Android上的基本认证
  9. Android(安卓)Jetpack-LiveDataBus使用

随机推荐

  1. Android仿新浪微博底部布局TabHost
  2. 如何获取Android源码
  3. C++和android进行socket通信小结
  4. Android(安卓)开发中使用 SQLite 数据库
  5. android 访问web端与解析json,模拟用户登
  6. android播放提示音工具类(SoundConfigUti
  7. Android布局之相对布局——RelativeLayou
  8. Android开发9——Activity的启动模式
  9. 关于android读取ICCID、IMSI和IMEI
  10. Android(安卓)FrameWork——Touch事件派