第1章 千里之行,始于足下——Android开发基础 1
1.1 Android开发基本知识概览 1
1.1.1 Android的发展史 1
1.1.2 Android基础架构详解 1
1.2 Android开发环境的搭建 4
1.2.1 AndroidSDK的安装与环境变量配置 4
1.2.2 Eclipse集成开发环境的搭建 4
1.2.3 Android模拟器的创建与使用 6
1.3初识Android应用程序 8
1.3.1创建第一个Android应用程序——Hello Android 8
1.3.2模拟器上调试Android应用程序 10
1.3.3实际设备的联机调试 12
1.4本章小结 13
第2章 必知必会的核心知识——Android应用程序的组成与结构 14
2.1应用程序的项目结构 14
2.1.1 Android应用目录剖析 14
2.1.2 Android应用中资源的使用 15
2.1.3 Android系统配置文件基本知识 16
2.1.4 Android的常用权限 17
2.2揭开Android系统神秘的面纱——深入Android系统 18
2.2.1 Android系统架构基本知识 18
2.2.2 Android应用程序生命周期详解 21
2.2.3 Activity组件的基本知识 22
2.2.4服务组件——Service的基本知识 24
2.2.5广播通知的组件——Broadcast-Receiver的基本知识 25
2.2.6 ContentProvider组件的基本知识 28
2.2.7 Intent组件和IntentFilter组件的基本知识 28
2.3本章小结 31
第3章 Android控件入门 32
3.1 Android控件类基本知识 32
3.1.1视图View概述 32
3.1.2 ViewGroup概述 35
3.2 Android文本控件 37
3.2.1文本框——TextView 37
3.2.2可编辑的文本框——EditText 40
3.2.3文本框使用案例 40
3.3 Android按钮控件 44
3.3.1按钮——Button基本知识 44
3.3.2按钮控件使用案例 45
3.4本章小结 48
第4章 炫酷的界面设计——Android布局管理 49
4.1线性布局——LinearLayout 49
4.1.1 LinearLayout基本知识 49
4.1.2线性布局案例 50
4.2帧布局——FrameLayout 53
4.2.1 FrameLayout基本知识 53
4.2.2帧布局案例 54
4.3表格布局——TableLayout 56
4.3.1 TableLayout基本知识 56
4.3.2表格布局案例 57
4.4相对布局——RelativeLayout 59
4.4.1 RelativeLayout基本知识 59
4.4.2相对布局案例 60
4.5布局管理器综合案例 62
4.6本章小结 66
第5章 磨刀不误砍柴功——Android控件必知必会 67
5.1图片按钮 67
5.1.1 ImageButton基本知识 67
5.1.2 ImageButton使用案例 67
5.1.3 9Patch图片基本知识与生成 69
5.2单选按钮与复选框 73
5.2.1 RadioButton和CheckBox基本知识 73
5.2.2单选按钮和复选框使用案例 73
5.3图片控件 77
5.3.1 ImageView基本知识 77
5.3.2图片查看器小案例——ImageView的使用 78
5.4状态开关控件及应用实例 81
5.4.1 ToggleButton基本知识 81
5.4.2开关控件使用案例 82
5.5时钟控件及应用实例 85
5.5.1 AnalogClock的基本知识 85
5.5.2 DigitalClock的基本知识 85
5.5.3时钟控件使用案例 86
5.6日期时间控件及实例 90
5.6.1 DatePicker基本知识 90
5.6.2 TimePicker基本知识 91
5.6.3日期时间控件使用案例 91
5.7动画播放技术 94
5.7.1帧动画(Frame Animation)基本知识 95
5.7.2帧动画(Frame Animation)使用案例 95
5.7.3补间动画(Tween Animation)基本知识 98
5.7.4补间动画(Tween Animation)使用案例 100
5.8本章小结 102
第6章 更上一层楼——Android控件进阶 103
6.1列表视图 103
6.1.1 ListView基本知识 103
6.1.2列表视图使用案例 104
6.2滚动视图 107
6.2.1 ScrollView基本知识 107
6.2.2滚动视图使用案例 107
6.3下拉列表控件 109
6.3.1 Spinner基本知识 109
6.3.2下拉列表使用案例 109
6.4滑块与进度条 112
6.4.1 ProgressBar基本知识 113
6.4.2 SeekBar基本知识 113
6.4.3滑块和进度条案例 113
6.5星级评分条 116
6.5.1 RatingBar基本知识 116
6.5.2星级评分条使用案例 116
6.6画廊控件 118
6.6.1 Gallery基本知识 118
6.6.2画廊控件使用案例 119
6.7网格视图 121
6.7.1 GridView基本知识 121
6.7.2网格视图使用案例 122
6.8选项卡 125
6.8.1 TabHost基本知识 125
6.8.2选项卡使用案例 125
6.9自动完成文本框 127
6.9.1 AutoCompleteTextView基本知识 127
6.9.2自动完成文本框使用案例 127
6.10控件的综合应用案例 129
6.10.1综合案例的功能简介 129
6.10.2主控制类的实现 130
6.10.3浏览相册界面的实现 133
6.10.4发表心情界面的实现 135
6.10.5查看日志界面的实现 137
6.11本章小结 140
第7章 友好地互动交流——Android菜单与对话框 141
7.1程序菜单的应用 141
7.1.1选项菜单基本知识 141
7.1.2选项菜单使用案例 143
7.1.3上下文菜单的使用 149
7.2对话框的应用 154
7.2.1初识对话框 154
7.2.2普通对话框的开发 156
7.2.3日期及时间选择对话框的开发 159
7.2.4多选按钮对话框的开发 165
7.2.5列表对话框的开发 169
7.2.6单选按钮对话框的开发 172
7.2.7进度条对话框的开发 176
7.3本章小结 180
第8章 Android下的多线程与事件处理机制 181
8.1 Android下的多线程 181
8.1.1与众不同的Android多线程 181
8.1.2初识Android消息传递员——Handler 181
8.1.3 Handler使用小案例 182
8.2基于监听接口的事件处理 184
8.2.1 Android事件处理模型 184
8.2.2 OnClickListener接口基本知识 185
8.2.3 OnLongClickListener接口基本知识 187
8.2.4 OnFocusChangeListener接口基本知识 190
8.2.5 OnKeyListener接口基本知识 192
8.2.6 OnTouchListener接口基本知识 194
8.2.7 OnCreateContextMenuListener接口基本知识 196
8.3基于方法重写的事件处理 199
8.3.1 onKeyDown与onKeyUp方法详解 199
8.3.2 onTouchEvent方法详解 202
8.3.3 onTrackBallEvent方法详解 206
8.3.4 onFocusChanged方法详解 211
8.4本章小结 214
第9章 多彩的应用实现——2D应用程序开发 215
9.1 SurfaceView的使用 215
9.1.1基本几何图形的绘制 215
9.1.2自定义图形的绘制 218
9.1.3 2D贴图技术 220
9.2用2D技术开发简单游戏 222
9.2.1显示界面类GameSurfaceView的开发 223
9.2.2控制小球运动——ThreadForGo类的开发 225
9.2.3记分线程——ThreadForTimeControl类的开发 227
9.2.4重新绘制界面——ThreadForDraw类的开发 227
9.2.5设置屏幕相关属性——GameActivity类的开发 228
9.3多屏幕分辨率问题的处理 230
9.3.1 Android开源带来的机遇与问题 230
9.3.2几种自适应屏幕的方式 230
9.4通过自定义View实现自己的控件 232
9.4.1 CustomView类的开发 232
9.4.2自定义View的添加和使用 234
9.4.3 Activity部分代码的开发 235
9.5本章小结 235
第10章 绚丽的游戏应用——3D应用开发 236
10.1 3D开发基础 236
10.1.1 OpenGL ES及OpenGL简介 236
10.1.2 3D基本知识介绍 237
10.1.3简单3D物体的绘制 238
10.1.4不同的绘制模式 243
10.1.5用索引数据进行3D物体的绘制 244
10.2两种不同的投影模式 246
10.2.1正交投影的基本原理 246
10.2.2透视投影的基本原理 251
10.3光照与材质 253
10.3.1光照的组成元素 253
10.3.2定向光与定位光 254
10.3.3法向量的基本知识 255
10.3.4材质的基本知识 255
10.3.5光照的基本案例 256
10.4纹理及纹理映射 261
10.4.1纹理映射的原理 261
10.4.2纹理映射的简单案例 261
10.4.3不同的纹理拉伸方式 265
10.4.4几种纹理过滤方式 266
10.5摄像机和雾 267
10.5.1摄像机的主要参数 268
10.5.2合理的设置视角 268
10.5.3加入雾特效 270
10.6几何体综合案例 273
10.6.1旋转面的原理 273
10.6.2贝塞尔曲线 273
10.6.3曲线生成工具 273
10.6.4茶杯生成 274
10.6.5茶壶生成 278
10.6.6一套茶具的场景 281
10.7本章小结 282
第11章 消息广播与服务 283
11.1广播组件——BroadcastReceiver 283
11.1.1基本知识 283
11.1.2基于广播的案例 284
11.2服务组件——Servic 287
11.2.1基本知识 287
11.2.2基于服务的案例 287
11.3单机版音乐盒的实现 291
11.4本章小结 299
第12章 Android网络开发及数据库管理 300
12.1使用Socket进行通信 300
12.1.1 Socket服务端的开发 300
12.1.2 Socket客户端的开发 301
12.2通过URL和HTTP请求获取网络资源 303
12.2.1通过URL获取网络资源 303
12.2.2通过HTTP请求网络资源 304
12.3使用WebView进行网络开发 306
12.3.1使用WebView浏览网页 306
12.3.2使用WebView执行HTML代码 310
12.4 E-mail相关功能开发 312
12.4.1 SMTP协议基本知识 312
12.4.2发送E-mail 314
12.5 SQLite数据库 316
12.5.1数据库的基本操作 317
12.5.2图书小助手资源文件的组织与开发 323
12.5.3图书小助手代码的开发 326
12.6访问存储卡 333
12.6.1获取存储卡容量 333
12.6.2读取存储卡信息 334
12.7新浪微博客户端的开发 336
12.7.1开发前准备工作 336
12.7.2新浪微博客户端开发案例 337
12.8基于WebQQ API的二次开发案例 342
12.8.1开发前准备工作 343
12.8.2腾讯QQ客户端开发案例 343
12.9本章小结 345
第13章 手机基础功能应用开发 346
13.1短信操作 346
13.1.1发送短消息 346
13.1.2短信提示功能 349
13.1.3短信群发功能 352
13.1.4查询短信发送状态 356
13.2电话操作 359
13.2.1拨打电话 360
13.2.2过滤指定电话 363
13.2.3查询当前状态 364
13.3本章小结 365
第14章 我的应用我做主——Android系统特色功能开发 366
14.1 Android系统Configuration 366
14.1.1 Configuration基本知识 366
14.1.2响应Configuration的变化 366
14.2 Android系统壁纸更改与提醒设置 369
14.2.1壁纸的更改 369
14.2.2振动功能的设置 372
14.2.3音量调节功能 375
14.3 Android动态壁纸的开发 378
14.3.1动态壁纸的资源和配置文件 378
14.3.2动态壁纸的星星类 380
14.3.3小星星运动线程——BallGoThread 382
14.3.4小星星的产生 384
14.3.5动态壁纸的开发 385
14.3.6动态壁纸的效果 389
14.4续航的支柱——电池电量 391
14.4.1电池原理概述 391
14.4.2电池电量提示案例 391
14.5手机闹钟 393
14.5.1 AlarmManager基本知识 394
14.5.2开发闹钟应用 394
14.6 Android动态切屏功能的实现 397
14.6.1 Android动态切屏的基本介绍 397
14.6.2 Android动态切屏的使用案例 397
14.7 TelephonyManager管理器 400
14.7.1 TelephonyManager的基本知识 400
14.7.2 TelephonyManager的使用案例 401
14.8 Notification的应用 404
14.8.1 Notification基础知识 404
14.8.2单机版音乐盒升级——使用Notification 404
14.9本章小结 405
第15章 Android桌面组件开发与多媒体数据的处理 406
15.1桌面快捷方式介绍 406
15.1.1调用应用程序创建快捷方式 406
15.1.2向Launcher添加快捷方式 408
15.2桌面组件——Widget 409
15.2.1桌面组件基本知识 409
15.2.2桌面组件的简单开发 410
15.3实时文件夹 418
15.3.1 Activity的创建 418
15.3.2内容提供者ContentProvider的创建 420
15.4多媒体数据的处理 425
15.4.1音频数据的采集 425
15.4.2图像数据的采集 428
15.4.3视频数据的采集 432
15.4.4音乐播放 435
15.4.5视频播放 439
15.5本章小结 443
第16章 Android传感器应用的开发 444
16.1 Android下主要传感器概览 444
16.1.1传感器模拟器——Sensor-Simulator 444
16.1.2加速度传感器——Accele-rometer 445
16.1.3磁场传感器——MagneticField 446
16.1.4姿态传感器——Orien-tation 448
16.1.5光传感器——Light 451
16.1.6温度传感器——Tem-perature 452
16.2姿态传感器的简单案例 454
16.2.1 3D重力小球的功能简介 454
16.2.2程序主入口MyGLActivity的实现 455
16.2.3 3D场景界面MyGLView类的实现 457
16.2.4 MyGLView的内部类Scene-Renderer的实现 459
16.2.5场景中盒子的实现 461
16.2.6场景中小球的实现 467
16.2.7控制小球运动的线程类的实现 469
16.3本章小结 469
第17章 基于Google服务的二次开发 470
17.1使用GPS——位置的获取 470
17.1.1 LocationManager及相关类的介绍 470
17.1.2获取位置信息案例的简单开发 471
17.2谷歌地图的使用 475
17.2.1 Map API Key的获取 475
17.2.2模拟器的创建 476
17.2.3谷歌地图查询的应用 478
17.2.4谷歌地图导航的应用 481
17.3谷歌街景基本知识 484
17.3.1 Android平台下谷歌街景服务的基本原理 484
17.3.2使用谷歌街景的案例 484
17.4天气预报功能的简单开发 488
17.4.1 XML文件的解析方法 488
17.4.2获取天气情况的案例 488
17.5谷歌翻译API的应用 493
17.5.1谷歌翻译API的介绍 493
17.5.2谷歌翻译API的应用案例——口袋词典的开发 493
17.6本章小结 498
第18章 休闲游戏——年年有鱼 499
18.1年年有鱼的开发背景及功能概述 499
18.1.1游戏开发背景概述 499
18.1.2游戏功能简介 499
18.2游戏的策划及准备工作 500
18.2.1游戏的策划 501
18.2.2 Android平台下游戏开发的准备工作 501
18.3游戏的架构 502
18.3.1游戏的框架简介 502
18.3.2各个类的简要介绍 502
18.4公共类的实现 504
18.4.1界面管理类MyActivity的代码框架 504
18.4.2界面管理类MyActivity部分成员变量及方法的实现 505
18.4.3游戏常量类Constant的实现 507
18.5辅助界面相关类的实现 508
18.5.1欢迎动画界面WellcomeSurfaceView类的实现 508
18.5.2主菜单界面MainView的实现 510
18.5.3积分榜界面ScoreSurfaceView的代码框架 514
18.5.4积分榜界面Score SurfaceView类部分方法的实现 515
18.6游戏界面相关类的实现 516
18.6.1游戏界面GameView类的代码框架 517
18.6.2游戏界面GameView类部分成员方法的实现 518
18.6.3刷帧线程KeyThread类的实现 522
18.6.4渔网的破损线程FishNet Thread类的实现 522
18.6.5倒计时的线程TimeRunning Thread类的实现 523
18.6.6鱼尾摆动的线程Fishtail Thread类的实现 524
18.6.7鱼行进的线程FishGoThread类的实现 524
18.6.8生成鱼的线程FishGenerator Thread类的实现 525
18.7情景相关类的实现 526
18.7.1倒计时类Timer的代码框架 526
18.7.2 Timer类部分成员方法的实现 527
18.7.3得分Score类的实现 529
18.7.4鱼类SingleFish的实现 530
18.7.5渔网类FishingNet的实现 532
18.7.6被捕捉鱼的类FishCatched的实现 533
18.7.7背景图片类BackgroundPic的实现 534
18.8自定义控件及工具类的实现 535
18.8.1数据库类DBUtils的实现 535
18.8.2获取日期的工具DateUtil类的实现 536
18.8.3图片缩放的工具类PicLoadUtil的实现 536
18.8.4主菜单按钮MainMenuButton类的实现 537
18.9游戏的优化与改进 538
第19章 艺术休闲——沙画涂鸦 539
19.1沙画的背景以及软件概述 539
19.1.1沙画背景 539
19.1.2软件概述 540
19.2软件的策划及准备工作 541
19.2.1软件策划 541
19.2.2 Android平台下的准备工作 541
19.3软件架构 542
19.3.1软件框架简介 542
19.3.2各个类的简要介绍 543
19.4公共类的实现 544
19.4.1主控制类——SandPainting Activity 544
19.4.2常量类——Constant 548
19.5辅助界面相关类的实现 550
19.5.1欢迎界面类——Welcome View 550
19.5.2欢迎界面刷帧线程Welcome View DrawThread 551
19.6主界面相关类的实现 552
19.6.1原子动作类——Atom Action 552
19.6.2动作类——ActionGroup 554
19.6.3数据记录类——Record 555
19.6.4背景颜色选择类——Bg ColorView 558
19.6.5设置界面类——Setup- View 560
19.6.6显示结果集类——Show GalleryView 562
19.6.7主界面类——MainView 567
19.6.8主界面的刷帧线程——Main View DrawThread 571
19.7优化与改进 572
第20章 V酷音乐盒 573
20.1系统背景及功能概述 573
20.1.1背景简介 573
20.1.2功能概述 573
20.1.3开发环境和目标平台 574
20.2开发前的准备工作 575
20.2.1数据库设计 575
20.2.2表的创建和测试数据的插入 582
20.3系统功能预览及总体架构 583
20.3.1客户端功能预览 583
20.3.2服务器端预览 587
20.3.3系统目录结构 589
20.4服务器端功能模块的实现 590
20.4.1登录功能的开发 591
20.4.2歌曲添加功能的开发 593
20.4.3歌曲查询和删除功能的开发 594
20.4.4歌曲修改功能的开发 602
20.4.5系统类别功能的开发 603
20.4.6与客户端的通信功能 605
20.5客户端功能的实现 608
20.5.1歌曲扫描功能的开发 608
20.5.2更新SD卡功能的开发 612
20.5.3音乐播放功能的开发 614
20.5.4歌曲频谱的开发 620
20.5.5歌词同步功能的开发 624
20.5.6添加歌曲列表功能的开发 626
20.5.7删除、重命名歌曲列表功能的开发 629
20.5.8注册功能的开发 630
20.5.9登录功能的开发 633
20.5.10下载功能的开发 636
20.6系统优化和改进 638
第21章 Android 3.0新特性概览与开发实践 639
21.1历史传承及新特性简介 639
21.1.1 Android历代版本概览 639
21.1.2 Android 3.0新特性简介 641
21.2浅尝Android 3.0新特性开发 644
21.2.1区域图像解码——Bitmap RegionDecoder 644
21.2.2便携日历——Calendar View 647
21.3本章小结 650