第一篇 基础知识篇 2
第1章Android开发前奏 2
1.1为什么选择Android 2
1.1.1什么是Android 2
1.1.2 Android成功案例 5
1.1.3 Android的版本 6
1.1.4 Android市场 7
1.2 Android特性 7
1.2.2挣脱束缚 7
1.2.3丰富的硬件 8
1.2.5 Google应用 8
1.3 Android 4.1新增特性 8
1.3.1更快、更流畅、更灵敏 8
1.3.2全新的用户界面 9
1.3.3增强通知栏 10
1.3.4全新搜索 10
1.3.5桌面插件自动调整大小 11
1.3.6眨眼开锁 11
1.3.7加强无障碍操作 11
1.3.8语言和输入法扩展 12
1.3.9新的输入设备 12
1.3.10新的连接类型 12
1.3.11新的媒体功能 12
1.3.12浏览器增强 12
1.3.13 Google的新服务 12
1.4如何学习Android 13
1.4.1如何学好Android 13
1.4.2 Android API文档的使用 13
第2章 跟我写Hello Android 15
2.1搭建Android开发环境 15
2.1.1 Android开发准备 15
2.1.2 JDK的下载、安装及配置 16
2.1.3 Eclipse的下载及安装 19
2.1.4 Android SDK的下载、安装及配置 22
2.1.5 ADT的下载及安装 29
2.2动手写Hello Android程序 33
2.2.1创建Android应用程序 33
2.2.2创建AVD模拟器 37
2.2.3运行Android程序——欣赏你的杰作 39
2.2.4调试Android应用程序 40
2.2.5 Android应用开发流程 41
2.3.1创建一个可以运行在所有Android版本上的程序 42
2.3.2在Android窗口中输出“你好”中文字符串 43
第3章Android手机的原貌——模拟器 45
3.1创建和删除Android模拟器 45
3.1.1创建并启动Android模拟器 45
3.1.2删除Android模拟器 47
3.2初步接触Android模拟器 47
3.2.1满足不同语言的需求——设置语言 47
3.2.2我要用中文输入法——设置输入法 50
3.2.3日期时间不对怎么办——设置日期时间 52
3.3在Android模拟器上安装和卸载程序 54
3.3.1使用adb命令安装和卸载Android程序 54
3.3.2通过DDMS管理器安装Android程序 56
3.3.3在Android模拟器中卸载程序 57
3.4.1安装搜狗拼音输入法 59
3.4.2使用Android模拟器拨打电话 60
第4章Android程序面面观 62
4.1最简单Android程序的组成 62
4.1.3 gen目录及R.j ava文件 65
4.1.4 AndroidManifest.xml文件 66
4.2 Android程序的生命周期 67
4.3 Android程序的基本组件 68
4.3.1 Activity(活动窗口) 69
4.3.2 BroadcastReceiver(广播接收器) 70
4.3.3 Content Provider(数据共享) 71
4.3.4 Service(服务) 73
4.4.1在Android程序中添加Activity 74
4.4.2在Android程序中添加Service 75
第5章 必须知道的Android开发组件 77
5.1 Android的UI界面 77
5.1.1 Android UI界面概述 77
5.1.2使用XML布局文件控制UI界面 78
5.1.3在Java代码中控制UI界面 79
5.1.4使用XML和Java代码混合控制UI界面 81
5.1.5开发自定义的View 83
5.2文本类组件 85
5.2.1 TextView组件 85
5.2.2 EditText组件 88
5.2.3 AutoCompleteTextView组件 90
5.3按钮类组件 93
5.3.1 Button组件 93
5.3.2 ImageButton组件 95
5.3.3 ToggleButton组件 96
5.4选择类组件 98
5.4.1 RadioButton组件 98
5.4.2 CheckBox组件 101
5.5列表类组件 104
5.5.1 ListView组件 104
5.5.2 Spinner组件 108
5.6图像类组件 111
5.6.1 ImageView组件 111
5.6.2 Gallery组件 112
5.6.3 ImageSwitcher组件 115
5.7.1实现跟踪鼠标单击状态的图片按钮 118
5.7.2猜猜鸡蛋放在哪只鞋子里 119
第6章 设计美观的Android程序界面 125
6.1线性布局管理器 125
6.2绝对布局管理器 129
6.3框架布局管理器 130
6.4相对布局管理器 132
6.5表格布局管理器 134
6.6.1我同意游戏条款 137
6.6.2布局个性游戏开始界面 139
第7章让Android程序听话——程序调试 143
7.1输出日志信息的几种方法 143
7.1.1 Log.d方法——输出故障日志 143
7.1.2 Log.e方法——输出错误日志 144
7.1.3 Log.i方法——输出程序日志 145
7.1.4 Log.v方法——输出冗余日志 146
7.1.5 Log.w方法——输出警告日志 147
7.2手把手教你Android程序调试 148
7.3程序异常处理 149
7.3.1 Android程序出现异常怎么办 150
7.3.2如何捕捉Android程序异常 150
7.3.3抛出异常的两种方法 152
7.3.4何时使用异常处理 154
7.4.1向LogCat视图中输出程序Info日志 154
7.4.2使用throw关键字在方法中抛出异常 155
第二篇 核心技术篇 158
第8章 关于Activity的专题研究 158
8.1 Android核心对象—— Activity 158
8.1.1 Activity有什么作用 158
8.1.2 Activity的四种状态 159
8.1.3 Activity的属性 159
8.2一个轮回——Activity的生命周期 161
8.2.1 Activity生命周期概述 161
8.2.2 Activity的方法 162
8.3四种基本的Activity操作 166
8.3.1如何创建Activity 166
8.3.2启动一个或多个Activity 167
8.3.3多个Activity之间的传值 171
8.3.4关闭Activity 175
8.4.1带选择头像的用户注册界面 175
8.4.2仿QQ客户端登录界面 179
第9章 使用Intent进行通信 184
9.1 Intent对象简介 184
9.1.1 Intent对象概述 184
9.1.2三种不同的Intent传输机制 185
9.2 Intent对象的组成 185
9.2.1组件名称 185
9.2.5附加信息 191
9.3如何解析Intent对象 195
9.3.1 Intent过滤器 196
9.3.2通用情况 198
9.3.3使用Intent匹配 199
9.4使用Intent传递数据 199
9.4.1无参数Activity跳转 199
9.4.2向下一个Activity传递数据 199
9.5上机实践 205
9.5.1使用Intent返回系统Home桌面 205
9.5.2使用Intent打开网页 206
第10章 更上一层楼——Android高级组件 209
10.1日期时间类组件 209
10.1.1 AnalogClock组件 209
10.1.2 DigitalClock组件 210
10.2进度条组件 212
10.2.1 ProgressBar组件 212
10.2.2 SeekBar组件 214
10.2.3 RatingBar组件 217
10.3对话框及消息提示组件 218
10.3.1 Toast组件 219
10.3.2 Notification组件 220
10.3.3 AlertDialog组件 223
10.4上机实践 228
10.4.1显示在标题上的进度条 228
10.4.2带图标的列表对话框 230
第11章 人机交互——Android事件处理 233
11.1事件处理概述 233
11.2处理键盘事件 233
11.3处理触摸事件 236
11.4手势的创建与识别 238
11.4.1手势的创建 239
11.4.2手势的导出 240
11.4.3手势的识别 241
11.5上机实践 243
11.5.1查看手势对应分值 243
11.5.2使用手势输入数字 245
第12章 数据交互的管道——数据存储技术 248
12.1使用SharedPreferences对象存储数据 248
12.2使用Files对象存储数据 256
12.2.1 openFileOutput和openFileInput 256
12.2.2对Android模拟器中的SD卡进行操作 259
12.3 Android数据库编程——SQLite 260
12.4上机实践 264
12.4.1遍历Android模拟器的SD卡 264
12.4.2在SQLite数据库中批量添加数据 265
第13章Content Provider实现数据共享 269
13.1 Content Provider概述 269
13.1.1数据模型 269
13.1.2 URI的用法 270
13.2 Content Provider的几种操作 270
13.2.1查询数据 271
13.2.2增加记录 272
13.2.3增加新值 272
13.2.4批量更新记录 272
13.2.5删除记录 272
13.2.6 Content Provider的应用 272
13.3根据需要Content Provider 274
13.3.1继承ContentProvider类 274
13.3.2声明Content Provider 276
13.4上机实践 276
13.4.1查询联系人姓名和电话 276
13.4.2自动补全联系人姓名 278
第14章 绚丽多彩——图形与图像处理 281
14.1 Android绘图基石——常用绘图类 281
14.1.1 Paint类 281
14.1.2 Canvas类 283
14.1.3 Bitmap类 284
14.1.4 BitmapFactory类 285
14.2绘制2D图像 285
14.2.1绘制几何图形 285
14.2.2绘制文本 287
14.2.3绘制路径 289
14.2.4绘制图片 292
14.3常见的几种图像特效 294
14.3.1旋转图像 294
14.3.2缩放图像 296
14.3.3倾斜图像 298
14.3.4平移图像 299
14.3.5使用BitmapShader渲染图像 301
14.4让图像动起来——Android中的动画 302
14.4.1实现逐帧动画 302
14.4.2实现补间动画 303
14.5上机实践 310
14.5.1实现放大镜效果 310
14.5.2迷途奔跑的野猪 311
第三篇高级应用篇 318
第15章3D制造者——OpenGL 318
15.1 OpenGL简介 318
15.2绘制3D图形 319
15.2.1构建3D开发的基本框架 319
15.2.2绘制一个模型 321
15.3添加效果 325
15.3.1应用纹理贴图 325
15.3.2旋转 326
15.3.3光照效果 328
15.3.4透明效果 330
15.4上机实践 331
15.4.1绘制一个不断旋转的金字塔 331
15.4.2使用Android机器人对立方体进行纹理贴图 334
第16章 玩转Android多媒体应用 336
16.1让音乐动起来——播放音频 336
16.1.1使用MediaPlayer播放音频 336
16.1.2使用SoundPool播放音频 340
16.2声音图像的同步——播放视频 343
16.2.1使用VideoView播放视频 343
16.2.2使用MediaPlayer和SurfaceView播放视频 345
16.3上机实践 348
16.3.1带音量控制的音乐播放器 348
16.3.2制作开场动画 350
第17章 齐头并进——线程与消息处理 353
17.1多线程的基本操作 353
17.1.1创建线程 353
17.1.2开启线程 355
17.1.3线程的休眠 356
17.1.4中断线程 356
17.2 Handler消息传递机制 358
17.2.1循环者——Looper 359
17.2.2消息处理类——Handler 361
17.2.3消息类——Message 361
17.3上机实践 364
17.3.1多彩的霓虹灯 364
17.3.2简易打地鼠游戏 366
第18章 地球村——网络通信技术 370
18.1通过HTTP访问网络 370
18.1.1使用HttpURLConnection访问网络 370
18.1.2使用HttpClient访问网络 377
18.2使用WebView显示网页 383
18.2.1使用WebView组件浏览网页 383
18.2.2使用WebVi ew加载HTML代码 385
18.2.3让Web View支持JavaScript 386
18.3上机实践 388
18.3.1打造功能实用的网页浏览器 388
18.3.2获取天气预报 390
第19章 云服务基础——Service服务 394
19.1 Service概貌 394
19.1.1 Service的分类 394
19.1.2 Service类中重要方法 395
19.1.3 Service的声明 396
19.2 Started Service的使用 397
19.2.1继承IntentService类 398
19.2.2继承Service类 399
19.2.3启动服务 400
19.2.4停止服务 401
19.2.5继承IntentService输出当前时间 401
19.2.6继承Service输出当前时间 403
19.3 Bound Service的使用 405
19.3.1继承Binder类 406
19.3.2使用Messenger类 407
19.3.3绑定到服务 409
19.3.4继承Binder类绑定服务显示时间 410
19.3.5使用Messenger类绑定服务显示时间 412
19.4管理Service的生命周期 414
19.5上机实践 415
19.5.1视力保护程序 415
19.5.2查看当前运行服务信息 417
第四篇 项目实战篇 422
第20章 基于Android的家庭理财通 422
20.1需求分析 422
20.2系统设计 422
20.2.1系统目标 422
20.2.2系统功能结构 422
20.2.3系统业务流程图 423
20.2.4系统编码规范 423
20.3系统开发及运行环境 425
20.4数据库与数据表设计 425
20.4.1数据库分析 425
20.4.2创建数据库 426
20.4.3创建数据表 426
20.5系统文件夹组织结构 427
20.6公共类设计 427
20.6.1数据模型公共类 428
20.6.2 Dao公共类 429
20.7登录模块设计 434
20.7.1设计登录布局文件 434
20.7.2登录功能的实现 435
20.7.3退出登录窗口 436
20.8系统主窗体设计 436
20.8.1设计系统主窗体布局文件 437
20.8.2显示各功能窗口 437
20.8.3定义文本及图片组件 439
20.8.4定义功能图标及说明文字 439
20.8.5设置功能图标及说明文字 439
20.9收入管理模块设计 441
20.9.1设计新增收入布局文件 441
20.9.2设置收入时间 444
20.9.3添加收入信息 446
20.9.4重置新增收入窗口中的各个控件 446
20.9.5设计收入信息浏览布局文件 446
20.9.6显示所有的收入信息 448
20.9.7单击指定项时打开详细信息 448
20.9.8设计修改/删除收入布局文件 449
20.9.9显示指定编号的收入信息 452
20.9.10修改收入信息 453
20.9.11删除收入信息 454
20.10便签管理模块设计 455
20.10.1设计新增便签布局文件 455
20.10.2添加便签信息 457
20.10.3清空便签文本框 458
20.10.4设计便签信息浏览布局文件 458
20.10.5显示所有的便签信息 460
20.10.6单击指定项时打开详细信息 461
20.10.7设计修改/删除便签布局文件 462
20.10.8显示指定编号的便签信息 464
20.10.9修改便签信息 464
20.10.10删除便签信息 465
20.11系统设置模块设计 465
20.11.1设计系统设置布局文件 465
20.11.2设置登录密码 466
20.11.3重置密码文本框 467
20.12将程序安装到Android手机上 467
20.13开发常见问题与解决 469
20.13.1程序在装有Android系统的手机上无法运行 469
20.13.2无法将最新修改在Android模拟器中体现 469
20.13.3退出系统后还能使用记录的密码登录 469