资源名称: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 SDK8

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 Bootloader59

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驱动的HelloWorld92

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.c128

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调用service140

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.sh155

8.4.2 执行lunch full-eng156

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 定制手机模拟器ROM162

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 HAL192

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

资源截图:

Android系统移植和驱动开发