第1章 Android基础入门 1
1.1 Android简介 1
1.1.1 通信技术 1
1.1.2 Android起源 2
1.1.3 Android体系结构 3
1.1.4 Dalvik虚拟机 4
1.2 Android开发环境搭建 5
1.2.1 ADT Bundle开发工具集合 5
1.2.2 Android调试桥(ADB) 9
1.2.3 DDMS的使用 10
1.3 开发第一个Android程序 11
1.3.1 案例——HelloWorld程序 11
1.3.2 Android程序结构 15
1.3.3 Android程序打包过程 16
小结 17
习题 18
第2章 Android UI开发 19
2.1 UI概述 19
2.2 布局文件的创建 20
2.3 布局的类型 23
2.3.1 相对布局(RelativeLayout) 23
2.3.2 线性布局(LinearLayout) 25
2.3.3 表格布局(TableLayout) 26
2.3.4 网格布局(GridLayout) 28
2.3.5 帧布局(FrameLayout) 29
2.3.6 绝对布局(AbsoluteLayout) 30
2.3.7 案例——用户注册 31
2.4 样式和主题 34
2.4.1 样式和主题的使用 34
2.4.2 案例——自定义样式和主题 35
2.5 国际化 37
2.6 程序调试 40
2.6.1 JUnit单元测试 40
2.6.2 LogCat的使用 42
2.6.3 Toast的使用 44
小结 44
习题 44
第3章 Activity 46
3.1 Activity入门 46
3.1.1 Activity简介 46
3.1.2 Activity的创建 47
3.1.3 Activity生命周期 49
3.1.4 案例——Activity的存活 51
3.2 Activity的启动模式 58
3.2.1 Android下的任务栈 59
3.2.2 Activity的4种启动模式 59
3.3 在Activity中使用Intent 61
3.3.1 Intent介绍 61
3.3.2 显式意图和隐式意图 61
3.3.3 案例——打开系统照相机 62
3.4 Activity中的数据传递 64
3.4.1 数据传递方式 64
3.4.2 案例——用户注册 65
3.4.3 回传数据 71
3.4.4 案例——装备选择 72
小结 82
习题 82
第4章 数据存储 84
4.1 数据存储方式 84
4.2 文件存储 85
4.2.1 文件存储简介 85
4.2.2 案例——存储用户信息 87
4.3 XML序列化和解析 91
4.3.1 XML序列化 91
4.3.2 案例——XML序列化 92
4.3.3 XML解析 96
4.3.4 案例——天气预报 97
4.4 SharedPreferences 106
4.4.1 SharedPreferences的使用 106
4.4.2 案例——QQ登录 108
小结 113
习题 113
第5章 SQLite数据库 115
5.1 SQLite数据库简介 115
5.2 SQLite数据库的使用 115
5.2.1 SQLite操作API 115
5.2.2 数据库的常用操作 117
5.2.3 SQLite事务操作 120
5.2.4 sqlite3工具 121
5.3 ListView控件 122
5.3.1 ListView控件的使用 122
5.3.2 常用数据适配器(Adapter) 123
5.3.3 案例——Android应用市场 124
5.3.4 案例——商品展示 129
小结 140
习题 140
第6章 内容提供者 142
6.1 内容提供者简介 142
6.2 创建内容提供者 143
6.2.1 创建一个内容提供者 143
6.2.2 Uri简介 146
6.2.3 案例——读取联系人信息 146
6.3 访问内容提供者 156
6.3.1 ContentResolver的基本用法 156
6.3.2 案例——短信备份 157
6.4 内容观察者的使用 162
6.4.1 什么是内容观察者 162
6.4.2 案例——短信接收器 165
小结 167
习题 167
第7章 广播接收者 169
7.1 广播接收者入门 169
7.1.1 什么是广播接收者 169
7.1.2 广播接收者创建与注册 169
7.1.3 案例——IP拨号器 171
7.2 自定义广播 174
7.2.1 自定义广播的发送与接收 174
7.2.2 案例——电台与收音机 174
7.3 广播的类型 176
7.3.1 有序广播和无序广播 176
7.3.2 案例——拦截有序广播 177
7.4 常用的广播接收者 182
7.4.1 案例——杀毒软件 182
7.4.2 案例——短信拦截器 184
小结 185
习题 186
第8章 服务 187
8.1 服务的创建 187
8.2 服务的生命周期 188
8.3 服务的启动方式 189
8.3.1 start方式启动服务 189
8.3.2 bind方式启动服务 192
8.4 服务通信 196
8.4.1 本地服务通信和远程服务通信 196
8.4.2 案例——音乐播放器 198
8.4.3 案例——远程调用支付宝 208
小结 214
习题 214
第9章 网络编程 216
9.1 网络编程入门 216
9.1.1 HTTP协议简介 216
9.1.2 Handler消息机制原理 216
9.1.3 AsyncTask 218
9.2 使用HttpURLConnection访问网络 220
9.2.1 HttpURLConnection的基本用法 220
9.2.2 案例——网络图片浏览器 220
9.3 使用HttpClient访问网络 224
9.3.1 HttpClient的基本用法 224
9.3.2 案例——网络图片浏览器(使用HttpClient) 225
9.4 数据提交方式 228
9.4.1 GET方式和POST方式提交数据 228
9.4.2 案例——提交数据到服务器 230
9.5 开源项目 240
9.5.1 AsyncHttpClient的使用 240
9.5.2 SmartImageView的使用 242
9.5.3 案例——新闻客户端 243
9.6 多线程下载 253
9.6.1 多线程下载原理 253
9.6.2 案例——文件下载 254
小结 260
习题 260
第10章 高级编程 262
10.1 图形图像处理 262
10.1.1 常用的绘图类 262
10.1.2 为图片添加特效 265
10.1.3 案例——刮刮卡 267
10.2 动画 270
10.2.1 补间动画(Tween Animation) 270
10.2.2 逐帧动画(Frame Animation) 275
10.3 多媒体 278
10.3.1 MediaPlayer播放音频 278
10.3.2 SoundPool播放音频 281
10.3.3 VideoView播放视频 282
10.3.4 MediaPlayer和SurfaceView播放视频 286
10.3.5 案例——视频播放器 288
10.4 传感器 294
10.4.1 传感器简介 294
10.4.2 传感器的使用 295
10.4.3 案例——摇一摇 298
10.5 Fragment 307
10.5.1 Fragment简介 307
10.5.2 Fragment的生命周期 308
10.5.3 创建Fragment 309
10.5.4 Fragment与Activity间通信 311
10.5.5 案例——设置界面 312
小结 319
习题 319