目 录
第2版前言
第1版前言
软件篇
第1章 Android体系结构及开发环境 / 2
1.1 Android体系结构介绍 / 2
1.1.1 应用程序 / 3
1.1.2 应用程序框架 / 3
1.1.3 函数库 / 4
1.1.4 Linux内核 / 4
1.2 搭建Windows下的开发环境 / 5
1.2.1 安装JDK / 5
1.2.2 安装Eclipse / 6
1.2.3 安装ADT / 6
1.2.4 安装SDK / 7
1.2.5 创建Android虚拟设备 / 9
1.3 搭建Linux下的开发环境 / 11
1.3.1 安装JDK / 11
1.3.2 安装Eclipse / 12
1.3.3 安装ADT / 13
1.3.4 安装SDK / 15
1.3.5 创建Android虚拟设备 / 17
1.4 搭建NDK开发环境 / 20
1.4.1 NDK开发环境与安装目录 / 20
1.4.2 系统和软件需求 / 20
1.4.3 Windows 平台NDK环境搭建 / 21
1.4.4 Linux平台NDK环境搭建 / 25
第2章 Android应用程序开发 / 28
2.1 第一个HelloEveryone / 28
2.1.1 创建第一个Android项目HelloEveryone / 28
2.1.2 Android应用工程组成 / 29
2.2 Android应用程序组成 / 31
2.2.1 Activity组件 / 31
2.2.2 Intent组件 / 36
2.2.3?Broadcast Receiver组件 / 39
2.2.4 Service组件 / 39
2.2.5 Content Provider组件 / 39
2.3 使用AndroidManifest文件定义应用程序 / 40
2.3.1 管理应用程序身份 / 42
2.3.2 注册Activity和其他应用程序组件 / 42
2.3.3 使用许可权限 / 44设备和软件 / 45
2.3.5 使用库和Android SDK版本 / 46
2.3.6 定义应用程序的其他配置参数 / 46
2.4?常用Widget控件介绍 / 47
2.4.1?用Widget控件创建Android项目 / 47
2.4.2?按钮 / 48
2.4.3?文字框 / 50
2.4.4?编辑框 / 51
2.4.5?多项选择框 / 52
2.4.6?单项选择框 / 54
2.4.7?下拉列表 / 55
2.4.8?自动完成文本 / 56
2.4.9?日期、时间选择器 / 58
2.4.10?进度条 / 60
2.4.11?拖动条 / 61
2.4.12?图片视图 / 62
2.4.13?基于网格索引的图片浏览器 / 63
2.4.14?选项卡 / 66
2.4.15?列表 / 67
2.4.16?图片按钮 / 69
2.4.17?拖动效果 / 70
2.4.18?对话框实例 / 72
2.5 界面布局 / 75
2.5.1 线性布局 / 75
2.5.2 框架布局 / 77
2.5.3 表格布局 / 78
2.5.4 相对布局 / 80
2.5.5 绝对布局 / 81
2.5.6 网格布局 / 82
2.6 菜单 / 84
2.6.1 菜单资源 / 84
2.6.2 选项菜单 / 85
2.6.3 子菜单 / 87
2.6.4 快捷菜单 / 89
2.7 事件处理 / 91
2.7.1 Android的事件处理概述 / 91
2.7.2 基于监听的事件处理 / 91
2.7.3 基于回调的事件处理 / 94
2.7.4 响应的系统设置的事件 / 97
2.7.5 Handler消息传递机制 / 101
第3章 SQLite数据库程序开发 / 103
3.1 SQLite简介 / 103
3.1.1 SQLite体系结构 / 103
3.1.2 数据库基础 / 104
3.1.3 SQLite语句及语法 / 104
3.1.4 数据库包 / 107
3.1.5 SQLiteDatabase类 / 109
3.2 SQLite连接 / 111
3.2.1 开始构建 / 112
3.2.2 数据库基本操作 / 114
3.2.3 数据库与UI连接 / 120
3.3 数据共享 / 122
3.3.1 Content Provider实现数据共享 / 123
3.3.2 创建Content Provider / 125
3.3.3 使用CRUD基本函数 / 127
3.3.4 注册与使用Content Provider / 130
3.4 基于SQLite数据库的日记账工具 / 135
硬件篇
第4章 Android系统移植 / 152
4.1 Android 结构介绍 / 152
4.2 Android 内核结构和设备驱动 / 153
4.2.1 Android 内核源代码结构 / 153
4.2.2 Android 常用设备驱动 / 155
4.3 Android 内核基本配置 / 161
4.3.1 Android内核中的Kconf?ig文件 / 162
4.3.2 Android内核配置选项 / 162
4.4 Android 内核编译 / 165
4.4.1 Android内核中的Makef?ile文件 / 166
4.4.2 解压Android 内核源代码 / 167
4.4.3 编译Android 内核 / 167
4.5 DMA-210XP平台Android文件系统烧写 / 168
4.5.1 烧写u-boot到Nand F?lash / 168
4.5.2 烧写zImage内核映像文件 / 171
4.5.3 烧写ramdisk-uboot.img映像文件 / 172
4.5.4 烧写Android System.img文件 / 172
4.5.5 烧写Android userdata.img文件 / 173
4.5.6 启动Android系统 / 173
4.5.7 TF卡自动更新kernel和Android系统文件 / 174
第5章 系统硬件与驱动程序 / 175
5.1 Android硬件抽象层(HAL) / 175
5.1.1 内核硬件驱动程序 / 175
5.1.2 增加C硬件驱动程序 / 184
5.1.3 接口硬件驱动程序 / 185
5.1.4 JNI硬件驱动程序 / 189
5.2 GPIO接口及驱动程序 / 191
5.2.1 GPIO接口 / 191
5.2.2 LED接口电路 / 199
5.2.3 LED驱动程序设计 / 199
5.2.4 LED程序测试 / 214
5.3 PWM定时器及驱动程序 / 215
5.3.1 PWM定时器 / 215
5.3.2 背光接口电路 / 221
5.3.3 背光驱动程序设计 / 224
5.3.4 背光程序测试 / 232
5.4 ADC接口及驱动程序 / 232
5.4.1 ADC转换器 / 232
5.4.2 ADC接口电路 / 239
5.4.3 ADC驱动程序设计 / 239
5.4.4 ADC程序测试 / 244
5.5 键盘接口及驱动程序 / 245
5.5.1 键盘扫描原理 / 245
5.5.2 矩阵键盘硬件原理图 / 246
5.5.3 键盘驱动程序设计 / 250
5.5.4 键盘程序测试 / 259
第6章 外设接口与驱动程序 / 261
6.1 UART串行接口及通信程序 / 261
6.1.1 UART简介 / 261
6.1.2 UART接口及操作 / 271
6.1.3 UART通信程序设计 / 272
6.1.4 UART程序测试 / 285
6.2 IIC总线接口及驱动程序 / 286
6.2.1 IIC总线简介 / 286
6.2.2 在Linux内核中添加IIC设备 / 291
6.2.3 IIC驱动程序设计 / 291
6.3 蓝牙接口及驱动程序 / 302
6.3.1 蓝牙简介 / 302
6.3.2 Android系统下的蓝牙架构 / 304
6.3.3 蓝牙驱动程序设计 / 305
6.3.4 蓝牙程序测试 / 312
6.4 Wi-Fi接口及通信程序 / 313
6.4.1 Wi-Fi介绍 / 313
6.4.2 Wi-Fi程序设计 / 316
6.4.3 Wi-Fi程序测试 / 323
6.5 MediaPlayer播放器程序 / 324
6.5.1 MediaPlayer简介 / 324
6.5.2 MediaPlayer的界面与架构 / 325
6.5.3 MediaPlayer播放器程序设计 / 327
6.5.4 MediaPlayer程序测试 / 335
6.6 Camera 拍照及摄影程序 / 336
6.6.1 Camera简介 / 336
6.6.2 Android 系统的Camera / 337
6.6.3 Camera拍照程序设计 / 338
6.6.4 Camera程序测试 / 343
项目篇
第7章?Android界面与IO设计工具 / 346
7.1 Android界面与IO设计工具介绍 / 346
7.2 Android界面与IO设计工具结构 / 346
7.3 Android界面与IO设计工具界面设计 / 348
7.3.1 界面设计 / 348
7.3.2 界面内容添加 / 348
7.4 Android界面与IO设计工具功能选择区设计 / 356
7.4.1 界面设计 / 356
7.4.2 IO设计 / 369
7.4.3?数据库设计 / 371
7.5 Android界面与IO设计工具辅助功能区设计 / 376
7.6 Android界面与IO设计工具程序生成区设计 / 377
7.6.1 Android界面与IO设计工具程序生成区功能介绍 / 377
7.6.2 Android界面与IO设计工具程序生成区的代码实现 / 378
第8章 GPS与Google Map定位系统 / 392
8.1 MyMap服务系统 / 392
8.2 Android Google Map / 393
8.2.1 申请Google Map Android API Key / 393
8.2.2 编写Google Map框架程序 / 394
8.2.3 控制地图 / 396
8.2.4 地图的显示模式 / 398
8.2.5 地图的图层 / 401
8.2.6 查询与定位 / 403
8.3 Android定位服务 / 409
8.3.1 开启定位服务 / 409
8.3.2 模拟测试 / 411
8.3.3 GPS与Google Map定位 / 413
8.4 案例重构 / 414
8.4.1 地图的显示模式 / 414
8.4.2 重构“查询方法” / 417
第9章 Android图书管理系统 / 420
9.1 系统功能设计 / 420
9.2 系统开发环境 / 420
9.3 数据库设计 / 421
9.4 图书管理系统学生端开发 / 424
9.4.1 登录界面 / 424
9.4.2 查询界面 / 425
9.4.3 学生预约管理 / 431
9.4.4 挂失管理 / 433
9.5 图书管理系统管理端开发 / 434
9.5.1 登录界面 / 434
9.5.2 图书管理 / 438
9.5.3 学生信息管理 / 439
9.5.4 管理员管理 / 441
9.5.5 借阅预约图书 / 443
9.5.6 缴纳罚款 / 446
参考文献 / 450