androidlinux内核和驱动程序

Androidr专用驱动

Ashmem:匿名共享内存驱动

Logger:轻量级的log驱动

Binader:基于operBinder系统的驱动,为android提供IPC支持

AndroidpowerManager:电源管理器

LowMemoryKiller:缺少内存时,杀死进程

AndroidPMEM:物理内存驱动

Android使用的设备驱动

Framebuffer驱动是标准和显示设备驱动,对于PC系统就是显卡驱动设备节点

通常是/dev/fbx

Framebuffer驱动的主要头文件:include/llinux/fb.h

核心实现:drivers/video/fbmem.c

核心数据接口是:fb_info,fb.h中定义

它在android中的路径为:/dev/graphic/fb0

注:android中直接使用标准的framebuffer驱动,/dev/graphic中的framebuffer设备节

点由init进程自动创建,被libui库调用

Event输入设备驱动

Input驱动程序是linux输入设备的驱动程序,分游戏杆(joystick,鼠标(mousemice)和事件设备(eventqueue)设备号是13

Joystick游戏杆0-61

Mouse鼠标33-62

Mice鼠标63

每种input设备占用5,每种设备个数是32

Read读取输入信息

Ioctl获得设置信息

Poll可以进行用户空间的阻塞

Event的设备节点:dev/input/eventX

Input驱动的头文件是:include/linux/input.h

视频驱动V4L2摄像头(video4linux2)camera

设备节点:/dev/video/videoX

设备号是:81

头文件的路径是:include/linux/videodev.h

Include/linux/videodev2.h数据接口和常量

Include/media/v412-dev.c完成接口注册

核心实现路径:driver/media/video/v412-dev.c

Oss音频驱动

Oss(opensoundsystem开放声音系统)数字音频设备(codec,PCM,DSP,ADC/DAC)采样速率(电话为8k,DVD96k),channel数目(单声道,立体声),采样分辩率(8bit,16bit

是字符设备,主设备号14

主要有以下几种设备文件

/dev/mixer次设备号为0访问声卡中的mixer调整音量大小,选择音源

/dev/sndstat次设备号为6测试声卡

/dev/dsp次设备号为3读此设备就相当于录音write用于放音,read用于录音

/dev/sequencer次设备号为1访问声卡内置的或是连接在MIDI端口的syntherizer(合成器)

/dev/midiXX次设备号为21834MIDI端口

OOS的主要头文件

Include/linux/soundcard.h

Include/linux/sound.h用于设备的注册

OOS驱动程序的核心

Sound/sound_core.c

ALSA音频驱动

ALSA(advancedLinuxSoundarchitecture高级Linux声音体系)

ALSA驱动的主设备号为116,

主要的设备节点:

/dev/snd/controlCX主控制

/dev/snd/pcmXXXcPCM控制

/dev/snd/pcmXXXpPCM数据通道

/dev/snd/seq顺序器

/dev/snd/timer定时器

ALSA驱动的头文件

Include/sound/asound.hALSA驱动的主要头文件

Include/sound/core.hALSA注册函数

MTD驱动

MTD(MemoryTechnologyDevice)称为内存技术设备通常用于Linux中的Flash驱动程序

分为:

字符设备的设备节点/dev/mtdX设备号90

块设备的设备节点/dev/bolck/mtdblockX设备号为13

MDT的头文件路径:include/linux/mth/mtd.h

源代码路径:drivers/mtd/mtdcore.c定义原始设备

Drivers/mtd/mtdchar.c字符设备

蓝牙驱动

蓝牙设备驱动是网络设备,使用网络接口

定义的协议族为:AF_BLUETOOTH(31)

蓝牙协议的头文件:

Include/net./bluetooth/hei_core.h

Include/net/bluetooth/bluetooth.h

Wlan驱动(使用socket进行控制)

Wifi协议的部分头文件

Include/net/wireless.h

Wifi协议部分源文件

Net/wirless

Wifi驱动程序部分

Drivers/net/wireless/*

更多相关文章

  1. Android判断当前设备是否联网
  2. 【Android】设备标识
  3. android实现标题栏、状态栏图标文字颜色及背景动态变化
  4. Android(安卓)程序执行Linux命令的解决方法及注意事项
  5. Android(安卓)之Google认证GMS详细解剖
  6. Android(安卓)开机自启动应用
  7. 为Android内核添加新驱动,并添加到menuconfig菜单【实践简记】
  8. 获取Android设备唯一标识(唯一序列号)
  9. Android亮灭屏功能实现

随机推荐

  1. SqlServer使用 case when 解决多条件模糊
  2. SQL Server中数据行批量插入脚本的存储实
  3. SQL Server FileStream详解
  4. SQL Server 跨库同步数据
  5. SQL Server中的RAND函数的介绍和区间随机
  6. 浅析SQL Server中的执行计划缓存(下)
  7. 浅析SQL Server中的执行计划缓存(上)
  8. sqlserver锁表、解锁、查看销表的方法
  9. SQLServer存储过程中事务的使用方法
  10. SqlLoader怎么使用