目 录
PART Ⅰ Android与相关开发工具
第 1章 Android SDK与开发工具 2
01-01 Android应用程序基础 3
1-1-1 应用程序的组件 3
1-1-2 组件的启动 6
1-1-3 组件的停止 6
01-02 准备开发环境 6
1-2-1 下载Java(for Linux/Windows) 6
1-2-2 安装Java(for Windows) 8
1-2-3 安装Java(for Linux) 9
1-2-4 下载Java(for OS X) 10
1-2-5 安装Java(for Mac OS X) 12
1-2-6 安装Android SDK(for Windows/Linux/Mac OS X) 13
1-2-7 安装Eclipse与Android ADT plug in 16
01-03 Android项目结构与实机部署 22
1-3-1 建立创业账本项目 22
1-3-2 使用Eclipse项目向导新建项目 23
1-3-3 Android的项目结构 24
1-3-4 使用AVD来新建一组模拟器 24
1-3-5 在Eclipse调用模拟器运行 27
1-3-6 将手机设置在调试模式,并连接到开发主机 32
1-3-7 使用Eclipse部署到实际的装置 34
1-3-8 使用Gmail来部署应用程序 35
01-04 使用AndroidManifest.xml记录重要信息 38
1-4-1 应用程序的基本属性 38
1-4-2 应用程序的详细设置 39
1-4-3 应用程序的权限设置 40
1-4-4 应用程序的效率测试 40
1-4-5 更换应用程序的包名称(package) 41
第 2章 熟悉Eclipse开发环境与相关技巧 44
02-01 Eclipse基本设置 45
2-1-1 workspace的建立 45
2-1-2 workspace的首选设置 45
2-1-3 切换Workspace 46
2-1-4 项目的导出 46
2-1-5 项目的导入 47
2-1-6 Eclipise与Android SDK的在线更新 48
2-1-7 workspace默认值的取消 49
02-02 在Eclipse上编辑Java原始文件 50
2-2-1 在Java Perspective编辑Android源代码 51
2-2-2 在项目中使用code assist功能 52
2-2-3 使用code assist编辑XML文件 53
2-2-4 在项目中使用code format功能 54
02-03 源代码管理 55
2-3-1 新建一个CVS仓储 55
2-3-2 将创业账本check-in 56
2-3-3 将创业账本和仓储内的数据作比对 56
02-04 检查程序代码潜在的错误 57
2-4-1 Eclise的程序代码检查 58
2-4-2 使用Eclipse检查多余的程序代码 59
2-4-3 使用proguard检查多余的程序代码 61
第3章 初探Android程序设计 66
03-01 使用XML来宣告声明Layout 67
3-1-1 LinearLayout 67
3-1-2 RelativeLayout 73
3-1-3 FrameLayout 77
3-1-4 TableLayout 78
3-1-5 修改项目画面 79
03-02 Activity的生命周期 81
3-2-1 在Activity的生命周期加载用户接口 84
03-03 Intent对象的操作 84
3-3-1 在项目中显示用户输入画面 84
03-04 手机状态改变时状态的传递 87
3-4-1 手机放置状态改变的处理 87
第4章 调试与信息传送 89
04-01 adb的使用 90
4-1-1 列出连接的装置或模拟器实例 90
4-1-2 指定装置并且安装应用程序 90
4-1-3 启动和终止adb服务 91
4-1-4 打印调试信息 91
4-1-5 过滤调试信息 91
4-1-6 设置调试信息的格式 92
04-02 使用Log来调试 93
4-2-1 在项目中利用Log类来调试 93
4-2-2 在Eclipse中检查程序的调试信息 95
4-2-3 在Eclipse中过滤多余的调试信息 96
04-03 使用Toast来传递信息 98
4-3-1 将Log的调试方式转换到Toast的调试方式 99
4-3-2 利用Toast来提传递文字信息 101
4-3-3 建立更多彩多姿的Toast内容 102
04-04 使用状态栏传递信息 105
4-4-1 新增一个服务 106
4-4-2 新增一个回传的Activity 108
4-4-3 在服务中调用状态栏的用户告知 109
4-4-4 在主Activity中调用服务 110
4-4-5 定制用户信息通知的版型 111
PART Ⅱ Android程序开发基础
第5章 使用Android的资源 116
05-01 字符串的使用 117
5-1-1 处理例外字符 118
5-1-2 自定义字符串数组 119
5-1-3 处理复数的字符串 121
5-1-4 多语系的切换 126
5-1-5 处理字符串的多语系支持 127
5-1-6 多语系的常规 131
05-02 颜色的使用 133
5-2-1 变更项目中字体的颜色 135
5-2-2 颜色组合的应用 136
05-03 图片(Drawable)的使用 140
5-3-1 访问点阵类图形与设置项目的底图 141
5-3-2 定义可扩展的PNG图文件 142
5-3-3 图形状态组合的应用 143
5-3-4 用颜色作为Drawable 145
5-3-5 用几何形状作Drawable 146
5-3-6 图片的多语系处理 149
05-04 样式的使用 151
5-4-1 定义一组新的样式 151
5-4-2 样式的继承 153
05-05 动画的使用 153
5-5-1 逐格动画的使用 154
5-5-2 在项目中加入淡出的渐变动画 154
5-5-3 在项目中加入旋转的动画 157
5-5-4 在项目中加入淡出且旋转的渐变动画 157
5-5-5 利用转场动画让组件的隐藏呈现更流畅 158
第6章 静态用户界面与控件 160
06-01 创建“标签”式的版面配置 161
6-1-1 创建个别的Activity类 161
6-1-2 在AndroidManifest.xml中注册Activity 165
6-1-3 创建图形状态组合来作为标签 167
6-1-4 改写版面配置,并设置为标签主控页面 167
6-1-5 运行标签版面配置 169
6-1-6 使用工作集(Working Set)来整理Package Explorer 171
06-02 运用菜单与用户互动 174
6-2-1 Android的菜单种类 174
6-2-2 创建菜单资源 176
6-2-3 创建选项菜单 179
6-2-4 创建变动的选项资源 181
6-2-5 添加子菜单 184
6-2-6 响应菜单的输入 186
6-2-7 创建本文菜单 187
6-2-8 创建群组本文菜单 190
6-2-9 响应本文菜单的输入 192
06-03 响应用户界面的事件 194
6-3-1 使用“事件监听器” 196
6-3-2 运用监听按钮事件实现离开程序 196
06-04 创建与用户互动的“对话框” 199
6-4-1 在警告对话框中加入按钮 199
6-4-2 在警告对话框中加入条列的数据 201
6-4-3 在警告对话框中加入单选按钮 202
6-4-4 在警告对话框中加入多选按钮 203
6-4-5 创建可显示“不定刻度进度”的对话框 205
6-4-6 创建可显示“有刻度进度”的对话框 206
6-4-7 创建“自定义版面”的对话框 208
第7章 动态用户界面与控件 213
07-01 使用AdapterView来连接数据 214
7-1-1 使用ListView来建立收入菜单 214
7-1-2 在收入画面加入标题与结尾 218
7-1-3 加入用户的响应 220
7-1-4 使用画廊版面来显示图片 222
7-1-5 为画廊版面中的图片加上边框 227
7-1-6 建立画廊版面的互动功能 228
7-1-7 建立飞旋式选择器 231
7-1-8 飞旋式选择器的回调函数 238
07-02 使用系统的Intent 241
7-2-1 在AndroidManifest中定义应用程序所需权限 241
7-2-2 错误信息与权限设置 245
7-2-3 使用系统的网页浏览功能 247
07-03 窗体中的组件 250
7-3-1 文字编辑区块 251
7-3-2 自动完成的文字区块 257
7-3-3 加入评分区块 258
第8章 数据存取 261
08-01 使用“数据提供程序”读写数据 262
8-1-1 系统中的“联系人”数据提供程序 263
8-1-2 操作“联系人”的Data类 264
8-1-3 操作“联系人”的其他类 268
8-1-4 整合到AdapterView 271
8-1-5 在数据提供程序中新增联系人 273
08-02 使用SQL Lite读写数据 275
8-2-1 认识关联式数据库 275
8-2-2 新增辅助数据库的类 276
8-2-3 使用数据定义语言 280
8-2-4 在数据表格中加入数据 282
8-2-5 用ListView来接收数据库查询的结果 287
8-2-6 在数据表格中删除数据 290
8-2-7 在数据表格中修改数据 295
PART Ⅲ 档案与通信
第9章 用户首选与文件访问 300
09-01 通过用户首选访问文件 301
9-1-1 将数据写入用户首选 301
9-1-2 查看用户首选文件 304
9-1-3 将用户首选的数据读出 305
9-1-4 使用PreferenceActivity 307
9-1-5 在用户首选中建立选项菜单 313
9-1-6 在用户首选中建立核选框 315
9-1-7 将用户首选分类 317
09-02 文件存储方式 319
9-2-1 使用内部存储空间 319
9-2-2 文件的持久性 321
9-2-3 使用外部的存储空间 322
9-2-4 访问外部存储空间的文件 324
9-2-5 访问外部存储空间供媒体扫描器使用 326
9-2-6 访问外部共享存储空间 328
09-03 将程序移到SD卡中运行(App2SD) 330
9-3-1 将程序移到SD卡 331
9-3-2 将程序从SD卡移回手机 333
09-04 使用多线程解决ANR问题 334
9-4-1 操作UI线程 334
9-4-2 使用View的post()函数在不同线程中变更UI 339
9-4-3 使用View的postDelayed()函数,以定时在不同线程中变更UI 340
9-4-4 使用AsyncTask更新UI 341
9-4-5 使用AsyncTask显示进度 342
第 10章 通信与网络 345
10-01 短信的处理 346
10-1-1 发送短信 346
10-1-2 监控短信的接收 348
10-02 寄送E-mail 353
10-03 再次查看Web画面 356
10-3-1 强化Eclipse的网页编辑上传功能 356
10-3-2 在项目中添加一个“WebView” 361
10-3-3 一次显示多个WebView 363
10-3-4 在WebView中使用JavaScript 364
10-04 使用Android 2.3新增的下载管理器 366
10-4-1 新增具有外部存储空间的Android 2.3模拟器 367
10-4-2 新建Android 2.3 的项目空间 367
10-4-3 指定下载的路径 370
10-4-4 新增一个广播接收器 372
10-4-5 接收下载完成的广播 375
第 11章 位置和地图 377
11-01 使用位置服务 378
11-1-1 使用位置服务实际面的考虑 378
11-1-2 使用位置管理器取得所在位置 378
11-1-3 在模拟器上设置位置 382
11-02 结合地图信息的应用 384
11-2-1 取得模拟器上的MD5码 384
11-2-2 设置可用的地图类型 389
11-2-3 设置地图的初始位置 393
11-2-4 在地图上标注目前的所在地 393
11-2-5 在地图上增加景点 395
11-2-6 定位查询 400
第 12章 触控与动态桌面壁纸 407
12-01 触控的事件 408
12-1-1 实现触控监听器OnTouchListener 408
12-1-2 加上速度侦测器VelocityTracker 412
12-1-3 触控区域和多点触控 414
12-1-4 建立手势数据库 417
12-1-5 在程序中调用手势标识 419
12-02 活动壁纸 422
12-2-1 实现动态壁纸 422
PART Ⅳ Device相关信息/Google云端服务与Android应用
第 13章 桌面小工具与绘图 432
13-01 桌面小工具 433
13-1-1 在程序中声明小工具 434
13-1-2 小工具的版面配置 434
13-1-3 实现小工具 435
13-1-4 实现小工具的配置组件 440
13-1-5 小工具和用户互动 446
13-02 2D绘图的功能 448
13-2-1 画布与定制的ViewA 448
13-2-2 设置绘制样式——画圆和椭圆 451
13-2-3 设置线条与扇形圆弧 453
13-2-4 设置文字和路径 455
13-2-5 结合绘图与触控 457
第 14章 云备份与数据安全 462
14-01 云备份 463
14-1-1 创建云备份用的项目 463
14-1-2 创建备份 465
14-1-3 使用云备份辅助程序来备份用户首选 471
14-1-4 操作云备份辅助程序来备份内部文件 473
14-02 装置控管 474
14-2-1 创建装置管理器 475
14-2-2 设置密码并锁定屏幕 483
14-2-3 设置密码的强度 488
14-2-4 设置系统重置 489
第 15章 C2DM云信息推送 495
15-01 云信息推送的架构 496
15-1-1 注册C2DM服务 496
15-1-2 云信息推送的组件 499
15-1-3 云信息推送的生命周期 499
15-1-4 用户对云信息的设置 500
15-02 云信息客户端的实现 500
15-2-1 修改Manifest文件 501
15-2-2 注册/取消注册C2DM服务 503
15-2-3 聆听注册/取消注册的广播事件 505
15-2-4 登录模拟器的账户 506
15-2-5 取得注册码 507
15-3 云信息服务器端的实现 507
15-3-1 简化实现的情境 509
15-3-2 取得认证的代码 509
15-3-3 发送信息到C2DM服务器 511
15-3-4 客户端接收C2DM服务器传回的信息 513
第 16章 Android的硬件功能 517
16-01 使用相机 518
16-1-1 使用相机的组件 518
16-1-2 SurfaceView的运作周期 518
16-1-3 相机的运作周期 519
16-1-4 新增相机的项目与设置权限 520
16-1-5 相机操作的用户界面 522
16-1-6 添加SurfaceView与相机相关组件 523
16-1-7 实现主程序逻辑 526
16-1-8 模拟器的旋转与实机测试 529
16-02 使用感应器 531
16-2-1 取得感应器的列表 531
16-2-2 取得感应器的数值 534
16-2-3 使用光度感应器 534
16-2-4 重力加速度与坐标系 536
16-2-5 使用重力加速度感应器 536
附录A Google App Inventor 539
A-1 登录Google App Inventor服务 540
A-2 安装客户端的组件 541
A-2-1 组件在OSX环境的安装 541
A-2-2 组件在Windows环境的安装 542
A-2-3 组件在Ubuntu环境的安装 543
A-3 进入应用程序创作家 544
A-3-1 按钮组件与使用区块编辑器 548
A-3-2 触控组件与区块编辑器的参数传送 550
A-3-3 使用计时器组件 554
附录B Android的版权服务 561
B-1 Android的付费机制 562
B-1-1 版权服务的架构 563
B-1-2 取得版权服务的公开密钥 564
B-1-3 版权服务器的响应代码 564
B-1-4 测试账号与测试周期 565
B-2 实现Android版权服务 566
B-2-1 下载版权验证函数库 566
B-2-2 设立一个版权验证函数库项目 567
B-2-3 在主程序中加载函数库项目 568
B-2-4 增加Android的权限 570
B-2-5 使用严格模式 571
B-2-6 调整静态服务器传回值以测试结果 575
B-2-7 服务器端的版权检查策略 576
B-2-8 实现加密编码函数 577
B-2-9 使用服务器的版权检查模式 578