第1章 火爆的Android 1
1.1 Android是一个传说 1
1.2 Android虚拟设备 1
1.2.1 创建Android虚拟设备 1
1.2.2 启动AVD模拟器 3
第2章 不打无把握之仗 6
2.1 简析Android安装文件 6
2.1.1 Android SDK目录结构 6
2.1.2 android.jar及内部结构 7
2.1.3 阅读SDK文档需要技巧 8
2.1.4 不简单的SDK工具 9
2.2 实例教学 11
2.3 剖析Android系统架构 14
2.3.1 Android体系结构介绍 14
2.3.2 Android应用工程文件组成 17
2.4 简述5大组件 20
2.4.1 用Activity来表现界面 20
2.4.2 用Intent和IntentFilter实现切换 20
2.4.3 Service为你服务 21
2.4.4 用BroadcastIntentReceiver发送广播 22
2.4.5 用ContentProvider存储数据 22
2.5 进程和线程的心有灵犀 22
2.5.1 先看进程 22
2.5.2 再看线程 22
2.6 应用程序的生命周期 23
2.7 第一次练习 25
第3章 界面布局 30
3.1 用UI配置行头 30
3.1.1 View视图组件 30
3.1.2 Viewgroup容器 31
3.1.3 Layout规划布局 31
3.1.4 练习 34
3.2 继续布局 44
3.2.1 线性布局LinearLayout 44
3.2.2 框架布局FrameLayout 48
3.2.3 绝对布局AbsoluteLayout 48
3.2.4 相对布局RelativeLayout 49
3.2.5 表格布局TableLayout 53
3.3 Intent和Activity情深意浓 58
3.3.1 Intent调用另一个Activity 58
3.3.2 联合使用Intent和Activity 61
第4章 Android基础组件详解 70
4.1 Widget组件详解 70
4.1.1 创建一个Widget组件 70
4.1.2 使用自动完成文本控件 AutoCompleteTextView 71
4.1.3 联合应用DatePicker和TimePicker 74
4.1.4 使用滚动视图控件ScrollView 77
4.1.5 使用进度条控件ProgressBar 78
4.1.6 使用拖动条控件SeekBar 79
4.1.7 使用评分组件RatingBar 81
4.1.8 使用图片视图控件InageView 82
4.1.9 使用切换图片控件ImageSwitcher和Gallery 83
4.1.1 0使用网格视图控件GridView 86
4.1.1 1使用标签控件Tab 87
4.2 友好界面MENU 89
4.2.1 MENU基础 89
4.2.2 使用MENU 控件 90
4.3 列表控件ListView 92
4.3.1 通过ArrayAdapter接收一个数组或通过List作为参数来构建 92
4.3.2 使用SimpleAdapter 93
4.4 使用对话框控件Dialog 94
4.5 使用Toast和Notification控件 96
4.5.1 Toast提醒你 96
4.5.2 Notification提醒你 96
4.5.3 练习Toast和Notification 97
第5章 数据存储背后的秘密 102
5.1 五种存储 102
5.2 最简单的存储SharedPreferences 103
5.2.1 SharedPreferences简介 103
5.2.2 练习SharedPreferences 103
5.3 文件存储 108
5.4 最常用的SQLite 115
5.5 ContentProvider存储 128
5.5.1 ContentProvider介绍 129
5.5.2 使用ContentProvider 129
5.6 网络存储 142
第6章 四大金刚 146
6.1 Android体系核心之Intent 146
6.1.1 Intent的构成 146
6.1.2 intent的解析 147
6.1.3 Intent的基本用法 150
6.1.4 Intent和Activity 156
6.1.5 Linkify简介 157
6.2 Activity的返回值和本地动作 159
6.2.1 Activity返回值 159
6.2.2 Android本地动作 161
6.3 用Intent来广播一个事件 163
6.3.1 广播事件 163
6.3.2 Broadcast Receiver监听广播 163
6.3.3 Android本地广播 165
6.4 Adapter详解 165
6.4.1 Android提供的Adapter 166
6.4.2 用Adapter进行绑定 166
6.5 再看Service 167
6.5.1 创建Service 167
6.5.2 使用Service 168
6.5.3 与远程Service通信 169
6.5.4 权限 170
6.5.5 Service生命周期 170
6.5.6 使用Service 171
第7章 两大基石 179
7.1 再探Intent 179
7.2 拨打电话 182
7.3 发送短信程序 187
7.4 监控手机状态 194
第8章 用GPS来寻找你和我 208
8.1 位置服务 208
8.1.1 android.location功能类 208
8.1.2 实现Android定位 209
8.2 及时获取位置信息 212
8.2.1 Maps库类 212
8.2.2 LocationManager能及时监听 213
8.3 在Android中使用地图 214
8.3.1 准备工作 214
8.3.2 使用MapAPI密钥的基本流程 217
8.4 地图应用实战 219
8.4.1 练习GPS定位 219
8.4.2 练习GPS定位 226
第9章 网络开发应用 239
9.1 移动Web技术 239
9.1.1 所需要基础知识 239
9.1.2 为Android开发Web页面 245
9.2 移动通信处理 263
9.2.1 先谈谈Java中的网络通信 263
9.2.2 HTTP通信基础 266
9.2.3 Apache接口是一个中介 267
9.3 使用Android网络接口 274
9.4 处理URL 274
9.4.1 URL类 275
9.4.2 HttpURLConnection 277
9.5 WebKit 280
9.5.1 WebKit系统框架中的Java层 280
9.5.2 WebView是重中之重 284
9.5.3 浏览网页的演练 284
9.6 Wi-Fi 288
9.6.1 Wi-Fi系统基础 288
96.2 强大的WifiManager类 289
9.6.3 实践 293
第10章 多媒体应用 295
10.1 深入底层分析Android多媒体系统 295
10.1.1 OpenMax框架 297
10.1.2 OpenCore框架 297
10.1.3 Stagefright框架 299
10.2 Graphics类的平面世界 299
10.2.1 Graphics类基础 300
10.2.2 使用Graphics类 300
10.3 二维动画 305
10.3.1 类Drawable 305
10.3.2 实现TweenAnimation动画 306
10.3.3 实现Frame Animation动画效果 307
10.4 OpenGL ES 309
10.4.1 OpenGL ES基础 309
10.4.2 Android用到OpenGL ES 309
10.4.3 OpenGL ES的基本操作 310
10.4.4 绘制图形 316
10.5 音频开发 316
10.5.1 音频接口类 317
10.5.2 AudioManager控制铃声 318
10.5.3 录音 321
10.6 播放音乐 328
10.6.1 使用AudioTrack播放音频 329
10.6.2 使用MediaPlayer播放音频 330
10.6.3 使用SoundPool 330
10.6.4 使用Ringtone播放铃声 331
10.7 Vibrator振动 332
10.8 闹钟 333
10.9 使用VideoView播放视频 334
10.9.1 VideoView基础 334
10.9.2 应用实例 336
第11章 开发手机游戏 338
11.1 蓬勃发展的手机游戏产业 338
11.2 游戏开发流程 339
11.3 游戏框架 339
11.3.1 View类 340
11.3.2 SurfaceView类 340
11.3.3 游戏框架实战 341
11.4 物理碰撞 347
11.4.1 完全弹性碰撞 347
11.4.2 有损失的碰撞 348
11.5 碰撞检测 355
11.5.1 碰撞检测基础 355
11.5.2 AABB边界框 356
11.6 传感器 363
11.6.1 传感器开发工具 363
11.6.2 各种传感器 366
第12章 从工作中谈模块 376
12.1 一个项目引发的问题 376
12.2 自动服务 377
12.2.1 实现短信自动提醒 378
12.2.2 获取电池容量 381
12.2.3 短信群发 384
12.2.4 获取存储卡容量 385
12.2.5 设置黑名单 386
12.2.6 开机显示程序 387
12.3 多媒体模块 389
12.3.1 绘制各种几何图形 389
12.3.2 开发一个屏保程序 390
12.3.3 获取并显示存储卡中的照片 392
12.4 网络应用模块 394
12.4.1 上传文件至服务器 394
12.4.2 网络下载音乐作为手机铃声 396
12.4.3 网络下载APK并安装 397
第13章 Google API 399
13.1 使用Google Search API检索处理 399
13.2 验证Google账号 400
13.3 GPS实时更新的处理 401
13.4 手机随身翻译 402
13.5 实现二维条码扫描仪 404
第14章 开发一个音乐播放器 406
14.1 项目介绍 406
14.2 系统需求分析 406
14.2.1 构成模块 407
14.2.2 系统流程 412
14.2.3 功能结构图 412
14.2.4 系统功能说明 413
14.2.5 系统需求 414
14.3 数据库设计 415
14.3.1 字段设计 415
14.3.2 E-R图设计 415
14.3.3 数据库连接 416
14.3.4 创建数据库 416
14.3.5 操作数据库 417
14.3.6 数据显示 419
14.4 具体编码 419
14.4.1 播放器主界面 419
14.4.2 播放器主界面 421
14.4.3 播放列表功能 431
14.4.4 菜单功能模块 434
14.4.5 播放设置界面 437
14.4.6 设置显示歌词 441
14.4.7 文件浏览器模块 442
14.4.8 数据存储 446
第15章 流量监控系统 448
15.1 流量统计基础 448
15.1.1 TrafficStats类 448
15.1.2 总结的流量统计函数 449
15.2 网络流量防火墙 453
15.2.1 系统需求分析 454
15.2.2 系统需求 454
15.2.3 编写布局文件 455
15.2.4 编写主程序文件 457
第16章 象棋游戏 478
16.1 棋牌游戏介绍 478
16.2 规划项目 478
16.2.1 规划流程 478
16.2.2 准备工作 479
16.3 项目架构 479
16.3.1 总体架构 479
16.3.2 规划类 480
16.4 具体编码 480
16.4.1 实现控制类 481
16.4.2 欢迎界面类 482
16.4.3 菜单界面类 486
16.4.4 游戏帮助类 489
16.4.5 游戏界面框架类 490
16.4.6 象棋走法类 501
16.4.7 思考时间类 501
16.4.8 走法规则类 502
第17章 邮件收发系统 509
17.1 最简单的办法 509
17.1.1 配置Android邮件客户端 509
17.1.2 在发送短信时实现E-mail邮件通知 512
17.1.3 几种邮件系统的实现方法 512
17.2 开始开发一个综合邮件收发系统 516
17.3 系统需求分析 517
17.3.1 构成模块 517
17.3.2 系统流程 520
17.3.3 功能结构图 520
17.3.4 系统功能说明 521
17.3.5 系统需求 522
17.4 数据存储设计 522
17.4.1 用户信息类 522
17.4.2 SharedPreferences 526
17.5 具体编码 529
17.5.1 欢迎界面 529
17.5.2 系统主界面 532
17.5.3 邮箱类型设置 539
17.5.4 邮箱收取设置 543
17.5.5 邮箱发送设置 549
17.5.6 邮箱用户检查 554
17.5.7 设置用户别名 560
17.5.8 用户邮件编辑 563
第18章 RSS阅读器系统 570
18.1 实现流程 570
18.2 具体实现 571
18.2.1 实体类 571
18.2.2 主程序文件Main.java 571
18.2.3 实现ContentHandler接口 573
18.2.4 主程序页面ShowDescription.java 577
18.2.5 主布局页面main.xml 578
18.2.6 信息详情布局页面 showdescription.xml 578
18.3 打包、签名和发布 581
18.3.1 申请会员 581
18.3.2 生成签名文件 582
18.3.3 使用签名文件 583
18.3.4 发布 584
第19章 开发平板应用程序 585
19.1 平板开发基础 585
19.1.1 针对Android平板App发布的十大开发准则 585
19.1.2 界面适配处理 588
19.1.3 分辨率限定符的匹配 589
19.2 实战演练——开发一个音乐播放器 589
19.2.1 知识点介绍 589
19.2.2 具体实现 590
19.3 实战演练——开发一个网页浏览程序 595
19.3.1 知识点介绍 595
19.3.2 具体实现 595