第1课 开发环境建置与基本使用 1
1-1 学习开发的基本概念 2
1-1-1 Java语言的角色 2
1-1-2 Unix/Linux的文件系统 2
1-1-3 学习目标 3
1-2 安装JDK 3
1-3 安装Eclipse 4
1-4 设定Eclipse 5
1-5 安装设定Android SDK 8
1-5-1 在Eclipse外挂ADT 8
1-5-2 建立及使用仿真器 10
第2课 基本程序运行原理与应用 13
2-1 “Hello,World?Hello,Lottery!” 14
2-1-1 建立新项目 14
2-1-2 版面配置 17
2-1-3 开发程序 20
2-1-4 安装执行测试 22
2-2 “BMI? Lottery!” 23
2-2-1 存取控制元件 23
2-2-2 按钮事件处理模式 24
2-2-3 开发设计功能 26
2-2-4 修改程序 27
2-3 写完了,然后呢? 28
2-3-1 加上欢迎界面 28
2-3-2 调整启动程序 31
2-4 Activity的生命周期 34
2-4-1 生命周期的观念 34
2-4-2 测试实作 36
2-4-3 开始观察 39
2-5 Activity切换Activity 40
2-5-1 仅作启动切换 40
2-5-2 传递数据过去 40
2-5-3 切换之后回来确认 41
2-5-4 将数据传递回来 42
2-6 Service的运行应用 44
2-6-1 生命周期实测 44
2-6-2 与线程共舞 48
2-6-3 通过Broadcast发送数据给前台 49
第3课 基本用户界面与事件触发 53
3-1 条列显示元件ListView 54
3-1-1 基本格式 54
3-1-2 进阶格式 57
3-2 线性配置LinearLayout 59
3-3 相对配置RelativeLayout 63
3-4 表格配置TableLayout 68
3-5 网格显示GridView 71
3-6 滑动显示ViewFlipper 75
第4课 对话框与通知事件处理 83
4-1 AlertDialog对话框的使用 84
4-1-1 建立AlertDialog对象 84
4-1-2 消息对话框 84
4-1-3 确认对话框 87
4-1-4 选择式对话框 89
4-1-5 进阶选择式对话框 92
4-2 自定义对话框(Dialog)与日期时间对话框 95
4-2-1 自定义对话框 95
4-2-2 日期选择对话框 99
4-2-3 时间选择对话框 101
4-3 Toast及自定义Toast 103
4-3-1 一般的Toast 103
4-3-2 自定义Toast 104
4-4 进度显示对话框 107
4-5 通知列处理模式 110
4-5-1 版本差异 110
4-5-2 API Level 11 之前 111
4-5-3 API Level 11+ 111
4-5-4 应用场合 114
第5课 进阶程序运行原理与应用 115
5-1 多重线程Thread 116
5-1-1 开发重点观念 116
5-1-2 存取View组件 119
5-1-3 提早结束线程的生命周期 120
5-1-4 另外一种开发方式 121
5-2 定时及周期任务(Timer & TimerTask) 123
5-3 同步任务AsyncTask 126
5-3-1 使用观念 126
5-3-2 生命周期 126
5-3-3 定义泛型参数 128
5-3-4 基本开发程序 129
5-3-5 程序架构 129
5-4 倒数定时器 133
5-4-1 开发模式 133
5-4-2 直接实作练习 133
第6课 菜单与动作列处理 137
6-1 菜单Menu 138
6-1-1 Options menu选项菜单(硬件菜单键) 138
6-1-2 Context menu内容菜单 141
6-1-3 Popup menu弹出式菜单 145
6-2 动作列Action Bar 147
第7课 自定义View与SurfaceView 155
7-1 自定义View:继承View 156
7-2 自定义View与触控手势事件处理 165
7-2-1 一般触控事件侦测处理 165
7-2-2 手势侦测事件处理 166
7-3 自定义SurfaceView:继承SurfaceView 170
7-4 以自定义View来实现手写签名App范例实作 174
7-4-1 前期准备 175
7-4-2 开始处理签名的手势侦测处理 177
7-4-3 处理外部功能 182
第8课 数据存取 185
8-1 偏好设定 186
8-1-1 处理方式 186
8-1-2 基本处理程序 186
8-1-3 范例说明 186
8-1-4 完整范例 189
8-2 内部文件存取机制 191
8-2-1 使用观念 191
8-2-2 写出基本程序 191
8-2-3 读入基本程序 193
8-3 外部文件存取 195
8-3-1 SDCard文件系统基本概念 195
8-3-2 判断SDCard的挂载点(Mount Point) 196
8-3-3 应用程序文件应该在哪里 196
8-3-4 开启写出数据的权限 196
8-3-5 开始进行程序开发 198
8-3-6 写出数据文件 198
8-3-7 读入数据文件 199
8-4 移动装置数据库处理机制SQLite 200
8-4-1 建立数据库的辅助类别对象 200
8-4-2 预先处理模式 200
8-4-3 简单查询数据 202
8-4-4 新增数据 203
8-4-5 删除数据 203
8-4-6 修改数据 204
8-4-7 进一步了解查询方式 204
8-5 应用App资源中的数据存取数据:以游戏关卡数据处理为例 205
8-5-1 定义数据 206
8-5-2 读取数据文件 207
8-5-3 程序中读取方式 207
第9课 因特网相关 209
9-1 网络接口及IP Address 210
9-1-1 装置的网络状态 210
9-1-2 网络接口的IP Address 210
9-1-3 取得装置联机IP Address 212
9-1-4 建构IP Address对象实体 213
9-2 UDP 通信协议的数据存取 214
9-2-1 处理模式 214
9-2-2 实作测试 214
9-3 TCP通信协议的数据存取 220
9-3-1 处理模式 220
9-3-2 实作测试 220
9-4 Http通信协议的数据存取 225
9-4-1 以AndroidHttpClient及DefaultHttpClient实作 225
9-4-2 以java.net.HttpURLConnection实作 228
9-5 WebView使用 229
9-5-1 基本的处理方式——直接放进Activity中 229
9-5-2 基本的处理方式——以版面配置方式处理 230
9-5-3 进一步设定WebView功能 236
第10课 影音多媒体与相机 243
10-1 播放音乐 244
10-1-1 基本概念 244
10-1-2 SDCard上的音乐播放 245
10-1-3 播放项目资源中音乐文件 247
10-1-4 播放URL的音乐文件 247
10-1-5 暂停继续播放 248
10-1-6 停止播放 248
10-2 音效处理 249
10-2-1 建构SoundPool对象实体 249
10-2-2 实时播放音效 250
10-3 录音处理 250
10-3-1 调用其他录音程序 251
10-3-2 自定义录音处理程序 252
10-4 录像放映 254
10-4-1 录像 254
10-4-2 调用其他录像程序 254
10-4-3 自定义录像程序 256
10-4-4 播放影片 258
10-5 相机 259
10-5-1 调用其他照相程序 259
10-5-2 自定义相机程序 261
第11课 地图与卫星定位系统 267
11-1 GPS定位 268
11-1-1 开始基本实作 268
11-1-2 较佳位置取得 270
11-2 基本Google Map 275
11-2-1 开发前期作业 276
11-2-2 Hello,Map 277
11-2-3 在Android上开发的应用 279
11-3 进阶Google Map 280
11-3-1 JavaScript处理说明 280
11-3-2 JavaScript数据传回Android 282
11-3-3 以Android传递数据给JavaScript 283
第12课 传感器运行原理及应用 285
12-1 传感器运行原理与应用 286
12-1-1 基本概念 286
12-1-2 处理原则 286
12-1-3 实作开发 287
12-1-4 用户装置支持处理 288
12-2 三轴加速传感器 289
12-3 重力加速度传感器 293
12-4 磁极方向传感器 296
12-5 光线/温度/湿度/压力传感器 300
第13课 资源与国际化 305
13-1 提供资源内容 307
13-1-1 预设资源内容及架构 307
13-1-2 替代选择性资源内容 309
13-2 存取资源内容 311
13-2-1 程序代码中存取资源内容 312
13-2-2 XML中存取资源内容 313
13-3 应用程序执行中的改变 314
设计一个保留及回存对象 314
13-4 资源内容的区域化 314
13-4-1 支持的区域国别(地区) 315
13-4-2 进一步认识项目资源 316
13-4-3 资源类型 322
13-4-4 区域化确认检查 323
第14课 系统功能与装置控制 325
14-1 移动装置相关辨识 326
14-2 移动电话通话状态 328
14-3 移动电话用户相关数据 330
14-3-1 用户账号 330
14-3-2 取得联系人姓名 331
14-3-3 用户的相簿 332
14-4 开发者基本道德 332
第15课 实际项目开发 335
15-1 弹指砖块王(Bricks Fighter) 336
15-1-1 App简易架构 337
15-1-2 欢迎页面 337
15-1-3 游戏关卡菜单 339
15-1-4 游戏主页 344
15-2 掏金沙(Lode Runner) 353
15-2-1 开发动机 353
15-2-2 着手规划 354
15-2-3 游戏架构 355
15-2-4 关卡菜单 358
15-2-5 游戏画面 359
15-2-6 关卡地图 362
15-2-7 敏感争议 371
15-3 炸弹超人(Bomb King) 371
15-4 其他应用程序开发项目 374
15-4-1 个性签名产生器 374
15-4-2 开发观念原则 386
第16课 App发布 387
16-1 包装发布到Google Play 388
16-1-1 包装成为APK 388
16-1-2 首次注册开发者 390
16-1-3 发布APK到Google Play 392
16-2 App创意开发与比赛经验心得分享 393