PART Ⅰ Android与相关开发工具 2
第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建立更多彩多姿的Troast内容 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程序开发基础 116
第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 Ⅲ 档案与通信 300
第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应用 432
第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-03云信息服务器端的实现 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