本书系统地介绍了在Android Studio 3.1.2环境下开发Android应用的基础知识和实际应用。全书分11章,包括Android应用开发概述及开发环境、Android项目文件结构分析及调试、Android UI与Activity组件、手机基本功能程序设计、服务组件及其应用、广播组件与通知、SQLite数据库编程、Android内容提供者组件、Android近距离通信技术、位置服务与地图应用开发和Android网络编程。本书以介绍Android的四大组件为主线,精心组织目录和案例,并在Android 7.0手机(或模拟器)上成功运行。此外,每章都精心设计了典型案例以说明其用法,并配有习题及实验。本书配套的教学网站,包括教学大纲、实验大纲、各种软件的下载链接、课件和案例源代码下载链接、在线测试等内容,极大地方便了教与学的实施。
吴志祥,武汉科技大学计算机科学与技术学院技术系副教授,具有丰富的Java、Android编程开发教学经验,主编《Java程序设计简明教程》《Java EE应用开发教程》《Android应用开发案例教程》《PHP动态网页设计与网站架设》等多部畅销教材。
第1章 Android应用开发概述及开发环境 1
1.1 移动开发与智能手机 1
1.1.1 移动开发概述 1
1.1.2 Android智能手机的使用特点 1
1.1.3 手机智能操作系统及分类 2
1.2 Android系统架构 2
1.2.1 Linux内核层 3
1.2.2 函数库和Android运行时环境层 4
1.2.3 应用程序框架层 4
1.2.4 应用程序层 5
1.3 Android Studio开发环境 5
1.3.1 Android Studio概述 5
1.3.2 下载和安装Android Studio 3.1.2 5
1.3.3 Android Studio相关文件夹 6
1.3.4 Android SDK与Android API 6
1.3.5 Android Studio常用组合键 10
1.4 创建和运行Android应用 10
1.4.1 创建一个Hello级Android Studio项目 10
1.4.2 手机模拟器与AVD Manager 14
1.4.3 安装和运行Android应用 16
习题1 17
实验1 18
第2章 Android项目结构分析及调试 19
2.1 Android项目的文件系统结构 19
2.1.1 项目配置清单文件夹manifests 19
2.1.2 源程序文件夹Java 20
2.1.3 资源程序文件夹res 20
2.1.4 项目多模块及构建Gradle Scripts 22
2.1.5 使用Project或Packages视图 24
2.2 Android应用程序的基本组成 25
2.2.1 Activity组件与视图View 25
2.2.2 Service组件 25
2.2.3 BroadcastReceiver组件 25
2.2.4 ContentProvider组件 26
2.2.5 Application、Context和Intent 26
2.2.6 Android应用程序的运行入口 27
2.3 Android虚拟机Dalvik 28
2.4 Android Studio项目调试 29
2.4.1 主动调试(Toast与Logcat) 29
2.4.2 动态调试 31
2.4.3 单元测试 32
习题2 35
实验2 36
第3章 Android UI与Activity组件 37
3.1 用户界面UI设计 37
3.1.1 Android界面视图类 37
3.1.2 Android用户界面事件 38
3.1.3 界面与布局 39
3.2 活动组件Activity 47
3.2.1 AppCompatActivity、Activity和Context 47
3.2.2 Activity组件的基本方法 48
3.2.3 Activity类具有的扩展方法 48
3.2.4 Activity的生命周期 49
3.2.5 手机横/竖屏自动切换问题 50
3.3 常用Widget控件的使用 51
3.3.1 文本控件TextView和EditText 51
3.3.2 图像控件ImageView 52
3.3.3 命令按钮控件Button、ImageButton及其单击事件监听器设计 53
3.3.4 单选按钮控件RadioButton与复选框控件CheckBox 54
3.3.5 消息提醒对话框控件AlertDialog与进度控件ProgressDialog 55
3.3.6 列表控件及其数据适配器和列表项选择监听器 57
3.3.7 下拉列表控件Spinner 62
3.4 高级UI程序设计 63
3.4.1 日期和时间选择器(DatePicker和TimePicker) 63
3.4.2 自动完成文本控件AutoCompleteTextView 64
3.4.3 标题栏Toolbar与OptionMenu菜单设计 64
3.4.4 Fragment与ListFragment 66
3.4.5 底部导航BottomNavigationView 72
习题3 75
实验3 76
第4章 手机基本功能程序设计 79
4.1 预备知识 79
4.1.1 Activity组件的调用与返回 79
4.1.2 Android权限、权限组与运行时权限动态检测 83
4.1.3 SharedPreferences存储与文件存储 87
4.1.4 抽象类android.net.Uri及其静态方法parse() 92
4.2 打电话程序设计 92
4.3 短信程序设计 94
4.3.1 SMS简介 94
4.3.2 短信管理器 94
4.3.3 短信发送程序的实现 94
4.4 手机音频播放与录音程序设计 96
4.4.1 音频播放 96
4.4.2 手机录音 98
4.5 手机视频播放 101
4.6 手机拍照程序设计 102
习题4 105
实验4 106
第5章 服务组件及其应用 109
5.1 服务组件Service的基本用法 109
5.1.1 Android系统服务 109
5.1.2 Service组件及其生命周期 111
5.1.3 自定义服务与服务注册 113
5.1.4 服务的显式启动与隐式启动 113
5.1.5 绑定服务方式与服务代理 115
5.2 远程服务 117
5.2.1 远程服务概念 117
5.2.2 Android跨进程调用与接口定义语言AIDL 118
5.2.3 远程服务的建立与使用实例 118
5.3 综合应用实例—自动挂断来电后回复短信 123
习题5 131
实验5 132
第6章 广播组件与通知 135
6.1 广播与BroadcastReceiver组件 135
6.1.1 Android广播机制 135
6.1.2 使用BroadcastReceiver组件定义广播接收者 136
6.1.3 接收系统短信广播应用实例 140
6.2 自定义广播及其使用 141
6.2.1 自定义广播 141
6.2.2 以动态注册方式使用自定义广播 142
6.2.3 以静态注册方式使用自定义广播 143
6.3 通知 144
6.3.1 通知与通知类Notification 144
6.3.2 通知管理器类NotificationManager 145
6.3.3 使用PendingIntent查看通知内容 145
习题6 148
实验6 149
第7章 SQLite数据库编程 151
7.1 SQLite数据库简介 151
7.1.1 SQLite数据库软件的特点 151
7.1.2 Android系统对SQLite数据库的支持 151
7.2 使用SQLiteOpenHelper创建、打开或更新数据库 152
7.2.1 SQLite数据库及表的创建与打开 152
7.2.2 使用SQLiteSpy验证创建的数据库 153
7.2.3 SQLite数据库的更新 154
7.3 使用SQLiteDatabase实现数据库表的增加、删除、修改和查询 155
7.3.1 记录的增加、删除、修改和查询 155
7.3.2 使用适配器SimpleAdapter显示查询结果 157
7.3.3 以DAO方式访问数据库编写程序 158
7.3.4 使用数据库事务 166
习题7 169
实验7 171
第8章 Android内容提供者组件 173
8.1 ContentProvider组件及其相关类 173
8.1.1 抽象类ContentProvider(内容提供者) 173
8.1.2 抽象类ContentResolver(内容解析器) 175
8.1.3 内容提供者的URI定义及其相关类(UriMatcher和ContentUris) 176
8.2 自定义ContentProvider及其使用 177
8.2.1 在Android应用里创建并注册内容提供者 177
8.2.2 在另一个应用程序里使用内容提供者 180
8.3 读取手机联系人信息 183
8.3.1 手机联系人相关类ContactsContract 183
8.3.2 手机联系人数据库及其相关表 183
8.3.3 读取手机联系人程序设计 184
8.4 Android后台线程与Android组件的综合应用 187
8.4.1 Android UI主线程 187
8.4.2 使用Handler向UI线程传递消息 187
8.4.3 使用AsyncTask更新UI线程 189
8.4.4 使用ContentProvider+AsyncTask实现群发短信 191
习题8 199
实验8 200
第9章 Android近距离通信技术 202
9.1 WiFi通信 202
9.1.1 WiFi简介 202
9.1.2 Android对WiFi的支持 202
9.1.3 WiFi应用实例 204
9.2 蓝牙通信Bluetooth 208
9.2.1 Bluetooth简介 208
9.2.2 Android对Bluetooth的支持 208
9.2.3 蓝牙聊天实例 211
9.3 近场通信NFC 229
9.3.1 NFC简介 229
9.3.2 Android对NFC的支持 231
9.3.3 NFC应用实例:读/写Tag标签 231
习题9 238
实验9 239
第10章 位置服务与地图应用开发 241
10.1 位置服务概述 241
10.1.1 基于位置的服务LBS 241
10.1.2 Android API提供的位置包 242
10.1.3 Google Map APIs 243
10.2 Android定位实现 244
10.2.1 GPS定位实现 245
10.2.2 网络连接及状态相关类 247
10.2.3 WiFi或GPRS定位实现 247
10.3 百度定位及地图应用开发 254
10.3.1 百度定位应用开发基础 254
10.3.2 注册百度开发者账号,申请位置应用的Key 256
10.3.3 在清单文件中注册权限、服务及应用的Key 258
10.3.4 百度综合定位实现 259
10.3.5 百度地图显示 261
习题10 267
实验10 268
第11章 Android网络编程 270
11.1 基于HTTP协议的Android网络编程 270
11.1.1 Android网络编程概述 270
11.1.2 HTTP请求与响应 271
11.1.3 使用HttpURLConnection访问网络资源 271
11.1.4 使用网络接口HttpClient调用Web服务 274
11.2 Android网络图像下载与通信框架 276
11.2.1 网络图像下载框架Glide 276
11.2.2 网络通信框架Volley 277
11.3 手机App与Web服务器通信 283
11.3.1 Web服务器项目 283
11.3.2 App的登录程序设计 285
11.3.3 App的主界面程序设计 293
习题11 295
实验11 296
习题答案 298
参考文献 302