本书以目前较为稳定的Android 9.0(API level 28)为基础,全面讲解了Android程序设计,涵盖了Android程序设计所需的必备知识点,每个知识点都对应了示例。全书共12章,具体内容包括:Android快速入门、Activity组件、UI组件基础、AdapterView组件、UI组件进阶、Fragment 组件、线程间通信、数据存储、网络通信、Service 组件、广播、应用程序间的数据共享。
本书适合Android初学者入门使用,也可作为高等院校相关课程的教材,还可作为Android程序员的参考用书。
Android系统作为当今最为流行、最为普及的移动端操作系统之一,受到了广大开发人员的青睐。本书旨在引导开发人员快速入门Android程序设计,在学习本书前开发人员应具备Java语言的基础知识。
1. 本书内容简介
从准确意义上说,Android不是一门语言,而是一个程序设计框架。作为一个全新的程序设计框架,读者应将学习的重点集中在框架本身的功能及模块上。
本书以目前较为稳定的Android 9.0(API level 28)为基础,全面讲解了Android程序设计。全书共分为12章,涵盖了Android程序设计的必备知识点,每个知识点都对应了示例,秉承北京尚学堂实战化的教学理念,让大家高效学习,迅速进入开发者角色。
本书所涉及内容以Java程序设计为基础,建议在开设本书课程前应设置不少于32学时的Java程序设计课程。本书内容注重实践,建议教学时理论课时数不少于24学时,实验课时数不少于32学时。
本书第1~6章由山西农业大学史广编写,第7~12章由北京尚学堂科技有限公司高昱编写,全书由北京尚学堂科技有限公司高淇主审。
本书适合Android初学者入门使用,也可作为高等院校相关课程的教材,还可作为Android程序员的参考用书。
2. 丛书作者团队简介
本书为“百战程序员”系列丛书之一。本系列丛书由北京尚学堂科技有限公司组织编写。公司目前业务涵盖软件开发、技术培训、技术咨询、在线教育四大领域,事业部遍布国内十多个城市。公司目前与北京大学软件工程国家研发中心联合研发了“程序理解与代码正确性智能判断”技术,连续多年被新浪网、腾讯网授予“中国好老师”“金牌教育机构”等称号,具有丰富的软件开始经验与教材编写实力。这套“百战程序员”系列丛书涉及大数据、人工智能、Android开发、Java语言、C语言、Python语言等领域,其中每册书均配有一定的相关资源。
丛书编写组邮箱:book@sxt.cn,欢迎联系交流。
本系列丛书配套资料可扫描以下二维码获取:
三人行必有我师,如读者在阅读本系列丛书的过程中发现有不妥之处,望请指出,我们会不断改进、完善。
第1章 Android快速入门 1
1.1 Android系统概述 1
1.1.1 Android系统的版本更替 2
1.1.2 Android系统的特性 3
1.1.3 Android系统的体系结构 3
1.2 开发环境的搭建 5
1.2.1 开发工具 5
1.2.2 开发环境的搭建 5
1.3 Android项目的创建 11
1.3.1 创建项目 11
1.3.2 模拟器的配置 14
1.3.3 运行项目 15
1.4 Android项目的结构 16
1.5 日志工具Log的使用 19
习题 20
第2章 Activity组件 21
2.1 Activity简介 21
2.2 创建Activity 21
2.3 创建Layout 23
2.4 绑定Layout 24
2.5 Activity的生命周期 25
2.6 Activity的起死回生 26
2.7 Activity之间的切换 29
2.7.1 使用显式Intent 29
2.7.2 使用隐式Intent 32
2.7.3 Intent向下传递数据 33
2.7.4 Intent向上传递数据 35
2.8 Activity的启动模式 38
2.8.1 standard模式 39
2.8.2 singleTop模式 40
2.8.3 singleTask模式 40
2.8.4 singleInstance模式 43
习题 43
第3章 UI组件基础 44
3.1 View和ViewGroup 44
3.2 布局组件 45
3.2.1 LinearLayout(线性布局) 45
3.2.2 RelativeLayout(相对布局) 47
3.2.3 TableLayout(表格布局) 49
3.2.4 FrameLayout(帧布局) 52
3.2.5 GridLayout(网格布局) 54
3.2.6 AbsoluteLayout(绝对布局) 55
3.3 常用UI组件 56
3.3.1 TextView(文本框) 56
3.3.2 EditText (输入框) 58
3.3.3 Button(按钮) 59
3.3.4 ImageView(图像视图) 61
3.3.5 RadioButton(单选按钮) 64
3.3.6 CheckBox(复选框) 66
3.3.7 ProgressBar(进度条) 70
习题 72
第4章 AdapterView组件 73
4.1 AdapterView简介 73
4.2 Adapter简介 73
4.3 ListView组件 74
4.4 使用自定义Adapter填充ListView组件 75
4.5 使用ArrayAdapter填充ListView组件 79
4.6 使用SimpleAdapter填充ListView组件 80
4.7 ListView的事件 83
4.8 ListView的缓存机制 83
4.9 Spinner组件 85
4.10 RecyclerView组件 87
4.10.1 RecyclerView的基本使用 87
4.10.2 RecyclerView的布局管理器 90
4.10.3 RecyclerView的点击事件 93
习题 94
第5章 UI组件进阶 95
5.1 Dialog(对话框) 95
5.1.1 AlertDialog(提示对话框) 95
5.1.2 ProgressDialog(进度条对话框) 101
5.1.3 DatePickerDialog(日期选择对话框) 102
5.2 Menu(菜单) 104
5.2.1 OptionsMenu(选项菜单) 104
5.2.2 ContextMenu(上下文菜单) 106
5.2.3 SubMenu(子菜单) 109
5.3 Notification (通知) 111
5.3.1 Notification的使用 111
5.3.2 Notification的大视图风格 115
5.4 Toast(消息提示框) 118
5.4.1 Toast的使用 119
5.4.2 自定义Toast 122
5.5 样式和主题 123
5.5.1 样式 124
5.5.2 主题 125
5.6 单位和尺寸 125
习题 126
第6章 Fragment组件 127
6.1 Fragment简介 127
6.2 Fragment的生命周期 128
6.3 Fragment的静态加载 129
6.4 Fragment的动态加载 132
6.5 Fragment的回退栈 137
习题 139
第7章 线程间通信 140
7.1 Handler消息传递机制 140
7.2 Message对象 145
7.3 MessageQueue消息队列 146
7.4 Looper消息循环 146
7.4.1 Looper简介 147
7.4.2 主线程向子线程发送消息 147
7.5 AsyncTask异步任务执行类 149
习题 153
第8章 数据存储 154
8.1 文件存储 154
8.1.1 将数据存储到文件中 154
8.1.2 从文件中读取数据 157
8.2 SharedPreferences存储 160
8.2.1 数据写入SharedPreferences中 160
8.2.2 读取SharedPreferences中的数据 163
8.3 SQLite存储 165
8.3.1 创建数据库 166
8.3.2 升级数据库 169
8.3.3 增加数据 172
8.3.4 删除数据 175
8.3.5 修改数据 178
8.3.6 查询数据 182
习题 185
第9章 网络通信 186
9.1 HTTP协议 186
9.2 获取网络状态 186
9.3 使用WebView加载网页 190
9.4 使用HttpURLConnection发送HTTP请求 191
9.5 xml数据解析 195
9.6 json数据解析 196
习题 197
第10章 Service 组件 198
10.1 Service的生命周期 198
10.2 Service的创建 199
10.3 通过startService()方法启动Service 200
10.4 通过bindService()方法启动Service 203
10.5 使用IntentService实现Service的异步执行 206
10.6 使用AIDL实现Service的进程间通信 208
习题 216
第11章 广播 217
11.1 广播简介 217
11.2 广播接收者 218
11.3 接收系统广播 218
11.4 自定义广播 221
习题 225
第12章 应用程序间的数据共享 226
12.1 数据共享的原理 226
12.2 数据共享的权限 226
12.3 使用ContentResolver实现数据共享 230
12.4 使用ContentProvider实现数据共享 234
习题 242
附录 Android系统权限一览表 243
参考文献 248