Android系统特有的驱动
2015-10-12 18:30
441 查看
整理一下android在linux系统基础上加入的驱动,有几个比较重要的
使用的代码版本:android 2.2.2
Ashmem:
匿名共享内存驱动
Logger:
轻量级的log驱动
Binder驱动( Binder Driver):
基于OpenBinder驱动,为Android平台提供IPC的支持
能源管理( Android Power Management):
轻量级的能源管理,基于Linux的能源管理,为嵌入式系统做了优化
Alarm:
定时器驱动,用于唤醒设备
Low Memory Killer:
在缺少内存的情况下,杀死进程
Android PMEM:
物理内存驱动
Android的Ashmem的含义为:
Anonymous Shared Memory 匿名共享内存,通过内核的机制,为用户空间程序提供分配内存的机制。使内核的分配使用和管理更加高效。
Ashmem设备节点名称:
/dev/ashmem
Ashmem的代码路径:
kernel/include/linux/ashmem.h
kernel/mm/ashmem.c
在用户空间C libutil库对Asheme封装并提供接口:
system/core/include/cutils/ashmem.h
system/core/libcutils/ashmem-dev.c
system/core/libcutils/ashmem-host.c
Android的Binder驱动程序为用户层程序提供了IPC(进程间通信)的支持,Android整个系统的运行依赖Binder驱动
Binder设备节点名称:
/dev/binder
binder的代码路径:
kernel/include/linux/binder.h
kernel/drivers/staging/android/binder.c
在用户空间libutil工具库和Service
Manager守护进程调用Binder接口提供对整个系统的支持:
frameworks/base/cmds/servicemanager/
frameworks/base/include/utils/
frameworks/base/libs/utils/
Logger日志设备
Android的Logger驱动程序为用户层程序提供Log的支持,这个驱动作为一个工具来使用。无论底层源码和上层应用,我们都可以使用Logger进行调试
Logger有三个设备节点:
/dev/log/main
/dev/log/event
/dev/log/radio
Logger驱动的代码路径:
kernel/include/linux/logger.h
kernel/drivers/staging/android/logger.c
在用户空间logcat程序调用Logger驱动:
system/core/logcat/
Power Management:
Google添加了一个新的电源管理系统,主要包括几个文件
kernel/power/earlysuspend.c
consoleearlysuspend.c
wakelock.c
userwakelock.c
Alarm:
Alarm是一个硬件时钟,用于把设备从睡眠状态唤醒,同时它也提供了一个在设备睡眠时仍然会运行的时钟基准。
设备节点:
/dev/alarm
源码路径:
drivers/rtc/alarm.c
Low Memory Killer
Android使用这种机制,在系统内存不足(如某个程序发生了内存泄漏)的情况下,选择一个进程并将其Kill掉,这和linux中的OOM(out of memory)机制相似
源码路径:
drivers/staging/android/lowmemorykiller.c
PMEM:
主要作用就是向用户空间提供连续的物理内存区域,可以使audio,video,GPU这类的设备可以在其分配的内存上完美地工作
Pmem源码路径:
drivers/misc/pmem.c
include/linux/android_pmem.h
相关文章推荐
- Android 自定义View修炼-自定义弹幕效果View
- android制,点击EditText时刻,隐藏系统软键盘,显示光标
- Android中使用Gson解析数据
- android:在android studio中使用lambda,android lambda,retrolambda
- ListView中convertView和ViewHolder的工作原理
- Android首次进入应用时加载引导界面
- Android Camera HAL3中预览preview模式下的数据流
- 关于Android工程中的主要文件夹存放的文件种类
- android客户端学习-ecplise环境变量
- Android greenDao 数据库的使用(三)
- android 使用drawable将显示状态和数据分离
- Android greenDao 数据库的使用(二)
- android应用消息处理机制
- android开机启动Service(小发现)
- android LOG机制
- mac安装android开发环境
- Android多页面传递问题(1)
- 【Android】反射
- Android之捕获TextView超链接
- Android之捕获TextView超链接