第1章 掀起你的盖头来——Android开发扫盲 1
1.1 Android行业概述 1
1.1.1 Android缘起 1
1.1.2 Android市场发展轨迹 2
1.1.3 Android SDK发布里程碑 5
1.2 Android开发概述 7
1.2.1 Android开发生态链 7
1.2.2 Android国内开发者现况 8
1.3 Android开发资源 9
1.3.1 Android开发线上社区 9
1.3.2 Android学习资料 11
1.3.3 Android开发线下活动 12
1.4本章小结 13
第2章 工欲善其事必先利其器——搭建环境Android 14
2.1开发Android应用前的准备 14
2.1.1操作系统要求 14
2.1.2 Android软件开发包 14
2.2 Windows开发环境搭建 14
2.2.1安装JDK 14
2.2.2安装Eclipse 16
2.2.3安装Android SDK 18
2.2.4安装ADT 20
2.2.5真实体验——创建Android虚拟设备(AVD) 22
2.3 Linux一族——Ubuntu开发环境搭建 23
2.3.1安装JDK 23
2.3.2安装Eclipse 25
2.3.3安装Android SDK 27
2.3.4安装ADT 29
2.3.5创建Android虚拟设备(AVD) 31
2.4 Mac OS一族——苹果开发环境搭建 33
2.5本章小结 33
第3章 清点可用的资本——Android SDK介绍 34
3.1 Android SDK概要 34
3.2深入探索Android SDK的密秘 34
3.2.1 Android SDK的目录结构 34
3.2.2 android jar及其内部结构 35
3.2.3 SDK文档及阅读技巧 35
3.2.4先来热身——Android SDK例子解析 37
3.2.5 SDK提供的工具介绍 40
3.3 Android典型包分析 42
3.3.1开发基石——Android API核心开发包介绍 42
3.3.2拓展开发外延——Android可选API介绍 43
3.4本章小结 43
第4章 千里之行始于足下——Hello EoE 44
4.1 Hello EoE应用分析 44
4.1.1新建一个Android项目 44
4.1.2 Android项目目录结构 46
4.1.3运行项目 46
4.2调试项目 47
4.2.1设置断点 48
4.2.2 Debug项目 48
4.2.3断点调试 49
4.3本章小结 49
第5章 良好的学习开端——Android应用程序架构分析 50
5.1 Android系统架构 50
5.1.1 Applications(应用程序层) 51
5.1.2 Application Framework(应用程序框架层) 51
5.1.3 Libraries Android Runtime(库以及Android运行环境) 52
5.1.4 Linux Kemel (Linux内核) 52
5.2 Android应用程序工程结构分析 53
5.2.1应用程序工程结构组成分析 53
5.2.2 AndroidMainfest文件分析 54
5.3本章小结 56
第6章Android的核心——Activity 57
6.1什么是Activity 57
6.2 Activity的生命周期 57
6.3 Activity的监控范围内的三个主要循环 59
6.4 Activity拥有四个基本的状态 60
6.5 Task、栈以及加载模式 60
6.6配置改变 63
6.7如何保存和恢复Activity状态 63
6.8启动Activity并得到结果 64
6.9 Activity小实例 65
6.10本章小结 71
第7章 我来“广播”你的意图——Intent & Intent Filters &Broadcast Receivers 72
7.1什么是Intent 72
7.2 Intent结构 72
7.3 Intent的两种类型 74
7.3.1显式Intent 74
7.3.2隐式Intent 74
7.4什么是Intent Filter 74
7.5什么是Broadcast Receiver 75
7.6如何创建BroadcastReceiver 75
7.7 BroadcastReceiver生命周期 76
7.8广播类型 76
7.9 Intent&BroadcastReceiver 76
7.10本章小结 80
第8章 一切为用户服务——Service 81
8.1什么是Service 81
8.2 Service的两种形式 81
8.3如何创建Service 82
8.3.1创建启动形式Service 82
8.3.2创建绑定形式Service 83
8.4 Service的生命周期 84
8.5 Service小实例 85
8.5.1启动形式Service 85
8.5.2绑定形式Service 89
8.6本章小结 93
第9章 提供数据的引擎——Content Providers 94
9.1什么是ContentProviders 94
9.2什么是ContentResolver 94
9.3如何调用系统的ContentProvider 95
9.4如何使用ContentResolver访问自定义ContentProvider 96
9.5本章小结 101
第10章 我的美丽我做主——用户界面(User Interface) 102
10.1布局-Layout 102
10.1.1线性布局— Linear Layout 103
10.1.2相对布局—Relative Layout 105
10.2列表视图 107
10.2.1列视图-Listview 107
10.2.2表视图-Grid View 110
10.3输入控件—Input Controls 113
10.3.1基本输入控件 113
10.3.2对话框控件—Dialog 121
10.4菜单—Menu 125
10.5活动栏—Action Bar 129
10.6通知—Notifications 132
10.7本章小结 134
第11章 循序渐进——线程&进程 135
11.1线程(Thread)&进程(Process)概念 135
11.2线程、进程与Android系统组件的关系 135
11.3实现多线程的方式 138
11.3.1 Thread 139
11.3.2 AsyncTask 140
11.4本章小结 141
第12章 信息百宝箱——全面数据存储 142
12.1 SharedPreferences(分享爱好) 142
12.1.1相识SharedPreferences 142
12.1.2保存数据 144
12.1.3删除数据 146
12.1.4修改数据 147
12.1.5查询数据 148
12.1.6监听数据变化 148
12.2流文件存储 149
12.2.1基本方法简介 149
12.2.2存储流程图 150
12.2.3数据保存和查询的实例 150
12.3实战db4o数据库 153
12.4 SQLite数据库 157
12.4.1什么是SQLite数据库 157
12.4.2 Android中的SQLite 157
12.4.3 SQLiteOpenHelper 157
12.4.4创建或打开数据库 158
12.4.5关闭数据库 158
12.4.6创建数据表 159
12.4.7删除数据表 159
12.4.8增加数据 159
12.4.9查询数据 160
12.4.10修改数据 160
12.4.11删除数据 161
12.4.12事务 161
12.4.13 SQLite可视化管理工具 161
12.4.14图片的保存和查询 163
12.5记事本实例 166
12.5.1创建主界面 167
12.5.2添加内容界面的创建 168
12.5.3保存数据 169
12.5.4以列表的形式查询数据 170
12.5.5选项的菜单 171
12.5.6“查看”选项的事件 172
12.5.7“修改”选项的事件 172
12.5.8“删除”选项的事件 173
12.6本章小结 174
第13章 不积跬步无以至千里——Widget 175
13.1认识Widget 175
13.2使用Widget 176
13.3 Widget生命周期 180
13.4 Widget设计向导 182
13.4.1添加配置页面 182
13.4.2 Widget设计向导 186
13.5 Widget实例—eoeWikiRecent Widget 188
13.6本章小结 197
第14章 更上一层楼——网络通信和XML解析 198
14.1 Android网络通信基础 198
14.1.1 Apache网络接口 199
14.1.2标准Java网络接口 199
14.1.3 Android网络接口 199
14.2基于HTTP协议的网络通信 199
14.2.1 HTTP介绍 199
14.2.2使用Apache接口 200
14.2.3使用标准Java接口 202
14.2.4总结 203
14.3基于Socket的网络通信 203
14.3.1 Socket介绍 204
14.3.2 Android Socket编程 205
14.4 XML解析技术介绍 206
14.4.1 DOM方式 207
14.4.2 SAX方式 208
14.4.3 PULL方式 210
14.5本章小结 212
第15章 灵活的应用 213
15.1 Android自定义UI控件 213
15.1.1 Android UI结构 213
15.1.2 Android绘制View的原理 214
15.1.3 Android自定义控件分析 215
15.1.4 Android自定义控件小结 216
15.2片段(Fragment)布局 217
15.2.1 Fragment简介 217
15.2.2 Fragment设计理念 217
15.2.3创建一个Fragment 218
15.2.4添加用户界面 219
15.2.5向活动中添加一个片段 220
15.2.6添加没有UI的片段 220
15.2.7管理片段 221
15.2.8执行片段事务(Fragment Transaction) 221
15.2.9和活动进行通信 222
15.2.10小结 222
15.3画布和画笔 222
15.3.1画布简介 222
15.3.2画笔简介 223
15.3.3例子 224
15.4本章小结 224
第16章 万变不离其宗——多设备适配 225
16.1多屏幕适配 225
16.1.1屏幕适配概述 225
16.1.2屏幕的分类 226
16.1.3如何支持多屏幕 227
16.1.4从项目中怎么适配多屏幕 228
16.2多语言处理 230
16.2.1多语言处理概述 230
16.2.2多语言在程序中的实现 230
16.3多版本处理 231
16.3.1支持不同的版本 231
16.3.2设备运行时检查系统的版本 231
第17章 开发好应用——省电、布局、快速响应、NFC.Android bean等好玩的应用 233
17.1开发省电的应用 233
17.1.1数据传输时避免浪费电量 233
17.1.2电池续航时间优化 237
17.2近距离无线通信——NFC 238
17.2.1近距离无线通信——NFC概述 238
17.2.2近距离无线通信——NFC基础 238
17.2.3 Android对NFC的支持 239
17.2.4 Android应用中实现NFC 241
17.3本章小结 242
第18章 没有规矩不成方圆——Android UI设计规范 243
18.1 UI设计概述 243
18.1.1 Android UI设计概述 243
18.1.2自成体系的风格设计 244
18.2 UI设计原则(Design Principles) 246
18.2.1让我着迷—Enchant Me 247
18.2.2简化我的生活—Simplify My Life 248
18.2.3让我感到惊奇—Make Me Amazing 250
18.3 UI设计规范 252
18.3.1应用结构规范 252
18.3.2导航规范 253
18.3.3通知规范 255
18.4本章小结 257
第19章 综合案例——图书信息查询 258
19.1项目介绍 258
19.2 ZXing 259
19.2.1 ZXing介绍 259
19.2.2 ZXing调用流程 259
19.3豆瓣图书API 259
19.3.1豆瓣图书API介绍 259
19.3.2豆瓣图书API调用流程 259
19.4项目效果图 260
19.5项目编码 262
19.5.1实体类 263
19.5.2欢迎界面 266
19.5.3数据下载 269
19.5.4数据解析 271
19.5.5信息显示界面 273
19.6本章小结 276
第20章 综合案例二——eoe Wiki客户端 277
20.1背景与简介 277
20.1.1 eoe Wiki网站 277
20.1.2 eoe Wiki客户端 277
20.2项目设计 278
20.2.1原型图设计 278
20.2.2流程图设计 279
20.3功能模块 280
20.3.1项目目录结构 281
20.3.2滑块特效 282
20.3.3网络交互 290
20.3.4 JSON数据解析 295
20.3.5数据库与缓存 299
20.4最终演示 307
20.5本章小结 309
第21章 综合案例三——广告查查看看 310
21.1产品开发背景 310
21.2产品功能简介 311
21.3本章小结 314
第22章 综合案例四——手机信息小助手 315
22.1背景与简介 315
22.1.1应用背景与简介 315
22.1.2手机信息小助手功能规划 315
22.2手机信息小助手编码实现 316
22.2.1手机信息小助手主界面 316
22.2.2系统信息 320
22.2.3硬件信息 325
22.2.4软件信息 329
22.2.5运行时信息 331
22.2.6文件浏览器 334
22.3项目细节完善 337
22.4手机信息小助手功能展望 338
22.5本章小结 338
第23章 综合案例五——“土地浏览器”实例 339
23.1土地浏览器简介 339
23.1.1为什么要开发土地浏览器 339
23.1.2土地浏览器的基本功能 340
23.2土地浏览器的设计 340
23.3土地浏览器的开发过程 341
23.3.1启动界面的开发 341
23.3.2网址输入栏的设计 344
23.3.3网址输入栏的触屏弹出和收缩 346
23.3.4网址的获取 347
23.3.5如何在本程序中打开浏览器 349
23.3.6网站标题的获取 349
23.3.7网站图标的获取 349
23.3.8网站打开进度的获得 350
23.3.9网页网址的获得 350
23.3.10网页的触屏滑动翻页 350
23.3.11网页缩放 351
23.3.12书签和历史记录 351
23.3.13底部菜单 355
23.3.14关于设置 356
23.3.15皮肤 358
23.3.16壁纸设置 359
23.3.17主页设置 359
23.3.18 JavaScript设置 360
23.3.19缓存设置 361
23.3.20缓存删除 361
23.3.21其他 362
23.4本章小结 362
第24章 综合案例六——地图跟踪 363
24.1百度地图示例应用分析 363
24.1.1百度地图SDK开发准备 363
24.1.2百度地图示例程序讲解 364
24.2本章小结 374
后记 375