第1章 Android简介 1
1.1 Android的背景 1
1.1.1 Android的历史 1
1.1.2 Android的优势 2
1.2 Android的特征 2
1.3 Android系统的架构 3
1.3.1 应用程序层 4
1.3.2 应用程序框架层 4
1.3.3 系统库 5
1.3.4 Android运行时环境 5
1.3.5 Linux内核层 5
1.4 Android应用程序生命周期 5
1.4.1 Android进程 5
1.4.2 Activity生命周期 6
扩展练习 7
第2章 Android环境的搭建 8
2.1 概述 8
2.2 JDK的安装及使用 8
2.3 SDK、ADT的安装及使用 9
2.3.1 SDK、ADT捆绑式安装 9
2.3.2 单独安装Eclipse、SDK、ADT 13
2.4 配置AVD 15
2.5 安装MyEclipse/JavaEE Eclipse 17
2.6 Tomcat的安装与使用 17
2.7 安装MySQL数据库 19
扩展练习 23
第3章 工程需求分析 24
3.1 需求分析概述 24
3.2 工程功能需求分析 24
3.3 具体功能说明 25
3.3.1 用户管理 25
3.3.2 课程管理 25
3.3.3 课堂点到 26
3.3.4 资源管理 26
3.3.5 课堂消息 27
3.3.6 课堂评分 27
扩展练习 27
第4章 工程数据分析 28
4.1 数据库概述 28
4.2 系统数据库设计 28
4.2.1 数据库分析 28
4.2.2 数据库设计 29
4.3 数据库E-R图 31
扩展练习 32
第5章 工程框架搭建 33
5.1 搭建工程基本结构 33
5.1.1 客户端Android工程搭建 33
5.1.2 服务器端Web工程搭建 36
5.2 实现Android静态界面 37
5.2.1 实现LoginActivity并通过 MainActivity跳转 37
5.2.2 实现WelcomeActivity并通过 LoginActivity跳转 39
5.3 实现服务器端登录验证数据逻辑 40
5.3.1 在MyEclipse中配置 DB Browser 40
5.3.2 在工程中导入Hibernate库 42
5.3.3 导入Spring资源库 43
5.3.4 使用Hibernate逆向工程 44
5.3.5 创建ITeacherDAO接口以及实现类 45
5.3.6 applicationContext.xml中配置TeacherDAO对象 46
5.3.7 测试ITeacherDAO功能 47
5.4 实现服务器端登录业务逻辑 48
5.4.1 创建ITeacherService接口以及实现类TeacherService 48
5.4.2 配置ITeacherService对象 49
5.4.3 测试ITeacherService对象 49
5.5 实现服务器端和客户端数据交互 50
5.5.1 JSON和异步HTTP概述 50
5.5.2 在客户端把输入内容封装成RequestParams数组 51
5.5.3 在服务器端从HttpServletRequest中获取数据 52
5.6 客户端与服务器端进行连接并用post发送数据 55
5.7 服务器端把返回内容封装成JSON对象 56
5.8 完成服务器端功能 57
5.9 客户端解析JSON返回内容 57
5.10 完成客户端功能 59
扩展练习 60
第6章 界面设计 61
6.1 界面编程 61
6.1.1 视图和视图组 61
6.1.2 使用XML布局文件控制UI界面 62
6.1.3 在代码中控制UI界面 63
6.2 布局管理器 64
6.2.1 线性布局 64
6.2.2 表格布局 67
6.2.3 帧布局 69
6.2.4 相对布局 70
6.3 基本界面组件 73
6.3.1 文本框和编辑框 73
6.3.2 按钮和图片按钮 74
6.3.3 单选按钮 75
6.3.4 下拉框 76
6.3.5 列表视图 77
扩展练习 77
第7章 用户管理 79
7.1 功能分析和设计 79
7.1.1 用户登录 79
7.1.2 用户密码修改 80
7.2 Activity与Intent 80
7.2.1 Activity和Intent的使用 80
7.2.2 Intent实现两个Activity间的数据传输 81
7.2.3 Intent传输数据的测试 83
7.3 登录消息提醒 83
7.3.1 添加Toast显示登录成功消息提示框 83
7.3.2 添加AlertDialog显示提交的验证信息有误提示对话框 84
7.3.3 测试登录消息提醒 85
7.4 用户信息SQLite存储 86
7.4.1 创建名为UscrInfo的SQLite数据库 87
7.4.2 使用SQL语句操作CourseUser数据库的用户信息 88
7.4.3 从Cursor中提取用户信息查询结果 89
7.4.4 测试UserInfo数据库 90
7.5 使用SharedPreferences保存数据 90
7.5.1 SharedPreferences概述 91
7.5.2 保存用户信息活动状态 91
7.5.3 还原用户信息活动状态 92
7.5.4 测试用户信息活动状态的保存和还原 92
7.6 密码修改功能设计 93
7.6.1 创建和使用菜单 93
7.6.2 使用监听器来监听菜单事件——密码修改 94
7.6.3 服务器端实现密码的修改操作 95
7.6.4 测试密码修改功能 98
扩展练习 98
第8章 教师课程管理 99
8.1 功能分析和设计 99
8.1.1 课程添加 100
8.1.2 课程编辑 100
8.1.3 课程删除 101
8.1.4 课程学生管理 102
8.2 课程列表视图Adapter的实现 103
8.2.1 制定课程列表ArrayAdapter 103
8.2.2 使用Adapter绑定课程数据 105
8.2.3 测试课程列表视图Adapter 106
8.3 Intent活动启动 106
8.3.1 Intent显式启动Activity 107
8.3.2 Intent隐式启动Activity 108
8.3.3 活动间数据传递 110
8.3.4 测试Intent活动启动 115
8.4 广播事件 118
8.4.1 实现BroadcastReceiver 118
8.4.2 BroadcastReceiver的注册与注销 120
8.4.3 测试广播事件 121
扩展练习 122
第9章 课堂点到 123
9.1 功能分析和设计 123
9.1.1 学生点名 123
9.1.2 学生签到 125
9.1.3 点到记录 126
9.1.4 显示位置 127
9.2 签到启动后台工作 128
9.2.1 创建和控制签到情况服务 128
9.2.2 通过服务处理后台运行的签到情况进程 130
9.2.3 将签到情况活动与服务绑定 130
9.2.4 将签到情况服务移动到后台线程中 133
9.2.5 测试签到情况后台服务 135
9.3 创建基于百度地图的用户位置活动 136
9.3.1 获取百度地图Android SDK 136
9.3.2 创建一个基于百度地图的用户位置活动 137
9.3.3 配置和使用MapView显示地图 141
9.3.4 使用MapController缩放地图 141
9.3.5 利用模拟器更新位置信息 142
9.3.6 创建和使用覆盖Overlay 143
9.3.7 MyLocationOverlay显示用户位置和方向 145
9.3.8 ItemizedOverlay和OverlayItem的使用 146
9.3.9 测试百度地图用户位置显示 147
9.4 基于位置服务的用户位置签到 147
9.4.1 选择位置提供器 148
9.4.2 使用基于位置服务获得用户签到位置 148
9.4.3 确认用户签到信息 150
9.4.4 测试用户位置签到的位置服务 152
扩展练习 152
第10章 作业与资源管理 153
10.1 功能分析和设计 153
10.1.1 作业管理的实现 153
10.1.2 资源共享的实现 156
10.2 Camera设备的使用 157
10.2.1 使用Camera拍摄照片 157
10.2.2 使用Camera拍摄视频 162
10.2.3 测试Camera的使用 165
10.3 媒体文件的上传下载 166
10.3.1 使用内容提供器查看媒体文件 167
10.3.2 上传本地媒体文件至网络服务器 167
10.3.3 查看网络服务器上的媒体资源 172
10.3.4 对下载后的媒体文件进行播放 177
10.3.5 测试媒体文件的上传下载 177
扩展练习 179
第11章 消息发送 180
11.1 功能分析和设计 180
11.2 教师SMS消息发送 181
11.2.1 SMS消息 181
11.2.2 具体实现SMS消息 182
11.2.3 测试消息发送功能 189
扩展练习 190
第12章 实践扩展——私家车拼车系统 191
12.1 项目背景 191
12.2 项目需求 191
12.3 实现效果 192
参考文献 194