Android开发之01----底层驱动开发01.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android开发之01----底层驱动开发01

驱动概述 ? ? ? ? 说到 android 驱动是离不开 Linux 驱动的。Android 内核采用的是 Linux2.6 内核 (最近Linux 3.3 已经包含了一些 Android 代码)。但 Android 并没有完全照搬 Linux 系统内核,除了对Linux 进行部分修正,还增加了不少内容。android 驱动 主要分两种类型:Android 专用驱动 和 Android 使用的设备驱动(linux)。 ? ? ? Android 专有驱动程序: ? ? ? 1)Android Ashmem 匿名共享内存; 为用户空间程序提供分配内存的机制,为进程间提供大块共享内存,同时为内核提供回收和管理这个内存。 ? ? ? 2)Android Logger ? ?轻量级的LOG(日志) 驱动; ? ? ? 3)Android Binder ? ? 基于 OpenBinder 框架的一个驱动; ? ? ? 4)Android Power Management ?电源管理模块; ? ? ? 5)Low Memory Killer ?低内存管理器; ? ? ? 6)Android PMEM ? ? ? ?物理内存驱动; ? ? ? 7)USB Gadget ? ? ? ? ? ? USB 驱动(基于 gaeget 框架); ? ? ? 8)Ram Console ? ? ? ? ? 用于调试写入日志信息的设备; ? ? ? 9)Time Device ? ? ? ? ? ? 定时控制设备; ? ? ? ?10)Android Alarm ? ? ? ??硬件时钟; ? ? ?Android 上的设备驱动: ? ? ? 1)Framebuff 显示驱动; ? ? ? 2)Event 输入设备驱动; ? ? ? 3)ALSA 音频驱动; ? ? ? 4)OSS 音频驱动; ? ? ? 5)v412摄像头:视频驱动; ? ? ? 6)MTD 驱动; ? ? ? 7)蓝牙驱动; ? ? ? 8)WLAN 设备驱动; ?Android 专有驱动程序 ? ? ? 1.Android Ashmem? ? ? ? ? ? ? ? ?为用户空间程序提供分配内存的机制,为进程间提供大块共享内存,同时为内核提供回收和管理这个内存。 ? ? ? ? ? ? ? ?设备节点:/dev/ashmen .主设备号 10. ? ? ? ? ? ? ? ?源码位置: include/linux/ashmen.h ? ?Kernel /mm/ashmen.c ? ? ? ? ? ? ? ? ? ? ?相比于 malloc 和 anonymous/named mmap 等传统的内存分配机制,其优势是通过内核驱动提供了辅助内核的内存回收算法机制(pin/unoin) ? ? ? 2.Android Logger?? ? ? ? ? ? ? ? ? ? ? 无论是底层的源代码还上层的应用,我们都可以使用 logger 这个日志设备看、来进行调试。 ? ? ? ? ? ? ? ? ? ? ?设备节点: ?/dev/log/main ? ? ?/dev/log/event ? /dev/log/radio ? ? ? ? ? ? ? ? ? ? ?源码位置:include/linux/logger.h ? ? ? ? include/linux/logger.c ? ? ? 3.Android Binder ? ?? ? ? ? ? ? ? ? ? IPC Binder 一种进程间通信机制。他的进程能够为其它进程提供服务 ----- 通过标准的 Linux 系统调用 API。 ? ? ? ? ? ? ? ? 设备节点 :/dev/binder ? ? ? ? ? ? ? ? 源码位置:Kernel/include/linux/binder.h ? ?Kernel/drivers/misc/binder.c ? ? ? 4.Android Power Management ? ? ? ? ? ? ? ? ?一个基于标准 linux 电源管理的轻量级 Android 电源管理系统,在 drivers/android/power.c ? ? ?kernel/power/ ? ? ? 5.Low Memory Killer? ? ? ? ? ? ? ? ? 它在用户空间中指定了一组内存临界值,当其中某个值与进程描述中的 oom_adj 值在同一范围时,该进程将被Kill掉(在parameters/adj中指定oome_adj 的最小值)。它与标准的Linux OOM机制类似,只是实现方法不同 ? ? ? ? ? ? ? ? 源码位置:drivers/misc/lowme

文档评论(0)

haocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档