前言
第一篇 Android的前世今生——Android概述篇
第1章 Android的前世今生
1.1 Android的起源
1.2 开放手机联盟
1.3 开源与相关协议
1.4 系统的升级与发展
第2章 Android体系结构
2.1 四层空间基本结构
2.2 Android代码目录结构
2.3 Android开发环境搭建
第二篇 勿于浮砂筑高台——Linux驱动基础篇
第3章 Linux内核综述
3.1 OS基本概念
3.2 Linux内核综述
第4章 Linux内核编程与内核模块
4.1 Linux内核源代码目录结构
4.2 Linux内核的编译与启动
4.3 Linux内核的C编程
4.4 Linux内核模块基础与骨架
4.5 Linux模块的加载与卸载
4.6 Linux模块的参数与导出符号
4.7 Linux模块的使用计数
第5章 Linux文件系统
5.1 Linux文件系统概述
5.2 Linux设备文件系统
第6章 Linux字符设备驱动
6.1 Linux字符设备驱动结构
6.2 一个字符设备驱动例子——virtualchar
6.3 对virtualchar设备的访问
第7章 Linux设备驱动中的内存与I/O访问
7.1 CPU与内存和I/O之间的故事
7.2 Linux内存管理
7.3 Linux内存访问
7.4 Linux I/O访问
7.5 DMA
第8章 Linux设备驱动中的中断
8.1 Linux中断及中断处理架构
8.2 Linux中断编程
8.3 Linux定时器
8.4 Linux延时处理
第9章 Linux设备驱动中的并发
9.1 Linux中的并发与竞争
9.2 Linux中常用的同步访问技术
9.3 增加并发控制的virtualchar驱动
第10章 Linux设备的阻塞式与非阻塞式访问
10.1 阻塞式与非阻塞式访问
10.2 Linux的轮询访问
第11章 Linux设备驱动中的异步访问
11.1 Linux 2.6中的异步访问
11.2 异步Fifo驱动例子
第12章 Linux块设备驱动
12.1 块设备的I/O操作特点
12.2 Linux块设备驱动结构
12.3 Linux块设备驱动的模块加载与卸载
12.4 块设备的打开/释放/IOCTL
第13章 Linux网络设备驱动
13.1 Linux网络设备驱动体系结构
13.2 Linux网络设备驱动结构
13.3 Linux网络设备驱动I/O实现
第三篇 实践出真知——Android驱动实践篇
第14章 Android HAL层的设计
14.1 Android HAL概述
14.2 为Android开发虚拟驱动virtualio
14.3 Android集成C程序访问virtualio
14.4 Android通过HAL访问virtualio
第15章 Framebuffer子系统
15.1 Linux Framebuffer一般子系统
15.2 Android Framebuffer子系统实践
15.3 Android系统对Framebuffer的使用
第16章 Input子系统
16.1 Linux Input一般子系统
16.2 Android Input子系统实践
16.3 Android系统对Input的使用
第17章 V4L2子系统
17.1 Linux V4L2一般子系统
17.2 Android V4L2实践
17.3 Android系统对V4L2的使用
第18章 Binder IPC通信子系统
18.1 Binder驱动概述
18.2 Binder通信模型
18.3 Binder驱动
18.4 Binder的工作流程
第19章 USB子系统
19.1 USB协议基础知识
19.2 USB子系统底层
19.3 Android USB子系统实践
第20章 Bootloader引导子系统
20.1 Bootloader流程分析
20.2 Bootloader修改指南
参考文献