第1篇 基础知识篇 2
第1章 Android技术概述 2
1.1 智能手机系统介绍 2
1.1.1 何谓智能手机 2
1.1.2 Android 5.0的突出变化 2
1.2 搭建Android应用开发环境 3
1.2.1 安装Android SDK的系统要求 4
1.2.2 安装JDK 4
1.2.3 获取并安装Eclipse和Android SDK 7
1.2.4 安装ADT 8
1.2.5 设定Android SDKHome 9
1.2.6 验证开发环境 10
1.2.7 创建Android虚拟设备(AVD) 10
1.2.8 启动AVD模拟器 12
1.2.9 解决搭建环境过程中的常见问题 14
第2章 Android技术核心框架分析 17
2.1 简析Android安装文件 17
2.1.1 Android SDK目录结构 17
2.1.2 android.jar及内部结构 18
2.1.3 阅读SDK帮助文档 18
2.1.4 常用的SDK工具 19
2.2 演示官方实例 20
2.3 剖析Android系统架构 21
2.3.1 Android体系结构介绍 21
2.3.2 Android应用工程文件组成 23
2.4 简述五大组件 25
2.4.1 用Activity来表现界面 25
2.4.2 用Intent和Intent Filter实现切换 26
2.4.3 Service为你服务 26
2.4.4 用Broadcast Intent Receiver发送广播 27
2.4.5 用Content Provider存储数据 27
2.5 进程和线程 27
2.5.1 先看进程 27
2.5.2 再看线程 28
2.5.3 应用程序的生命周期 28
2.6 第一段Android程序 30
第3章 网络开发技术基础 34
3.1 HTML简介 34
3.1.1 HTML初步 34
3.1.2 字体格式设置 35
3.1.3 使用标示标记 37
3.1.4 使用区域和段落标记 37
3.1.5 使用表格标记 38
3.1.6 使用表单标记 41
3.2 CSS技术基础 43
3.2.1 基本语法 43
3.2.2 CSS属性介绍 44
3.2.3 CSS编码规范 46
3.3 JavaScript技术基础 46
3.3.1 JavaScript概述 47
3.3.2 JavaScript运算符 47
3.3.3 JavaScript循环语句 48
3.3.4 JavaScript函数 50
3.3.5 JavaScript事件 52
第2篇 网络数据通信篇 56
第4章 HTTP数据通信 56
4.1 HTTP基础 56
4.1.1 HTTP概述 56
4.1.2 HTTP协议的功能 56
4.1.3 Android中的HTTP 57
4.2 使用Apache接口 58
4.2.1 Apache接口基础 58
4.2.2 Apache应用要点(1) 58
4.2.3 Apache应用要点(2) 61
4.3 使用标准的Java接口 68
4.3.1 IP地址 68
4.3.2 URL地址 69
4.3.3 套接字Socket类 69
4.3.4 URLConncetion类 70
4.3.5 在Android中使用java.net 70
4.4 使用Android网络接口 72
4.5 实战演练 72
4.5.1 实战演练——在手机屏幕中传递HTTP参数 72
4.5.2 实战演练——在Android手机中通过Apache HTTP访问HTTP资源 76
第5章 URL处理数据 79
5.1 URL和URLConnection 79
5.1.1 URL类详解 79
5.1.2 实战演练——在手机屏幕中显示QQ空间中的照片 84
5.1.3 实战演练——从网络中下载图片作为屏幕背景 86
5.2 HttpURLConnection详解 89
5.2.1 HttpURLConnection的主要用法 89
5.2.2 实战演练——在Android手机屏幕中显示网络中的图片 91
5.2.3 在手机屏幕中显示网页 93
第6章 处理XML数据 96
6.1 XML技术基础 96
6.1.1 XML的概述 96
6.1.2 XML的语法 96
6.1.3 获取XML文档 97
6.2 使用SAX解析XML数据 98
6.2.1 SAX的原理 98
6.2.2 基于对象和基于事件的接口 99
6.2.3 常用的接口和类 100
6.2.4 实战演练——在Android系统中使用SAX解析XML数据 103
6.3 使用DOM解析XML 105
6.3.1 DOM概述 105
6.3.2 DOM的结构 105
6.3.3 实战演练——在Android系统中使用DOM解析XML数据 107
6.4 Pull解析技术 109
6.4.1 Pull解析原理 109
6.4.2 实战演练——在Android系统中使用Pull解析XML数据 110
6.5 实战演练——3种解析方式的综合演练 112
第7章 下载远程数据 119
7.1 下载网络中的图片数据 119
7.2 下载网络中的JSON数据 121
7.2.1 JSON基础 121
7.2.2 实战演练——远程下载服务器中的JSON数据 122
7.3 下载某个网页的源码 125
7.4 远程获取多媒体文件 127
7.4.1 实战演练——下载并播放网络中的MP3 127
7.4.2 实战演练——下载在线铃声 133
7.5 多线程下载 137
7.5.1 多线程下载文件的过程 137
7.5.2 实战演练——在Android系统中实现多线程下载 138
7.6 远程下载并安装APK文件 150
7.6.1 APK基础 150
7.6.2 实战演练——在Android系统中下载并安装APK文件 152
第8章 上传数据 157
8.1 实战演练——上传文件到远程服务器 157
8.2 使用Get方式上传数据 159
8.3 使用Post方式上传数据 163
8.4 使用HTTP协议实现上传 166
8.4.1 一段演示代码 166
8.4.2 实战演练——HTTP协议实现文件上传 171
第9章 使用Socket实现数据通信 176
9.1 Socket编程初步 176
9.1.1 TCP/IP协议基础 176
9.1.2 UDP协议 177
9.1.3 基于Socket的Java网络编程 177
9.2 TCP编程详解 178
9.2.1 使用ServerSocket 179
9.2.2 使用Socket 179
9.2.3 TCP中的多线程 181
9.2.4 实现非阻塞Socket通信 184
9.3 UDP编程 188
9.3.1 使用DatagramSocket 188
9.3.2 使用MulticastSocket 192
9.4 实战演练——在Android中使用Socket实现数据传输 195
第10章 使用WebKit浏览网页数据 198
10.1 WebKit源码分析 198
10.1.1 Java层框架 198
10.1.2 C/C++层框架 202
10.2 分析Web Kit的操作过程 205
10.2.1 WebKit初始化 205
10.2.2 载入数据 206
10.2.3 刷新绘制 207
10.3 Web View详解 208
10.3.1 Web View介绍 208
10.3.2 实现WebView的两种方式 210
10.3.3 WebView的几个常见功能 212
10.4 实战演练 217
10.4.1 实战演练——在手机屏幕中浏览网页 217
10.4.2 实战演练——加载一个指定的HTML程序 219
10.4.3 实战演练——使用WebView加载JavaScript程序 220
10.5 使用WebView的注意事项 223
第3篇 移动Web应用篇 226
第11章 HTML5技术初步 226
11.1 HTML5介绍 226
11.1.1 发展历程 226
11.1.2 HTML5的吸引力 226
11.2 新特性之视频处理 227
11.2.1 video标记 227
11.2.2 <video>标记的属性 228
11.3 新特性之音频处理 231
11.3.1 audio标记 231
11.3.2 <audio>标记的属性 232
11.4 新特性之canvas 235
11.4.1 canvas标记介绍 235
11.4.2 HTML DOM Canvas对象 236
11.4.3 实战演练——实现坐标定位 236
11.4.4 实战演练——在指定位置画线 237
11.4.5 实战演练——绘制一个圆 238
11.4.6 实战演练——用渐变色填充一个矩形 238
11.4.7 实战演练——显示一幅指定的图片 239
11.5 新特性之Web存储 239
11.5.1 Web存储介绍 239
11.5.2 HTML5中Web存储的意义 240
11.5.3 两种存储方法 240
11.6 表单的新特性 242
11.6.1 全新的Input类型 242
11.6.2 全新的表单元素 245
11.6.3 全新的表单属性 246
第12章 为Android开发网页 252
12.1 准备工作 252
12.1.1 搭建开发环境 252
12.1.2 实战演练——编写一个适用于Android系统的网页 253
12.1.3 控制页面的缩放 256
12.2 添加Android的CSS 256
12.2.1 编写基本的样式 256
12.2.2 添加视觉效果 258
12.3 添加JavaScript 259
12.3.1 jQuery框架介绍 259
12.3.2 具体实践 260
12.4 使用Ajax 262
实战演练——在Android系统中开发一个Ajax网页 262
12.5 让网页动起来 266
12.5.1 一个开源框架——JQTouch 266
12.5.2 实战演练——在Android系统中使用JQTouch框架开发网页 266
第13章 jQuery Mobile基础 273
13.1 jQuery Mobile简介 273
13.1.1 jQuery介绍 273
13.1.2 jQuery Mobile的特点 274
13.1.3 对浏览器的支持 274
13.1.4 jQuery Mobile的4个突出特性 275
13.2 jQuery的基本语法 277
13.2.1 页面模板 277
13.2.2 多页面模板 280
13.2.3 对话框 281
13.3 实现导航功能 282
13.3.1 页眉栏 282
13.3.2 页脚 284
13.3.3 工具栏 285
13.4 按钮 287
13.4.1 链接按钮 287
13.4.2 表单按钮 288
13.5 表单 289
13.5.1 表单基础 289
13.5.2 在表单中输入文本 290
13.6 列表 293
13.6.1 列表基础 293
13.6.2 内置列表 294
13.6.3 列表分割线 295
第4篇 典型网络应用篇 298
第14章 Wi-Fi系统应用 298
14.1 了解Wi-Fi系统的结构 298
14.1.1 Wi-Fi概述 298
14.1.2 Wi-Fi层次结构 298
14.1.3 Wi-Fi与Linux的差异 300
14.2 分析源码 300
14.2.1 本地部分 300
14.2.2 JNI部分 303
14.2.3 Java FrameWork部分 304
14.2.4 Setting中的设置部分 305
14.3 开发Wi-Fi应用程序 306
14.3.1 类WifiManager 306
14.3.2 实战演练——在Android系统中控制Wi-Fi 309
14.3.3 实战演练——控制Android系统中的Wi-Fi 315
14.3.4 实战演练——Wi-Fi综合演练 317
第15章 蓝牙系统应用 324
15.1 了解蓝牙系统的结构 324
15.1.1 蓝牙概述 324
15.1.2 蓝牙层次结构 325
15.2 分析蓝牙模块的源码 326
15.2.1 初始化蓝牙芯片 326
15.2.2 蓝牙服务 327
15.2.3 管理蓝牙电源 327
15.3 与蓝牙相关的类 328
15.3.1 BluetoothSocket类 328
15.3.2 BluetoothServerSocket类 329
15.3.3 BluetoothAdapter类 330
15.3.4 BluetoothClass.Service类 336
15.3.5 BluetoothClass.Device类 336
15.4 在Android平台开发蓝牙应用的过程 337
15.5 实战演练 341
15.5.1 实战演练——开发一个控制玩具车的蓝牙遥控器 341
15.5.2 实战演练——开发一个Android蓝牙控制器 347
15.5.3 实战演练——开发一个Android蓝牙通信系统 356
第16章 邮件应用 369
16.1 使用Android内置的邮件系统 369
16.1.1 实战演练——在发送短信时实现E-mail邮件通知 369
16.1.2 实战演练——来电时自动邮件通知 372
16.1.3 实战演练——实现一个简易邮件发送系统 374
16.1.4 实战演练——调用内置Gmail发送邮件 377
16.1.5 其他方法 381
16.2 使用SmsManager收发邮件 382
16.2.1 SmsManager基础 382
16.2.2 实战演练——使用SmsManager实现一个邮件发送程序 383
16.3 commons-mail.jar和mail.jar 388
16.3.1 使用commons-mail.jar发送邮件 388
16.3.2 使用mail.jar接收邮件 390
第17章 RSS处理 395
17.1 RSS基础 395
17.1.1 RSS的用途 395
17.1.2 RSS的基本语法 395
17.2 SAX技术介绍 397
17.2.1 SAX的原理 397
17.2.2 基于对象和基于事件的接口 397
17.2.3 常用的接口和类 398
17.3 实战演练——开发一个RSS程序 401
第18章 网络视频处理 412
18.1 MediaPlayer视频技术 412
18.1.1 MediaPlayer基础 412
18.1.2 MediaPlayer的状态 412
18.1.3 MediaPlayer方法的有效状态和无效状态 415
18.1.4 MediaPlayer的接口 417
18.1.5 MediaPlayer的常量 417
18.1.6 MediaPlayer的公共方法 417
18.2 VideoView技术 418
18.2.1 构造函数 419
18.2.2 公共方法 419
18.3 实战演练——开发一个网络视频播放器 420
第19章 网络流量监控 427
19.1 TrafficStats类详解 427
19.1.1 常量和公共方法 427
19.1.2 使用类TrafficStats统计流量 428
19.2 实战演练——开发一个流量统计系统 430
19.2.1 实现界面布局 431
19.2.2 实现Activity文件 434
19.2.3 实现数据处理模块的功能 439
19.2.4 设置权限 442
第5篇 综合实战篇 444
第20章 网络RSS阅读器 444
20.1 实现流程 444
20.2 具体实现 444
20.2.1 建立实体类 444
20.2.2 主程序文件ActivityMain.java 447
20.2.3 实现ContentHandler 449
20.2.4 主程序文件ActivityShow Description.java 451
20.2.5 主布局文件main.xml 452
20.2.6 详情主布局文件showdescription.xml 452
20.3 打包、签名和发布 454
20.3.1 申请会员 454
20.3.2 生成签名文件 455
20.3.3 使用签名文件 460
20.3.4 发布 461
第21章 开发一个邮件系统 462
21.1 项目介绍 462
21.1.1 项目背景介绍 462
21.1.2 项目目的 462
21.2 系统需求分析 463
21.2.1 构成模块 463
21.2.2 系统流程 465
21.2.3 功能结构图 465
21.2.4 系统需求 465
21.3 数据存储设计 466
21.3.1 用户信息类 466
21.3.2 SharedPreferences 470
21.4 具体编码 471
21.4.1 欢迎界面 471
21.4.2 系统主界面 474
21.4.3 邮箱类型设置 479
21.4.4 邮箱收取设置 481
21.4.5 邮箱发送设置 485
21.4.6 邮箱用户检查 489
21.4.7 设置用户别名 492
21.4.8 用户邮件编辑 495
第22章 在Android中开发移动微博应用 502
22.1 微博介绍 502
22.2 微博开发技术介绍 503
22.2.1 XML-RPC技术 503
22.2.2 MetaWeblogAPI客户端 505
22.3 在Android上开发移动博客发布器 505
22.3.1 XML请求 505
22.3.2 常用接口 505
22.3.3 具体实现 506
22.4 分析腾讯Android版微博API 511
22.4.1 源码和jar包下载 511
22.4.2 具体使用 511
22.5 详解新浪Android版微博API 515
22.5.1 新浪微博图片缩放的开发实例 516
22.5.2 添加分享到新浪微博 521
22.5.3 通过JSON对象获取登录新浪微博 524
22.5.4 实现OAuth认证 526
第23章 网络流量防火墙系统 528
23.1 系统需求分析 528
23.2 编写布局文件 529
23.3 编写主程序文件 530
23.3.1 主Activity文件 531
23.3.2 帮助Activity文件 539
23.3.3 公共库函数文件 539
23.3.4 系统广播文件 547
23.3.5 登录验证 548
23.3.6 打开/关闭某一个实施控件 549
第24章 开发Web版的电话本管理系统 552
24.1 需求分析 552
24.1.1 产生背景 552
24.1.2 功能分析 552
24.2 创建Android工程 553
24.3 实现系统主界面 554
24.4 实现信息查询模块 555
24.5 实现系统管理模块 556
24.6 实现信息添加模块 559
24.7 实现信息修改模块 561
24.8 实现信息删除模块和更新模块 563
第25章 移动微信系统 564
25.1 微信系统基础 564
25.1.1 微信的特点 564
25.1.2 微信和Q信、腾讯的关系 564
25.2 使用Android ViewPager 565
25.3 开发一个微信系统 569
25.3.1 启动界面 569
25.3.2 系统导航界面 570
25.3.3 系统登录界面 577
25.3.4 发送信息界面 580
25.3.5 摇一摇界面 584