第1篇 CoffeeStore项目准备——Android基础开发篇 1
项目导引 1
第1章 初识Android平台 3
1.1 Android简介 3
1.2 Android的版本发展历程 4
1.3 Android的制胜法宝 5
1.4 Android系统架构 6
本章小结 7
本章习题 8
第2章 搭建Android开发与测试环境 9
2.1 安装Android开发环境 9
2.1.1 安装JDK 10
2.1.2 下载和安装Android Studio与Android SDK 10
2.1.3 Android Studio开发环境的使用 15
2.2 配置Android测试环境 17
2.2.1 使用Android模拟器运行Android程序 17
2.2.2 使用真机运行Android程序 20
本章小结 21
本章习题 21
第3章 第一个Android应用程序 22
3.1 第一个Android程序HelloWorld 22
3.2 Android程序结构 25
3.3 Android四大组件 27
3.4 Activity 28
3.4.1 创建和使用Activity 28
3.4.2 Activity的生命周期 29
3.4.3 在不同Activity之间传递数据 35
3.5 知识拓展:Activity/ActionBarActivity/AppCompatActivity 38
本章小结 38
本章习题 38
第4章 CoffeeStore项目导学 39
4.1 功能描述 39
4.2 体系结构与知识点 40
4.3 原型设计 42
4.4 数据库设计 43
本章小结 45
本章习题 45
第2篇 CoffeeStore的界面开发——Android界面开发篇 47
项目导引 47
第5章 Android布局管理器 49
5.1 线性布局管理器 50
5.2 相对布局管理器 55
5.3 表格布局管理器 60
5.4 网格布局管理器 63
5.5 帧布局管理器 66
5.6 向容器中手动添加控件 71
5.7 项目实战:CoffeeStore首页的界面开发 73
5.7.1 项目分析 73
5.7.2 项目实现 74
5.7.3 项目说明 82
本章小结 82
本章习题 83
第6章 Android基本控件 84
6.1 文本类控件 85
6.1.1 TextView 85
6.1.2 AutoCompleteTextView 90
6.1.3 MultiAutoCompleteTextView 90
6.1.4 EditText 90
6.2 ScrollView 95
6.3 按钮类控件 97
6.3.1 Button 97
6.3.2 ImageButton 98
6.3.3 ToggleButton 100
6.3.4 CheckBox 100
6.3.5 RadioButton 101
6.4 日期时间类控件 107
6.4.1 DatePicker 107
6.4.2 TimePicker 111
6.4.3 DigitalClock 116
6.4.4 AnalogClock 116
6.4.5 Chronometer 116
6.5 进度条控件ProgressBar 119
6.6 滑动条SeekBar 120
6.7 星级控件RatingBar 120
6.8 项目实战:使用RadioButton实现主页底端导航条 129
6.8.1 项目分析 129
6.8.2 项目实现 129
6.8.3 项目说明 131
6.9 知识扩展:创建和使用自定义控件 132
本章小结 134
本章习题 134
第7章 ViewPager与Fragment 136
7.1 ViewPager与PagerAdapter 136
7.2 Fragment简介与应用场合 137
7.3 创建Fragment 140
7.4 初识Intent 144
7.4.1 Intent对象的基本概念 144
7.4.2 Intent对象的基本使用方法 145
7.4.3 使用Intent对象在Activity之间传递数据 147
7.5 Activity与Fragment之间的交互 149
7.5.1 为Activity创建事件回调方法 150
7.5.2 添加项目到ActionBar 151
7.5.3 与Activity生命周期的协调工作 151
7.6 项目实战:CoffeeStore主页滑动功能的实现 152
7.6.1 项目分析 152
7.6.2 项目实现 152
7.6.3 项目说明 156
本章小结 157
本章习题 157
第8章 Android高级控件 158
8.1 Adapter对象 159
8.2 Spinner控件 159
8.3 ListView控件 161
8.4 ExpandableListView控件 175
8.5 GridView控件 178
8.6 HorizontalScrollView控件 181
8.7 项目实战:CoffeeStore首页广告轮播效果的实现 182
8.7.1 项目分析 182
8.7.2 项目实现 182
8.7.3 项目说明 184
8.8 项目实战:CoffeeStore店铺列表页的实现 184
8.8.1 项目分析 184
8.8.2 项目实现 184
8.8.3 项目说明 188
8.9 项目实战:CoffeeStore首页推荐商品的实现 188
8.9.1 项目分析 188
8.9.2 项目实现 188
8.9.3 项目说明 190
本章小结 190
本章习题 190
第9章 资源样式与主题 193
9.1 资源(Resource) 194
9.2 值资源 195
9.2.1 字符串资源 195
9.2.2 颜色资源 197
9.2.3 尺寸资源 198
9.2.4 数组资源 199
9.3 位图资源与色图资源 200
9.4 XML资源 201
9.5 菜单资源 203
9.6 对话框资源 205
9.6.1 提醒(Toast)对话框 205
9.6.2 AlertDialog 208
9.6.3 其他对话框资源 211
9.7 动画资源 211
9.8 风格资源与主题 214
9.8.1 风格资源(Style) 214
9.8.2 主题资源 216
9.8.3 图像状态(State)资源 218
9.9 国际化(I18N) 220
9.10 项目实战:CoffeeStore中各种资源的使用 222
9.10 .1 项目分析 222
9.10 .2 项目实现 222
9.10 .3 项目说明 227
本章小结 227
本章习题 228
第10章 Android人机交互设计 229
10.1 常用事件 230
10.1.1 按键事件 230
10.1.2 触摸事件 234
10.2 拖拉与多点触屏 236
10.3 手势识别 237
10.4 项目实战:CoffeeStore引导页图片切换的实现 239
10.4.1 项目分析 239
10.4.2 项目实现 239
10.4.3 项目说明 243
本章小结 243
本章习题 244
第3篇 CoffeeStore的数据存储解决方案——Android数据存储篇 245
项目导引 245
第11章 本地存储技术 247
11.1 简单数据存储类SharedPreferences 247
11.1.1 SharedPreferences的使用场合 247
11.1.2 使用SharedPreferences存取数据 248
11.2 Android的文件 249
11.2.1 文件数据的存储与读取 249
11.2.2 读写SD卡中的文件 255
11.2.3 读写资源文件 259
11.3 SQLite数据库 262
11.3.1 SQLite数据库存储数据概述 262
11.3.2 使用SQLiteOpenHelper类对数据库版本进行管理 263
11.3.3 使用SQLiteDatabase操作数据库 264
11.3.4 将数据库与应用程序一起发布 267
11.4 项目实战:CofffeeStore启动页安装信息的存取 268
11.4.1 项目分析 268
11.4.2 项目实现 268
11.4.3 项目说明 269
11.5 项目实战:读取数据库文件 269
11.5.1 项目分析 269
11.5.2 项目实现 270
11.5.3 项目说明 273
11.6 项目实战:CoffeeStore项目中本地收藏夹的实现 273
11.6.1 项目分析 273
11.6.2 项目实现 273
11.6.3 项目说明 283
本章小结 285
本章习题 285
第12章 网络存储技术 287
12.1 异步任务 287
12.1.1 异步任务的使用场合 287
12.1.2 异步任务类 288
12.2 JSON数据解析 291
12.2.1 JSON简介 291
12.2.2 JSON基本语法 291
12.2.3 JSON的解析 292
12.3 HttpURLConnection 294
12.3.1 HTTP通信接口 294
12.3.2 HttpURLConnection的常用方法 294
12.4 利用异步任务读取服务器端图片信息 295
12.5 项目实战:登录功能 297
12.5.1 项目分析 297
12.5.2 项目实现 297
12.5.3 项目说明 307
12.6 项目实战:店铺列表功能 307
12.6.1 项目分析 307
12.6.2 项目实现 308
12.6.3 项目说明 311
本章小结 312
本章习题 312
第4篇Android高级开发篇 317
第13章 深入学习Intent 317
13.1 PendingIntent 317
13.2 Intent过滤器 318
13.3 运行时权限 321
本章小结 335
本章习题 335
第14章 广播与服务 336
14.1 广播的定义与用途 337
14.2 广播接收器的实现 337
14.3 Service的基本概念 341
14.4 Service的生命周期 343
本章小结 349
本章习题 349
第15章 地图和定位 350
15.1 位置服务 350
15.2 地图的定义与显示 351
15.2.1 申请地图密钥 351
15.2.2 地图的显示 352
15.3 地图的定位及路线规划 356
15.3.1 定位原理 356
15.3.2 定位与路线规划 356
本章小结 365
本章习题 365
附录A 学习知识点及能力要点 366
A.1 教材的知识要点及掌握程度 366
A.2 实践项目设计 369
A.3 教材的能力要点及重要程度 370
附录B RGB颜色对照表 371
参考文献 376