资源名称:Android系统移植和驱动开发
内容简介:
本书针对特定硬件平台从零构建Android系统,包括平台移植、应用开发、内核开发以及驱动开发。目前企业对Android人才需求主要分布在应用开发和底层系统开发两个方面,企业最紧缺的是兼具二者的全才型系统工程师,和嵌入式Linux人才需求基本相似。结合这样的人才需求特点,本书的读者是想兼顾应用开发和底层开发的系统级开发工程师。本书共12章,开篇介绍了Android底层开发和嵌入式开发之间的关系,接着介绍Android系统的编译和移植,在这个基础上进一步阐述了Android驱动开发的原理,最后给出了一个Android智能家居的实例。
本书是大学院校嵌入式技术专业、电子信息类其他专业的专业课程教材,也可供高等及中等职业技术院校使用。
资源目录:
第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
资源截图: