第1章 Android系统的编译和移植实例 1
1.1移植背景与目标 1
1.2移植涉及的主要过程 1
1.3下载Android Linux内核 1
1.4安装交叉工具链 3
1.5移植Android Linux内核支持EZ6410平台 4
1.5.1 CS8900a驱动移植 4
1.5.2键盘驱动编写 4
1.5.3液晶驱动 5
1.5.4触摸屏驱动 6
1.5.5 USB驱动修改 7
1.5.6安装Android SDK 8
1.5.7提取Android根文件系统 9
1.5.8系统环境设置 11
1.6小结 12
1.7思考题 12
第2章 Android系统与嵌入式开发 13
2.1 Android与传统嵌入式Linux系统 13
2.2嵌入式系统概述 13
2.2.1嵌入式系统简介 13
2.2.2嵌入式系统的特点 14
2.2.3嵌入式系统的发展 15
2.3嵌入式系统的组成 17
2.3.1嵌入式系统的硬件组成 18
2.3.2嵌入式系统的软件组成 19
2.4嵌入式系统开发概述 19
2.5 Android系统概述 26
2.6 Android系统架构 28
2.6.1 Linux内核(Linux Kernel) 28
2.6.2 Android核心库(Libraries) 29
2.6.3 Android运行时环境(Android Runtime) 29
2.6.4 Android应用程序框架(Application Framework) 29
2.6.5 Android应用程序和小部件 30
2.7小结 30
2.8思考题 30
第3章 Android移植平台工具介绍 31
3.1开发板外观 31
3.2开发板硬件资源 32
3.3功能展示 33
3.4目标板与主机之间的连接 35
3.5文件传输 37
3.6网络文件系统 38
3.7设备安装 39
3.8工具软件的设置 39
3.9 U-Boot镜像的下载与烧写 42
3.10内核镜像的下载与烧写 48
3.11烧写文件系统镜像 50
3.12 U-Boot启动参数设置 51
3.13小结 52
3.14思考题 52
第4章 Android移植环境搭建 53
4.1构建Android移植交叉开发环境 53
4.1.1嵌入式交叉编译环境搭建 53
4.1.2主机交叉开发环境配置 55
4.2 Bootloader 59
4.2.1 Bootloader的种类 60
4.2.2 U-Boot编译与使用 61
4.2.3 U-Boot移植 73
4.3 Android内核与移植 74
4.3.1 Android移植简介 76
4.3.2 FS S5PC100开发平台移植环境搭建 76
4.4 U-Boot、内核、文件系统编译 78
4.4.1 U-Boot的编译 78
4.4.2内核镜像的编译 78
4.4.3 Android文件系统的编译 79
4.5小结 81
4.6思考题 81
第5章 Android移植与驱动 82
5.1 Android移植和驱动的关系 82
5.2设备驱动程序 82
5.2.1设备驱动概念 82
5.2.2内核驱动程序 83
5.2.3用户空间驱动程序 83
5.2.4 Linux设备驱动概述 83
5.3 Linux核心与Android驱动 85
5.3.1 Android专用驱动 86
5.3.2 Android使用的设备驱动 87
5.4 Android驱动的HelloWorld 92
5.5小结 95
5.6思考题 95
第6章 Android驱动编程 96
6.1 Android内核内核模块编程 96
6.2字符设备驱动编程 105
6.2.1字符设备驱动编写流程 105
6.2.2重要数据结构 106
6.2.3设备驱动程序主要组成 107
6.3 LCD控制器 114
6.3.1 LCD控制器介绍 114
6.3.2 S5PC100 LCD控制器介绍 114
6.3.3 S5PC100 LCD控制器操作 116
6.3.4 LCD控制器寄存器 117
6.4驱动程序 123
6.4.1驱动程序初始化和退出 124
6.4.2驱动程序Open and release函数 126
6.4.3驱动程序ioctl函数 127
6.4.4驱动测试程序main.c 128
6.5小结 128
6.6思考题 129
第7章 Android HAL实例解析 130
7.1概述 130
7.2 HAL介绍 130
7.3 HAL内容 131
7.3.1知识准备:HAL主要的存储目录 131
7.3.2知识准备:两种HAL架构比较 131
7.4 mokoid工程代码下载与结构分析 132
7.4.1知识准备:mokid项目概述 132
7.4.2知识准备:结构分析 132
7.4.3知识准备:第一种方法直接调用service方法的实现过程 135
7.4.4知识准备:第二种方法——经过Manager调用service 140
7.4.5 FS-S5PC100实验平台LED灯实验 143
7.4.6 FS-S5PC100实验平台Sensor实验 144
7.5实验中需要注意的问题 145
7.6小结 146
7.7思考题 147
第8章 Android 4.0系统的下载与编译 148
8.1准备Android下载与编译环境 148
8.1.1硬件环境 148
8.1.2软件环境 148
8.2下载Android 4.0及Goldfish源码 149
8.2.1下载并初始化repo工具 149
8.2.2下载Android源码 150
8.2.3其他源码下载源 150
8.2.4下载模拟器Goldfish内核源码 150
8.3编译Android及Goldfish内核源码 152
8.3.1编译Android源码 152
8.3.2编译goldfish内核源码 154
8.4 Android编译过程分析 154
8.4.1 source build/envsetup.sh 155
8.4.2执行lunch full-eng 156
8.4.3执行make命令 156
8.5创建目标产品编译项 157
8.6编译并运行Android 4.0系统模拟器 158
8.6.1编译Android模拟器 158
8.6.2 Android启动流程 161
8.7定制手机模拟器ROM 162
8.7.1定制手机开机界面 162
8.7.2定制Android启动字样 165
8.7.3定制Android动画 166
8.8为Android启动加速 168
8.8.1定制本地服务 168
8.8.2定制Android系统服务 169
8.9 Android系统企业级定制 170
8.10小结 172
8.11思考题 172
第9章 Android系统蜂鸣器与按键 173
9.1蜂鸣器驱动的实现 173
9.1.1 PWM定时器概述 173
9.1.2 PWM定时器特点 174
9.1.3 PWM定时器的寄存器 175
9.1.4 PWM定时器操作示例 180
9.1.5蜂鸣器的种类和工作原理 181
9.1.6开发板上的蜂鸣器原理图分析 181
9.2蜂鸣器HAL层的实现 182
9.3 Android按键检测程序流程 184
9.4驱动层实现 185
9.4.1 HAL层实现 186
9.4.2 HAL使用 187
9.4.3 HAL stub实现 188
9.4.4 JNI层实现 189
9.4.5 Framework层实现 189
9.4.6应用层实现 190
9.5小结 190
9.6思考题 190
第10章 Android与传感器设计与实现 191
10.1 Android Sensor实现原理概述 191
10.2 JNI原理 191
10.3 Android HAL 192
10.4 Sensor传感器系统 193
10.4.1 Sensor Stub分析 194
10.4.2 Sensor Stub实现细节 202
10.5 Logcat调试 202
10.6一些开发环境的问题 203
10.7小结 203
10.8思考题 203
第11章 Android与摄像头 204
11.1 OV9650介绍 204
11.1.1芯片功能描述 204
11.1.2 OV9650寄存器详解 205
11.2 SCCB总线 206
11.2.1 SCCB协议介绍 206
11.2.2 SCCB的总线编程 207
11.3 CAMIF接口详解 209
11.3.1基于S5PC100的CAMIF接口介绍 209
11.3.2 S5PC100 CAMIF寄存器详解 210
11.4摄像头驱动 213
11.4.1摄像头工作原理 213
11.4.2驱动开发思路 214
11.5 Android Camera架构分析 228
11.5.1 CameraService介绍 229
11.5.2 Camera-HAL介绍 229
11.5.3 CameraService与Camera-HAL的联系 230
11.6小结 232
11.7思考题 232
第12章 Android下综合项目介绍——智能家居 233
12.1项目概述 233
12.1.1项目背景 233
12.1.2术语定义 234
12.1.3系统描述 234
12.1.4功能描述 235
12.1.5项目功能图 235
12.1.6所涉及的系统与工具 235
12.2前端数据中心(A8)总体设计 236
12.2.1程序设计流程图 236
12.2.2线程定义 236
12.2.3所用类定义 236
12.3前端A8模块设计 237
12.3.1 A8-Android Application层设计 237
12.3.2 A8-数据传递架构模块 245
12.3.3传输协议模块设计 257
12.4终端M0模块设计 259
12.4.1终端设备方案描述 259
12.4.2终端设备工作流程 259
12.4.3功能模块描述 260
12.5系统测试 267