目 录
第1 篇 基础篇
第 1 章 Android 概述 2
1.1 Android 简介 2
1.2 Android 平台架构 3
1.3 Android 基本组件 5
1.4 搭建 Android 开发环境 7
1.5 创建 HelloWorld 项目 11
1.6 Android 项目目录结构 13
1.6.1 Android 结构类型 14
1.6.2 Project 结构类型 15
1.7 习题 17
第 2 章 Android 布局管理 18
2.1 View 布局概述 18
2.2 线性布局 20
2.2.1 LinearLayout 类简介 20
2.2.2 线性布局实例 22
2.3 表格布局 24
2.3.1 TableLayout 类简介 25
2.3.2 表格布局实例 26
2.4 相对布局 27
2.4.1 RelativeLayout 类简介 28
2.4.2 相对布局实例 29
2.5 帧布局 31
2.5.1 FrameLayout 类简介 31
2.5.2 帧布局实例 31
2.6 绝对布局 33
2.6.1 AbsoluteLayout 类简介 33
2.6.2 绝对布局实例 33
2.7 约束布局 34
2.7.1 ConstraintLayout 类介绍 35
2.7.2 约束布局实例 36
2.8 布局的嵌套 38
2.9 习题 42
第 3 章 常用基本控件 45
3.1 文本控件 45
3.1.1 TextView 类简介 45
3.1.2 EditText 类简介 46
3.1.3 文本控件使用实例 47
3.2 按钮控件 50
3.2.1 Button 类简介 50
3.2.2 ImageButton 类简介 51
3.2.3 按钮控件使用实例 51
3.3 单选按钮 54
3.3.1 RadioButton 类简介 54
3.3.2 单选按钮使用实例 54
3.4 复选框 58
3.4.1 CheckBox 类简介 58
3.4.2 复选框使用实例 58
3.5 图片控件 61
3.5.1 ImageView 类简介 61
3.5.2 ImageView 使用实例 62
3.6 日期与时间控件 66
3.6.1 DatePicker 类简介 66
3.6.2 TimePicker 类简介 67
3.6.3 日期时间控件使用实例 67
3.7 开关与切换按钮控件 69
3.7.1 开关控件 69
3.7.2 切换按钮控件 70
3.7.3 开关与切换按钮控件实例 70
3.8 习题 75
第 4 章 高级控件 76
4.1 自动完成文本控件 76
4.1.1 AutoCompleteTextView 类简介 76
4.1.2 MultiAutoCompleteTextView 类简介 77
4.1.3 自动完成文本控件实例 77
4.2 下拉列表控件 79
4.2.1 Spinner 类简介 80
4.2.2 下拉列表控件实例 80
4.3 进度条与滑块 83
4.3.1 ProgressBar 类简介 83
4.3.2 SeekBar 类简介 83
4.3.3 进度条与滑块实例 83
4.4 滚动视图 87
4.4.1 ScrollView 类介绍 87
4.4.2 滚动视图实例 87
4.5 列表视图 89
4.5.1 ListView 类简介 89
4.5.2 列表视图实例 90
4.6 网格视图 98
4.6.1 GridView 类简介 98
4.6.2 GridView 使用实例 99
4.7 画廊控件 102
4.7.1 Gallery 类简介 103
4.7.2 Gallery 使用实例 103
4.8 习题 106
第 5 章 常见 UI 设计 108
5.1 碎片 108
5.1.1 Fragment 生命周期 108
5.1.2 Fragment 应用实例 109
5.2 工具栏 118
5.2.1 Toolbar 类 119
5.2.2 Toolbar 应用实例 119
5.3 底部导航栏 122
5.3.1 BottonNavigationView 类 122
5.4 可扩展列表视图 126
5.4.1 ExpandableListView 126
5.4.2 ExpandableListView 实例 127
5.5 习题 133
第 6 章 Activity 组件 135
6.1 Activity 介绍 135
6.1.1 Activity 类介绍 135
6.1.2 Activity 生命周期与管理 136
6.2 调用其他的 Activity 138
6.3 Activity 之间数据传送 141
6.4 返回数据到前一个 Activity 143
6.5 习题 146
第 7 章 菜单与消息提示 148
7.1 选项菜单 148
7.1.1 选项菜单相关类 148
7.1.2 选项菜单和子菜单使用实例 150
7.2 上下文菜单 153
7.2.1 ContextMenu 类简介 153
7.2.2 上下文菜单使用实例 154
7.3 Alert 对话框 157
7.3.1 对话框简介 157
7.3.2 对话框使用实例 158
7.4 Toast 消息提示 166
7.4.1 Toast 简介 166
7.4.2 Toast 使用实例 167
7.5 Notification 状态栏通知 168
7.5.1 Notification 类简介 168
7.5.2 Notification 使用实例 169
7.6 习题 173
第 8 章 Android 事件处理 174
8.1 监听接口事件 174
8.1.1 监听接口事件机制 174
8.1.2 监听接口事件实例 177
8.2 回调机制事件 180
8.2.1 回调机制原理与过程 180
8.2.2 回调机制事件实例 182
8.3 习题 186
第 9 章 Android 程序调试 187
9.1 AndroidDeviceMonitor 的工作原理 187
9.2 AndroidDeviceMonitor 的启动及介绍 188
9.2.1 AndroidDeviceMonitor 的启动 188
9.2.2 AndroidDeviceMonitor 各组成部分的功能简介 188
9.3 AndroidProfiler 189
9.4 模拟器控制 190
9.5 DeviceFileExplorer 191
9.6 LogCat 192
9.7 程序调试 Debug 194
9.8 使用手机进行程序调试 194
9.9 习题 195
第 2 篇 提高篇
第 10 章 Android 数据存储与处理 198
10.1 文件存储 198
10.1.1 内部存储 198
10.1.2 外部存储 204
10.2 首选项 SharedPreferences 210
10.2.1 SharedPreferences 存储和读取数据的步骤 210
10.2.2 SharedPreferences 的常用方法 210
10.3 SQLite 存储 215
10.3.1 SQLite 数据库简介 215
10.3.2 SQLite 数据库的说明和应用 215
10.3.3 SQLite 数据库使用实例 217
10.4 内容提供者 ContentProvider 230
10.4.1 ContentProvider 类简介 230
10.4.2 ContentProvider 使用实例 232
10.5 习题 241
第 11 章 网络编程 244
11.1 线程处理-Handler 和异步任务 244
11.1.1 为何使用多线程 244
11.1.2 什么是 Handler 246
11.1.3 异步任务—AsyncTask 249
11.1.4 AsyncTask 实例 250
11.2 使用 HTTP 访问网络 254
11.2.1 使用 HttpURLConnection 255
11.2.2 HttpURLConnection 实例 255
11.3 JSON 数据解析 259
11.3.1 什么是 JSON 259
11.3.2 解析 JSON 数据格式 260
11.3.3 OkHttp 的使用 261
11.4 Socket 通信 265
11.4.1 Socket 通信的实现步骤 265
11.4.2 Socket 实例 266
11.5 习题 269
第 12 章 广播和服务 271
12.1 广播接收者 271
12.1.1 静态注册 271
12.1.2 动态注册 275
12.2 服务 277
12.2.1 Service 生命周期及启动方法 277
12.2.2 Start 方式启动 Service 实例 278
12.2.3 Bind 方式启动 Service 实例 282
12.3 服务和广播综合实例 288
12.4 习题 295
第 3 篇 综合篇
第 13 章 基于高德地图的物流车辆轨迹 App . 298
13.1 基于位置服务 298
13.2 高德地图 API 299
13.3 系统总体设计 300
13.3.1 系统结构设计 300
13.3.2 系统网络设计 300
13.3.3 数据库设计 301
13.4 申请高德地图 Key 302
13.5 系统实现 304
13.5.1 WebService 的实现及部署 304
13.5.2 将高德地图加入项目中 310
13.5.3 实现数据库访问类 312
13.5.4 手机客户端实现 316
13.6 本章小结 329
参考文献 330
