第1章 Android基础入门 1
1.1 Android简介 2
1.1.1 通信技术 2
1.1.2 Android起源 2
1.1.3 Android体系结构 3
1.1.4 Dalvik虚拟机 5
1.2 Android开发环境搭建 6
1.2.1 Android Studio安装 6
1.2.2 模拟器创建 10
1.2.3 DDMS的使用 14
1.2.4 快捷键设置 18
1.3 开发第一个Android程序 20
1.3.1 实战演练——开发HelloWorld程序 20
1.3.2 Android程序结构 26
1.3.3 Android程序打包 26
1.4 本章小结 29
第2章 Android UI开发 30
2.1 布局的创建 31
2.2 布局的类型 32
2.2.1 线性布局 32
2.2.2 相对布局 34
2.2.3 帧布局 37
2.2.4 表格布局 38
2.2.5 绝对布局 39
2.3 常用控件 40
2.3.1 TextView 40
2.3.2 EditText 42
2.3.3 Button 43
2.3.4 RadioButton 47
2.3.5 ImageView 48
2.3.6 实战演练——制作QQ登录界面 49
2.4 常见对话框 51
2.4.1 普通对话框 52
2.4.2 单选对话框 53
2.4.3 多选对话框 54
2.4.4 进度条对话框 55
2.4.5 消息对话框 56
2.4.6 自定义对话框 56
2.5 样式和主题 59
2.5.1 样式 60
2.5.2 主题 61
2.6 国际化 62
2.7 程序调试 65
2.7.1 单元测试 65
2.7.2 LogCat的使用 67
2.7.3 Debug的使用 69
2.8 本章小结 72
第3章 Activity 73
3.1 Activity的创建 74
3.2 Activity的生命周期 76
3.2.1 生命周期状态 76
3.2.2 生命周期方法 76
3.3 Activity的启动模式 80
3.3.1 Android中的任务栈 80
3.3.2 Activity的4种启动模式 81
3.4 Activity之间的跳转 83
3.4.1 Intent简介 83
3.4.2 实战演练——打开浏览器 84
3.5 Activity中的数据传递 85
3.5.1 数据传递 86
3.5.2 实战演练——注册用户信息 86
3.5.3 数据回传 91
3.5.4 实战演练——选择宝宝装备 92
3.6 本章小结 101
第4章 数据存储 102
4.1 数据存储方式 103
4.2 文件存储 103
4.2.1 文件存储简介 103
4.2.2 实战演练——保存QQ密码 106
4.3 XML解析 109
4.3.1 XML解析方式 109
4.3.2 实战演练——天气预报 110
4.4 JSON解析 118
4.4.1 JSON数据 118
4.4.2 JSON解析 120
4.4.3 实战演练——天气预报 122
4.5 SharedPreferences 124
4.5.1 SharedPreferences的使用 124
4.5.2 实战演练——保存QQ密码 125
4.6 本章小结 127
第5章 SQLite数据库 128
5.1 SQLite数据库简介 129
5.2 数据库的创建 129
5.3 数据库的使用 131
5.3.1 SQLite的基本操作 131
5.3.2 SQLite中的事务 133
5.3.3 实战演练——绿豆通讯录 134
5.4 数据展示控件 139
5.4.1 ListView控件 140
5.4.2 常用数据适配器 140
5.4.3 实战演练——Android应用市场 142
5.4.4 ListView的优化 145
5.5 本章小结 146
第6章 BroadcastReceiver(广播接收者) 147
6.1 广播接收者简介 148
6.2 广播接收者入门 148
6.2.1 广播接收者的创建 148
6.2.2 实战演练——拦截史迪仔电话 150
6.3 自定义广播 154
6.3.1 自定义广播的发送与接收 154
6.3.2 实战演练——拯救史迪仔 154
6.4 广播的类型 156
6.4.1 有序广播和无序广播 156
6.4.2 实战演练——拦截史迪仔广播 157
6.5 本章小结 162
第7章 Service(服务) 163
7.1 服务的创建 164
7.2 服务的生命周期 165
7.3 服务的启动方式 166
7.3.1 startService方式启动 166
7.3.2 bindService方式启动 169
7.4 服务的通信 173
7.4.1 通信方式 173
7.4.2 实战演练——音乐播放器 174
7.5 本章小结 180
第8章 ContentProvider(内容提供者) 181
8.1 内容提供者简介 182
8.2 内容提供者的创建 183
8.3 内容提供者的使用 184
8.3.1 访问内容提供者 184
8.3.2 实战演练——查看短信的猫 185
8.4 内容观察者的使用 190
8.4.1 内容观察者简介 190
8.4.2 实战演练——监测数据的猫 193
8.5 本章小结 202
第9章 网络编程 203
9.1 HTTP协议简介 204
9.2 访问网络 204
9.2.1 HttpURLConnection的基本用法 204
9.2.2 GET与POST请求方式 205
9.2.3 Handler消息机制 206
9.2.4 实战演练——网络图片浏览器 208
9.3 开源项目 211
9.3.1 AsyncHttpClient的使用 211
9.3.2 SmartImageView的使用 212
9.3.3 实战演练——新闻客户端 213
9.4 本章小结 224
第10章 高级编程 225
10.1 图形图像处理 226
10.1.1 Bitmap类 226
10.1.2 BitmapFactory类 226
10.1.3 Paint类 227
10.1.4 Canvas类 228
10.1.5 Matrix类 228
10.1.6 实战演练——刮刮卡 229
10.2 动画 232
10.2.1 补间动画 232
10.2.2 逐帧动画 238
10.3 多媒体 242
10.3.1 MediaPlayer播放音频 242
10.3.2 VideoView播放视频 244
10.3.3 实战演练——视频播放器 245
10.4 Fragment 248
10.4.1 Fragment简介 248
10.4.2 Fragment的生命周期 249
10.4.3 Fragment的创建 250
10.4.4 实战演练——滑动切换界面 252
10.5 Android 5.0新特性 255
10.5.1 抽屉动画 255
10.5.2 ReeyclerView控件 256
10.5.3 SwipeRefreshLayout控件 260
10.6 本章小结 262