第1章 掀起你的盖头来——初识Android 1
1.1 认识Android 1
1.2 Android的背景 2
1.2.1 Android的历史 2
1.2.2 Android的发展 2
1.3 我的Android我做主 2
1.3.1 开发基于Android平台的应用 3
1.3.2 参加Android开发者大赛 3
1.3.3 个人英雄主义再现——得到更多人的认可和尊重 3
1.3.4 获得应有的收益——Android Market 3
1.4 真实体验——Android模拟器 4
1.4.1 模拟器概述 4
1.4.2 模拟器和真机的区别 4
1.4.3 模拟器使用注意事项 4
1.5 更上一层楼——加入Android开发社区 5
1.6 本章小结 6
第2章 工欲善其事 必先利其器——搭建Android开发环境 7
2.1 开发Android应用前的准备 7
2.1.1 Android开发系统要求 7
2.1.2 Android软件开发包 7
2.1.3 其他注意事项 8
2.2 Windows开发环境搭建 8
2.2.1 JDK、Eclipse、Android SDK软件安装 8
2.2.2 SDK的家在哪里——设定Android SDK Home 14
2.2.3 真的准备好了吗——开发环境验证 14
2.2.4 创建Android虚拟设备(AVD) 15
2.3 Linux一族——Ubuntu开发环境搭建 17
2.3.1 Java、Eclipse和ADT插件安装 17
2.3.2 设定Android SDK Home 23
2.4 Mac OS一族——苹果开发环境搭建 24
2.5 本章小结 24
第3章 清点可用资本——Android SDK介绍 25
3.1 Android SDK基础 25
3.2 深入探寻Android SDK的密码 25
3.2.1 Android SDK目录结构 25
3.2.2 android.jar及内部结构 27
3.2.3 SDK文档及阅读技巧 27
3.2.4 先来热热身——Android SDK例子解析 28
3.2.5 SDK提供的工具介绍 31
3.3 Android典型包分析 33
3.3.1 开发的基石——AndroidAPI核心开发包介绍 33
3.3.2 拓展开发外延——Android可选API介绍 34
3.4 本章小结 34
第4章 赚钱的市场——Android Market及应用发布 35
4.1 Google Market产生背景与目的 35
4.2 体验“选货”的乐趣——在Gl上体验Market的使用 35
4.3 Android开发活动及特色应用 37
4.3.1 开发应用的领域 37
43.2 Android Market特色应用一览 38
4.4 你也可以做东家——申请Market账号 43
4.4.1 卖东西要先入伙——准备工作 43
4.4.2 入伙过程——申请 44
4.5 开张了——在Market上发布应用 45
4.5.1 发布时可能遇到的错误 45
4.5.2 卖东西也要签名——生成签名文件 46
4.5.3 打包、签名、发布应用 48
4.6 本章小结 51
第5章 千里之行始于足下——第一个应用HelloWorld 52
5.1 HelloWorld应用分析 52
5.1.1 新建一个Android工程 52
5.1.2 填写工程的信息 52
5.1.3 编程实现 53
5.1.4 运行项目 54
5.2 调试项目 54
5.2.1 设置断点 54
5.2.2 Debug项目 55
5.2.3 断点调试 55
5.3 本章小结 56
第6章 磨刀不误砍柴工——Android应用程序结构介绍 57
6.1 Android体系结构介绍 57
6.1.1 应用程序(Application) 57
6.1.2 应用程序框架(Application Framework) 58
6.1.3 库(Libraries)和运行环境(RunTime) 58
6.2 Android应用程序组成 59
6.2.1 Activity介绍 59
6.2.2 Broadcast Intent Receiver介绍 60
6.2.3 Service介绍 61
6.2.4 Content Provider介绍 61
6.3 Android应用工程文件组成 61
6.4 本章小结 62
第7章 良好的学习开端——Android基本组件介绍 63
7.1 第一印象很重要——界面UI元素介绍 63
7.1.1 视图组件(View) 63
7.1.2 视图容器组件(Viewgroup) 63
7.1.3 布局组件(Layout) 64
7.1.4 布局参数(LayoutParams) 64
7.2 我的美丽我做主——Android中应用界面布局 64
7.2.1 实例操作演示 65
7.2.2 实例编程实现 66
7.3 不积跬步 无以至千里——常用widget组件介绍 75
7.3.1 创建widget组件实例 75
7.3.2 按钮(Button)介绍与应用 76
7.3.3 文本框(TextView)介绍与应用 77
7.3.4 编辑框(EditText)介绍与应用 79
7.3.5 多项选择(CheckBox)介绍与应用 81
7.3.6 单项选择(RadioGroup)介绍与应用 83
7.3.7 下拉列表(Spinner)介绍与应用 85
7.3.8 自动完成文本(AutoCompleteTextView) 87
7.3.9 日期选择器(DatePicker)介绍与应用 89
7.3.10 时间选择器(TimePicker)介绍与应用 90
7.3.11 滚动视图(ScrollView)介绍与应用 91
7.3.12 进度条(ProgressBar)介绍与应用 92
7.3.13 拖动条(SeekBar)介绍与应用 93
7.3.14 评分组件(RatingBar)介绍与应用 94
7.3.15 图片视图(ImageView)介绍与应用 95
7.3.16 图片按钮(ImageButton)介绍与应用 96
7.3.17 切换图片(ImageSwitcher&Gallery) 96
7.3.18 网格视图(GridView)介绍与应用 99
7.3.19 标签(Tab)介绍与应用 101
7.4 友好的菜单——menu介绍与实例 102
7.4.1 实例操作演示 103
7.4.2 实例编程实现 103
7.5 Android应用的灵魂——Intent和Activity介绍与实例 106
7.5.1 实例操作演示 106
7.5.2 实例编程实现 106
7.6 用好列表,做好程序——列表(ListView)介绍与实例 111
7.6.1 实例程序演示 111
7.6.2 实例编程实现 112
7.7 友好地互动交流——对话框(Dialog)介绍与实例 119
7.8 温馨的提醒——Toast和Notification应用 127
7.8.1 实例操作演示 128
7.8.2 实例编程实现 129
7.9 本章小结 135
第8章 移动信息仓库——Android的数据存储操作 136
8.1 Android数据存储概述 136
8.2 轻轻地我保护——SharedPreferences存储 136
8.3 谁的文件,谁主宰——文件存储 140
8.4 打造自己的数据库存储——SQLite存储方式 141
8.4.1 Android中对数据库操作 141
8.4.2 完整地操作数据库——日记本实例 147
8.5 我的数据你来用——ContentProvider介绍 155
8.5.1 初识ContentProvider 155
8.5.2 使用ContentProvider读取系统数据 156
8.5.3 使用ContentProvider操作数据日记本实例 159
8.6 再学一招——网络存储 171
8.7 本章小结 173
第9章 我来“广播”你的“意图”——Intent和Broadcast面对面 174
9.1 Android应用程序的核心——Intent 174
9.1.1 Intent基础 174
9.1.2 用Intent启动一个新的Activity 174
9.1.3 Intent详细讲解 177
9.1.4 Android解析Intent实现 179
9.2 用广播告诉你——利用Intent来广播(BroadCast)事件 180
9.2.1 实现Android中的广播事件 180
9.2.2 BroadCast Receiver介绍 181
9.3 应用实例详解 181
9.3.1 程序操作演示 182
9.3.2 实例编程实现 182
9.4 本章小结 186
第10章 一切为用户服务——Service应用实例 187
10.1 认识Service 187
10.2 使用Service 188
10.3 Service的生命周期 194
10.4 实例学习Service 194
10.4.1 精彩实例一——定时提醒 194
10.4.2 精彩实例二——音乐播放器 198
10.5 本章小结 201
第11章 循序渐进——开发Android应用的基本步骤 202
11.1 兵马未动 粮草先行——应用规划及架构设计 202
11.2 应用开发步骤 202
11.2.1 界面设计始终是第一位——实现UI 203
11.2.2 必备的动力源泉——数据操作和存储 203
11.2.3 华丽转身——实现多页面跳转 203
11.2.4 始终为用户做好服务——增加Service 203
11.2.5 细节决定成败——完善应用细节 203
11.3 成功就在眼前——应用测试和发布 204
11.3.1 只欠东风——应用测试 204
11.3.2 可以赚钱了——发布到Android Market 204
11.4 本章小结 204
第12章 Android综合案例一——RSS阅读器实例 205
12.1 RSS介绍 205
12.1.1 RSS基础 205
12.1.2 RSS的历史 205
12.1.3 RSS语法介绍 206
12.2 SAX介绍 207
12.2.1 SAX基础 207
12.2.2 使用SAX的作用 207
12.2.3 怎样使用SAX 207
12.3 RSS阅读器设计 209
12.3.1 RSS阅读器功能设计 209
12.3.2 RSS阅读器UI和交互流程设计 209
12.4 RSS阅读器的实现 210
12.4.1 程序实体解析 210
12.4.2 实现一个自己的ContentHandler 214
12.4.3 Activity的实现 217
12.5 本章小结 220
第13章 Android综合案例二——基于Google Map开发个人移动地图 221
13.1 项目UI规划 221
13.2 数据存储实现 222
13.2.1 设计数据库及表结构 222
13.2.2 设计SharePreference存储 223
13.3 项目实现流程 223
13.3.1 创建项目工程 223
13.3.2 项目各功能及界面实现 224
13.3.3 实现数据存取 247
13.3.4 实现Service 252
13.3.5 应用流程整体实现 254
13.3.6 后续开发完善 255
13.4 项目程序演示 255
13.5 项目程序签名、打包和发布 257
13.6 本章小结 259
第14章 Android综合案例三——基于Android的豆瓣网(Web 2.0)移动客户端开发 260
14.1 关于豆瓣网和豆瓣网API 260
14.1.1 豆瓣网介绍 260
14.1.2 豆瓣网API介绍 261
14.1.3 豆瓣网API认证 261
14.1.4 豆瓣网API快速入门 264
14.1.5 豆瓣网API Java库介绍 265
14.2 豆瓣网(Web 2.0)客户端设计 268
14.2.1 客户端功能规划设计 268
14.2.2 UI和交互流程设计 268
14.2.3 数据存储设计 270
14.3 豆瓣网(Web 2.0)客户端实现 270
14.3.1 申请API Key 270
14.3.2 Activity实现 271
14.4 本章小结 282
第15章 Android综合案例四——在线音乐播放器 283
15.1 关于YOBO和YOBO API 283
15.1.1 YOBO简介 284
15.1.2 YOBO功能特点 284
15.1.3 YOBO API介绍 284
15.2 在线播放器架构设计 285
15.2.1 在线播放器功能规划设计 285
15.2.2 在线播放器UI设计 285
15.2.3 在线播放器数据存储设计 286
15.3 在线播放器的编程实现 286
15.3.1 申请API Key 286
15.3.2 基础功能实现 287
15.3.3 实现Activity 290
15.3.4 实现Service 306
15.3.5 后续开发展望 310
15.4 在线音乐播放器应用演示 310
15.5 在线音乐播放器应用打包、签名和发布 311
15.6 本章小结 311
第16章 Android综合案例五——手机信息查看助手 312
16.1 手机信息查看助手功能规划和可行性分析 312
16.1.1 手机信息查看助手功能规划 312
16.1.2 手机信息查看助手可行性分析 312
16.2 手机信息查看助手功能实现 313
16.2.1 手机信息查看助手主界面 313
16.2.2 查看系统信息实现 316
16.2.3 查看硬件信息 320
16.2.4 查看软件信息 324
16.2.5 获取运行时信息 326
16.2.6 文件浏览器 328
16.2.7 项目的细节完善 331
16.3 手机信息查看助手功能展望 332
16.4 项目的打包、签名和发布 332
16.5 本章小结 333
第17章 芝麻开门—Android底层开发和移植概述 334
17.1 Android原始码下载 334
17.2 实机测试 335
17.2.1 Neo FreeRunner介绍 335
17.2.2 烧录androidfs.jffs2 336
17.3 Android移植技术概论 337
17.3.1 Android底层技术的重要性 337
17.3.2 Android移植项目介绍 338
17.3.3 Android的技术优点 340