Android 驱动开发权威指南
作 者: 杨柳 编
出版时间: 2014
内容简介
本书根据作者多年的从业经验,从开发实战出发,全面深入地讲解了Android驱动开发。本书以Android驱动本质为源,深入浅出地剖析了Android驱动程序开发要用到的DMA、中断、同步、等待队列与signal等多项技术。本书还从系统的角度描述了Android驱动与Android其他部分的有机结合,为Android用户提供各类智能输入/输出服务。本书适合从事Linux开发、Android底层驱动开发、系统框架开发,以及Android底层模块验证测试等的相关软件工程人员阅读;也适合从事Android智能手机其他领域的研发人员参考;还适合作为大、中专院校与培训机构的相关实践性指导教材。
目 录
前言
第一篇 Android的前世今生——Android概述篇
第1章 Android的前世今生 2
1.1 Android的起源 2
1.2 开放手机联盟 2
1.3 开源与相关协议 3
1.4 系统的升级与发展 3
第2章 Android体系结构 4
2.1 四层空间基本结构 4
2.1.1 Android系统底层开发 6
2.1.2 应用程序开发 7
2.2 Android代码目录结构 7
2.3 Android开发环境搭建 8
第二篇 勿于浮砂筑高台——Linux驱动基础篇
第3章 Linux 内核综述 14
3.1 OS基本概念 14
3.1.1 多用户系统 15
3.1.2 用户和组 15
3.1.3 进程 16
3.1.4 Linux单核架构 16
3.2 Linux内核综述 18
3.2.1 进程/内核模型综述 18
3.2.2 内存管理综述 26
3.2.3 文件系统综述 29
3.2.4 设备驱动简述 34
第4章 Linux内核编程与内核模块 35
4.1 Linux内核源代码目录结构 35
4.2 Linux内核的编译与启动 36
4.3 Linux内核的C编程 37
4.4 Linux内核模块基础与骨架 43
4.5 Linux模块的加载与卸载 46
4.6 Linux模块的参数与导出符号 46
4.7 Linux模块的使用计数 48
第5章 Linux文件系统 50
5.1 Linux文件系统概述 50
5.1.1 Linux文件系统的目录结构 50
5.1.2 设备驱动与Linux文件系统的关联 51
5.2 Linux设备文件系统 55
5.2.1 devfs设备文件系统 55
5.2.2 udev设备文件系统 56
5.2.3 sysfs文件系统与Linux设备 57
5.2.4 udev的组成 67
5.2.5 udev规则文件 68
第6章 Linux字符设备驱动 70
6.1 Linux字符设备驱动结构 70
6.1.1 cdev结构体 70
6.1.2 分配和释放设备号 71
6.1.3 file_operations结构体 72
6.1.4 Linux字符设备驱动的组成 74
6.2 一个字符设备驱动例子——virtualchar 77
6.2.1 头文件、宏及设备结构体 77
6.2.2 加载与卸载设备驱动 78
6.2.3 驱动函数实现 79
6.2.4 驱动设备私有数据 83
6.3 对virtualchar设备的访问 90
第7章 Linux设备驱动中的内存与I/O访问 92
7.1 CPU与内存和I/O之间的故事 92
7.1.1内存空间与I/O空间 92
7.1.2 内存管理单元MMU 93
7.2 Linux内存管理 97