第1章 Android的体系结构 1
1.1 应用层 1
1.2 应用框架层 2
1.3 库文件与Android运行环境 2
1.3.1 库文件 2
1.3.2 运行环境 3
1.4 Linux内核层 3
1.5 本章总结 3
第2章 开发环境的安装与配置 4
2.1 操作系统准备 4
2.2 Java开发环境的配置 5
2.3 Android开发环境的配置 6
2.3.1 Android SDK的下载与安装 6
2.3.2 Eclipse的下载与安装 8
2.3.3 ADT plugin的安装与配置 9
2.4 Adt-bundle集成环境 10
2.5 Android Studio的下载和安装 11
第3章 第一个Android应用程序 13
3.1 Android应用程序开发的基本流程 13
3.2 在Eclipse创建第一个项目 14
3.3 创建Android模拟器(AVD) 17
3.4 在Android模拟器中运行应用程序 19
3.5 Android应用程序目录结构 19
3.6 使用DDMS调试应用程序 21
3.7 本章总结 23
第4章 Android用户界面(UI)基础 24
4.1 Activity基本概念 24
4.2 AndroidManifest.xml文件的作用 25
4.3 布局文件的作用 26
4.4 Android的界面布局 28
4.4.1 控件的层次结构 28
4.4.2 常用界面布局种类 28
4.5 常见UI控件的使用 37
4.5.1 文本类控件 37
4.5.2 按钮类控件 44
4.5.3 日期类控件 52
4.5.4 图片控件 55
4.5.5 对话框 55
4.5.6 弹出消息(Toast) 62
4.5.7 通知(Notifiication) 64
4.6 本章总结 70
第5章 Activity管理 71
5.1 Intent的介绍 72
5.2 使用Intent启动Activity 72
5.2.1 直接启动Activity 72
5.2.2 带返回值启动Activity 83
5.3 Activity的生命周期 88
5.3.1 Activity的基本状态 89
5.3.2 Activity生命周期中的各个方法 89
5.3.3 编程测试Activity的生命周期 93
5.4 任务(Task)和回退栈(Back Stacks)管理 97
5.5 本章总结 101
第6章 Android适配器控件 102
6.1 初识适配器 102
6.1.1 用于处理文本信息的适配器——ArrayAdapter 103
6.1.2 处理复杂列表项的适配器——SimpleAdapter 103
6.1.3 用于处理数据库的适配器——SimpleCursorAdapter 104
6.1.4 最灵活的适配器——自定义Adapter 104
6.2 高级UI控件——适配器控件 105
6.2.1 下拉列表(Spinner) 105
6.2.2 自动提示文本框(AutoCompleteTextView) 111
6.2.3 列表视图(ListView) 116
6.2.4 ListView优化 128
6.2.5 网格视图(GridView) 133
6.3 本章总结 140
第7章 Android中访问网络资源 141
7.1 异步任务(AsyncTask)的应用 141
7.1.1 Android中的“UI线程模型” 141
7.1.2 AsyncTask的介绍 146
7.1.3 AsyncTask的使用 147
7.1.4 AsyncTask的取消 151
7.2 基于HTTP的Android应用程序 156
7.2.1 HTTP介绍 156
7.2.2 HTTP的工作方式 156
7.2.3 HTTP请求及请求方法 157
7.2.4 HTTP响应与状态码 158
7.2.5 HttpClient的使用方法 159
7.3 Android中的数据解析 168
7.3.1 XML数据解析 169
7.3.2 JSON数据解析 184
7.4 本章总结 206
第8章 Android数据存储 207
8.1 Android数据持久化技术简介 207
8.2 Android数据存储分类 208
8.3 SharedPreferences存储 208
8.3.1 SharedPreferences的存储路径与格式 208
8.3.2 将数据存储到SharedPreferences中 209
8.3.3 从SharedPreferences中读取数据 210
8.3.4 首选项设置功能 213
8.4 内部存储 219
8.4.1 将数据写入到内部存储中 220
8.4.2 从内部存储中读取数据 220
8.4.3 内部存储中的缓存数据 223
8.4.4 清除内部存储中的缓存 226
8.4.5 其他有用的方法 227
8.5 外部存储 227
8.5.1 检查SD Card是否已挂载 228
8.5.2 获取SD Card的路径 228
8.5.3 获取SD Card的空间大小 229
8.5.4 SD Card目录结构 230
8.5.5 访问SD Card公有目录 232
8.5.6 访问SD Card私有文件目录 234
8.5.7 访问SD Card私有缓存目录 235
8.5.8 从SD Card中获取数据 237
8.6 SQLite数据库存储 238
8.6.1 SQLite数据库的存放路径 239
8.6.2 SQLite数据类型 239
8.6.3 数据库的键 240
8.6.4 常用SQL语句 240
8.6.5 操作SQLite数据库的核心类介绍 243
8.6.6 SQLiteDatabase操作SQLite数据库的步骤 244
8.6.7 SimpleCursorAdapter的使用 250
8.6.8 使用事务 251
8.6.9 SQLiteOpenHelper实现数据库的创建和更新 252
8.6.10 使用SQLite 3工具 255
8.6.11 使用SQLiteExpert工具 255
8.7 本章总结 256
第9章 异步装载器Loader 258
9.1 Loader的作用 258
9.2 Loader API中核心类或接口 259
9.3 如何使用Loader 260
9.3.1 使用Loader的条件 260
9.3.2 AsyncTaskLoader 261
9.4 CursorLoader 276
9.5 本章总结 284
第10章 ContentProvider 286
10.1 ContentProvider简介 286
10.1.1 ContentProvider的功能和意义 287
10.1.2 ContentProvider与ContentResolver的关系 287
10.1.3 Uri简介 288
10.2 访问系统内置的ContentProvider数据 290
10.2.1 ContentResolver的用法 290
10.2.2 ContentResolver读取系统联系人 290
10.2.3 ContentResolver查看短信信息 298
10.2.4 ContentResolver管理多媒体内容 302
10.2.5 ContentResolver管理通话记录 305
10.3 自定义ContentProvider 306
10.3.1 创建ContentProvider的步骤 306
10.3.2 创建ContentProvider 308
10.4 监听ContentProvider的数据改变——ContentObserver 311
10.5 本章总结 314
第11章 Android广播机制——传递数据及获取手机的实时状态 316
11.1 了解Android的广播机制 317
11.2 发送广播 317
11.2.1 发送普通广播 318
11.2.2 发送有序广播 321
11.3 接收广播 322
11.3.1 辨别所需广播——IntentFilter 322
11.3.2 接收广播的利器——广播接收器(Broadcast Receiver) 325
11.3.3 接收有序广播——短信广播 328
11.3.4 接收普通广播——反映网络状态实时变化的广播 329
11.4 使用LocalBroadcastManager保障广播的安全 331
11.5 本章总结 332
第12章 Service 333
12.1 Android中的线程与进程 333
12.2 创建Service 334
12.2.1 创建一个Service 334
12.2.2 在AndroidManifest.xml文件中注册Service 334
12.3 启动Service 335
12.3.1 StartService及其生命周期 336
12.3.2 Bound Service及其生命周期 337
12.4 本章总结 341
第13章 可复用Android UI组件——Fragments 342
13.1 Fragment介绍 342
13.2 创建Fragment 343
13.3 将Fragment添加到Activity 346
13.3.1 静态方式 346
13.3.2 动态方式 348
13.4 Fragment的生命周期 350
13.4.1 生命周期方法 351
13.4.2 Activity与Fragment的关系 352
13.5 管理Fragment 353
13.5.1 FragmentManager的功能 353
13.5.2 FragmentTransaction的功能 354
13.6 Fragment与Activity交互 354
13.6.1 在Activity中获取Fragment布局中的控件 354
13.6.2 在Fragment中获取Activity布局中的控件 355
13.6.3 接口回调方式实现交互 355
13.7 Fragment综合案例——Notes 360
13.8 本章总结 367
第14章 ActionBar 369
14.1 ActionBar简介 369
14.2 创建、显示、隐藏、移除ActionBar 370
14.3 添加ActionBar的项元素 371
14.4 使用上下拆分的ActionBar 374
14.5 ActionBar启用向上导航 374
14.6 应用Action View的自定义动作项 375
14.7 应用Action Provider 377
14.8 ActionBar的Tab导航、导航标签的现场保护 381
14.9 ActionBar的下拉导航 384
14.10 本章总结 385
第15章 电话与短信 386
15.1 短信管理器(SmsManager) 386
15.1.1 拦截短信 395
15.1.2 查看短信 395
15.2 电话管理器(TelephonyManager) 396
15.3 SIP网络电话 404
15.3.1 配置SIP 405
15.3.2 创建SipManager 406
15.3.3 注册SIP服务器 406
15.3.4 SIP拨打电话 408
15.3.5 SIP接听电话 408
15.4 本章总结 410
第16章 音频、视频与照相机 412
16.1 Android支持的音频和视频格式 412
16.2 MediaPlayer介绍 414
16.3 播放音频 417
16.3.1 读取音频文件 417
16.3.2 初始化MediaPlayer 419
16.3.3 控制播放状态 421
16.4 播放视频 424
16.4.1 读取视频文件 424
16.4.2 初始化MediaPlayer 425
16.4.3 控制播放状态 429
16.5 录制音频与视频 434
16.6 照相机拍照 447
16.7 本章总结 450
第17章 传感器 451
17.1 传感器简介 451
17.1.1 什么是传感器 451
17.1.2 如何检测设备中的传感器 452
17.1.3 使用传感器的步骤 455
17.2 光传感器 456
17.3 加速度传感器 457
17.4 磁场传感器 462
17.5 其他传感器 466
17.6 本章总结 467
第18章 Android动画 468
18.1 Android动画框架介绍 468
18.2 补间动画(View Animation) 469
18.2.1 渐变动画(AlphaAnimation) 469
18.2.2 旋转动画(RotateAnimation) 471
18.2.3 缩放动画(ScaleAnimation) 473
18.2.4 移动动画(TranslateAnimation) 475
18.2.5 组合动画(AnimationSet) 477
18.3 帧动画(Drawable Animation) 479
18.4 属性动画(Property Animator) 481
18.5 本章总结 483