第一篇 基础篇 1
第1章 揭开Android的神秘面纱 1
1.1 了解智能手机 1
1.1.1 智能手机的定义 1
1.1.2 智能手机的特点 1
1.1.3 主流智能手机操作系统 2
1.2 初识Android 3
1.2.1 Android手机 3
1.2.2 开放手机联盟 4
1.3 Android特性 4
1.4 Android组件结构应用程序框架 5
1.4.1 Android组件结构 5
1.4.2 Android应用程序框架 5
1.5 Android何以脱颖而出 6
1.6 Android模拟器 7
1.6.1 什么是模拟器 7
1.6.2 获取Android模拟器 8
第2章 搭建Android开发环境 9
2.1 开发Android应用前的准备 9
2.1.1 基本系统要求 9
2.1.2 Android软件开发工具 9
2.2 全新的Android 2.3 10
2.3 Windows开发环境搭建 10
2.3.1 JDK、Eclipse、Android SDK软件安装 10
2.3.2 设定Android SDK Home 21
2.3.3 开发环境验证 21
2.3.4 创建Android虚拟设备(AVD) 22
2.4 常见的一些问题 24
第3章 Android SDK简要介绍 29
3.1 Android SDK基础 29
3.2 初步探寻Android SDK体系 29
3.2.1 Android SDK目录结构 29
3.2.2 android.jar及内部结构 30
3.2.3 SDK文档及阅读技巧 31
3.2.4 SDK工具集 32
3.3 解析Android SDK实例 33
第4章 看第一个应用程序 37
4.1 Hello World应用程序分析 37
4.1.1 新建一个Android工程 37
4.1.2 设置工程的信息 37
4.1.3 编写代码和代码分析 38
4.1.4 运行项目 39
4.2 调试项目 40
4.2.1 设置断点 40
4.2.2 Debug项目 41
4.2.3 断点调试 41
4.3 Dialog(对话框)简介 42
4.3.1 Android对话框 42
4.3.2 Dialog类详解 43
第5章 分解Android应用程序核心 46
5.1 Android体系结构介绍 46
5.1.1 操作系统层 47
5.1.2 各种库和Android运行环境 47
5.1.3 应用程序 48
5.1.4 应用程序框架 48
5.2 Android应用程序组成 48
5.2.1 Activity介绍 48
5.2.2 Broadcast Intent Receiver介绍 48
5.2.3 Service(服务)介绍 49
5.2.4 Content Provider介绍 49
5.2.5 Intent和Intent Filter 50
5.3 Android应用工程文件组成 50
5.3.1 src目录 51
5.3.2 AndroidManfest.xml文件 52
5.3.3 常量的定义文件 53
5.4 应用程序的生命周期 54
5.5 Activity的生命周期 55
5.5.1 Activity的几种状态 55
5.5.2 分解剖析Activity 57
5.6 Android进程与线程 57
5.6.1 进程 57
5.6.2 线程 58
5.6.3 线程安全的方法 58
第6章 Android常用组件 59
6.1 UI(界面)组件 59
6.1.1 视图组件——View 59
6.1.2 视图容器组件——Viewgroup 59
6.1.3 布局组件——Layout 60
6.1.4 布局参数——LayoutParams 61
6.2 绚丽多彩——应用界面布局实例 62
6.2.1 编程实现 62
6.2.2 效果演示 69
6.3 Widget组件详解 70
6.3.1 创建一个Widget组件 70
6.3.2 使用按钮Button 71
6.3.3 使用文本框TextView 72
6.3.4 使用编辑框EditText 81
6.3.5 使用多项选择控件CheckBox 82
6.3.6 使用单项选择控件RadioGroup 85
6.3.7 使用下拉列表控件Spinner 86
6.3.8 使用自动完成文本控件AutoCompleteTextView 89
6.3.9 使用日期选择器控件DatePicker 92
6.3.10 使用时间选择器TimePicker控件 94
6.3.11 联合应用DatePicker和TimePicker 95
6.3.12 使用滚动视图控件ScrollView 99
6.3.13 使用进度条控件ProgressBar 99
6.3.14 使用拖动条控件SeekBar 101
6.3.15 使用评分组件RatingBar 102
6.3.16 使用图片视图控件ImageView 104
6.3.17 使用图片按钮控件ImageButton 108
6.3.18 使用切换图片控件ImageSwitcher和Gallery 109
6.3.19 使用网格视图控件GridView 112
6.3.20 使用标签控件Tab 114
6.4 使用友好菜单控件Menu 116
6.4.1 Menu基础知识介绍 116
6.4.2 使用Menu实例 117
6.5 Intent和Activity 120
6.6 使用列表控件ListView 124
6.6.1 ArrayAdapter接受一个数组或者列表(List)作为参数来构建 124
6.6.2 使用SimpleAdapter 125
6.7 使用互动对话框控件Dialog 127
6.8 使用Toast和Notification 133
6.8.1 Toast简介 134
6.8.2 Notification简介 135
6.8.3 联合使用Toast和Notification 137
第7章 Android组件高级应用 147
7.1 对话框中的进度条 147
7.2 再看布局组件 151
7.2.1 Android的五大布局对象 152
7.2.2 垂直线性布局 156
7.2.3 水平线性布局 158
7.2.4 相对布局 160
7.2.5 表单布局 162
7.2.6 切换卡 165
7.3 联合使用Spinner和setDropDownViewResource 168
7.4 Gallery和衍生BaseAdapter容器 172
7.5 文件搜索引擎FileSearch 176
7.6 用AnalogClock和DigitalClock控件实现模拟小时钟 180
7.7 使用ListActivity(活动列表) 186
7.7.1 ListActivity介绍 186
7.7.2 ListActivity使用实例 188
7.8 绘图处理 191
7.8.1 graphics类基础 191
7.8.2 使用Matrix实现图片缩放 194
7.8.3 使用Bitmap和Matrix实现图片旋转 199
7.9 动态添加/删除Spinner菜单 204
第二篇 典型应用篇 210
第8章 Intent、Broadcast和Adapter详解 210
8.1 Android体系核心之“Intent” 210
8.1.1 Intent的构成 210
8.1.2 Intent的解析 211
8.1.3 Intent的基本用法 215
8.1.4 Intent和Activity 220
8.1.5 Linkify简介 222
8.2 Activity的返回值和本地动作 223
8.2.1 Activity返回值 223
8.2.2 Android本地动作 225
8.2.3 Intent Filter响应隐式Intent 226
8.2.4 Android解析Intent Filter 228
8.2.5 隐式Intent响应与责任传递 228
8.3 用Intent来广播一个事件 229
8.3.1 广播事件 229
8.3.2 Broadcast Receiver监听广播 230
8.3.3 Android本地广播 232
8.4 Adapter详解 232
8.4.1 Android提供的Adapter 233
8.4.2 用Adapter进行绑定 233
8.4.3 使用ArrayAdapter和SimpleCursorAdapter 233
8.5 Internet资源 235
8.5.1 连接Internet资源 236
8.5.2 利用Internet资源 236
第9章 Android的数据存储操作 238
9.1 什么是Android数据存储 238
9.2 SharedPreferences存储 238
9.2.1 SharedPreferences存储类效率分析 238
9.2.2 应用实例 240
9.3 文件存储 243
9.4 再看SQLite存储方式 243
9.5 ContentProvider存储 249
9.5.1 Content Provider基础 250
9.5.2 使用ContentProvider 251
9.6 网络存储 254
9.7 数据存储演练 255
9.7.1 SQLite实现一个日记本 256
9.7.2 ContentProvider操作一个数据日记本 264
第10章 电话与短信应用开发 278
10.1 IntentFilter解析 278
10.1.1 动作测试 278
10.1.2 类别测试 279
10.1.3 数据测试 279
10.2 Intent电话拨号处理 279
10.3 Intent短信处理 285
10.3.1 创建TinySMS界面 286
10.3.2 设置权限 287
10.3.3 发送短信处理 287
10.4 Android中电话和短信服务的包 288
第11章 Service的全新服务 290
11.1 Service深入剖析 290
11.1.1 Service策略 290
11.1.2 创建Service 290
11.1.3 使用Service 291
11.1.4 与远程Service通信 292
11.1.5 设置权限 294
11.1.6 使用Service实例 294
11.2 Service生命周期 300
11.3 提高Service优先级 300
11.4 Service综合实例 301
第12章 使用位置服务和地图API 305
12.1 位置服务 305
12.1.1 android.location的功能类 305
12.1.2 Android定位的基本流程 306
12.1.3 GPS定位实例 309
12.1.4 构造LocationProvider查询条件 312
12.2 及时监听位置变化 313
12.2.1 Maps库类介绍 313
12.2.2 LocationManager及时监听为遏制位置信息 314
12.3 应用地图 315
12.3.1 使用前的设置 315
12.3.2 使用Map API密钥的基本流程 318
12.3.3 应用实例:使用Map API密钥 320
第13章 程序优化 327
13.1 实现高效Java编程规范的十条基础规则 327
13.2 命名规范 330
13.3 编写优秀代码的技巧 331
13.4 性能测试 335
13.4.1 背景 335
13.4.2 Java代理 336
13.4.3 性能测试的步骤 337
13.4.4 计算机性能测试 338
13.4.5 内存性能测试 342
13.5 程序优化 345
13.5.1 Java程序的基本优化 345
13.5.2 程序性能优化 354
13.5.3 何谓高效的Android 359
13.5.4 Android上的单元测试 365
13.6 UI界面优化 368
第14章 网络RSS阅读器 376
14.1 基础知识介绍 376
14.1.1 RSS的用途 376
14.1.2 RSS阅读器 376
14.1.3 RSS语法 377
14.2 SAX技术介绍 378
14.2.1 SAX的原理 378
14.2.2 基于对象和基于事件的接口 379
14.2.3 常用的接口和类 380
14.3 实现流程 383
14.4 具体实现 384
14.4.1 建立实体类 384
14.4.2 主程序文件ActivityMain.java 387
14.4.3 实现ContentHandler 390
14.4.4 主程序文件ActivityShowDescription.java 393
14.4.5 主布局文件main.xml 395
14.4.6 详情主布局文件showdescription.xml 395
14.5 打包、签名和发布 398
14.5.1 申请会员 398
14.5.2 生成签名文件 400
14.5.3 使用签名文件 406
14.5.4 发布 408
第15章 通用手机助手 409
15.1 项目分析 409
15.1.1 构成模块 409
15.1.2 流程规划 410
15.2 具体实现 411
15.2.1 系统主界面 411
15.2.2 系统信息 414
15.2.3 硬件信息 424
15.2.4 软件信息 427
15.2.5 运行时信息 430
15.2.6 文件浏览器信息 435
15.2.7 AndroidManifest.xml获取权限 438
第16章 Map地图综合应用 439
16.1 项目分析 439
16.1.1 规划UI界面 440
16.1.2 数据存储设计 440
16.2 具体实现 441
16.2.1 新建工程 441
16.2.2 主界面 441
16.2.3 新建界面 444
16.2.4 设置界面 447
16.2.5 帮助界面 453
16.2.6 地图界面 456
16.2.7 数据存取 471
16.2.8 实现Service服务 476