Android应用与项目开发基础

更多详情

内容简介: 本书以CoffeeStore项目为主线,从Android基础开发、界面开发、数据存储和高级开发四部分来介绍Android的基础知识和高级应用,本书内容通俗易懂,简洁明了,实例丰富,书中所列程序易于读者理解和掌握,本书既注重理论的介绍,又强调实际的应用,从实用的角度出发,精心设计知识结构及代码实例,并配以大量的习题,让读者在阅读的过程中很轻松既能掌握计算机语言知识,又锻炼了实践能力。通过最后的项目实战,进一步加强了学生对Android知识的全面掌握,提高综合应用的能力。
本书既可以作为高校本、专科相关专业学生的课程用书,也可作为自学人员的参考资料。

目录: 第1篇开发准备——Android基础开发篇第1章初识Android平台3
1.1Android简介3
1.2Android的版本发展历程4
1.3Android的制胜法宝5
1.4Android的系统架构7
本章小结8
本章习题8第2章搭建Android开发与测试环境9
2.1安装Android开发环境9
2.1.1安装JDK10
2.1.2下载和安装Android Studio与Android SDK10
2.1.3Android Studio开发环境的使用14
2.2配置Android测试环境16
2.2.1使用Android模拟器运行Android程序16
2.2.2使用真机运行Android程序19
本章小结19
本章练习20第3章第一个Android应用程序21
3.1第一个Android程序: HelloWorld21
3.2Android程序结构24
3.3Android四大组件26
3.4Activity27
3.4.1创建和使用Activity273.4.2Activity的生命周期28
3.4.3初识Intent: 在不同Activity之间传递数据35
3.5知识拓展: Activity/ActionBarActivity/AppCompatActivity37
本章小结37
本章练习37第4章CoffeeStore项目导学38
4.1功能描述38
4.2体系结构与知识点39
4.3原型设计41
4.4数据库设计42
本章小结44
本章习题44第2篇界面开发——Android界面开发篇第5章Android布局管理器47
5.1线性布局管理器48
5.2相对布局管理器53
5.3表格布局管理器58
5.4网格布局管理器61
5.5帧布局管理器63
5.6向容器中手动添加控件67
5.7项目实战: CoffeeStore首页的界面开发69
5.7.1项目分析69
5.7.2项目实现70
5.7.3项目说明76
本章小结77
本章习题78第6章Android基本控件79
6.1文本类控件79
6.1.1TextView79
6.1.2AutoCompleteTextView84
6.1.3MultiAutoCompleTextView84
6.1.4EditText84
6.2ScrollView88
6.3按钮类控件90
6.3.1Button90
6.3.2ImageButton91
6.3.3ToggleButton94
6.3.4CheckBox94
6.3.5RadioButton95
6.4日期和时间类控件100
6.4.1DatePicker100
6.4.2TimePicker104
6.4.3DigitalClock108
6.4.4Chronometer108
6.5进度条控件ProgressBar112
6.6滑动条SeekBar112
6.7星级控件RatingBar113
6.8项目实战: 使用RadioButton实现主页底端导航条123
6.8.1项目分析123
6.8.2项目实现123
6.8.3项目说明125
6.9知识扩展:创建和使用自定义控件126
本章小结128
本章习题128第7章ViewPager与Fragment130
7.1ViewPager与PagerAdapter130
7.2Fragment及其应用场合135
7.3创建Fragment137
7.4初识Intent143
7.4.1Intent对象的基本概念143
7.4.2Intent对象的基本使用方法144
7.4.3使用Intent对象在Activity之间传递数据146
7.5Activity与Fragment之间的交互149
7.5.1为Activity创建事件回调方法149
7.5.2添加项目到ActionBar150
7.5.3与Activity生命周期的协调工作151
7.6项目实战: CoffeeStore主页滑动功能的实现151
7.6.1项目分析151
7.6.2项目实现151
7.6.3项目说明162
本章小结163
本章习题163第8章Android高级控件164
8.1Adapter对象164
8.2Spinner控件165
8.3ListView控件167
8.4ExpandableListView控件182
8.5GridView控件186
8.6HorizontalScrollView控件188
8.7项目实战: CoffeeStore首页广告轮播效果190
8.7.1项目分析190
8.7.2项目实现190
8.7.3项目说明191
8.8项目实战: CoffeeStore 店铺列表页192
8.8.1项目分析192
8.8.2项目实现192
8.8.3项目说明195
8.9项目实战: CoffeeStore首页推荐商品195
8.9.1项目分析195
8.9.2项目实现196
8.9.3项目说明197
本章小结198
本章习题198第9章资源样式与主题200
9.1资源200
9.2值资源202
9.2.1字符串资源202
9.2.2颜色资源204
9.2.3尺寸资源205
9.2.4数组资源206
9.3位图资源与色图资源207
9.4XML资源208
9.5菜单资源210
9.6对话框资源215
9.6.1提醒(Toast)对话框215
9.6.2AlertDialog218
9.6.3其他对话框资源223
9.7动画资源223
9.8风格资源与主题226
9.8.1风格资源226
9.8.2主题资源228
9.8.3图像状态资源230
9.9国际化(I18N)231
9.10项目实战: CoffeeStore中各种资源的使用233
9.10.1项目分析233
9.10.2项目实现234
9.10.3项目说明238
本章小结238
本章习题239第10章Android人机交互设计240
10.1常用事件240
10.1.1按键事件241
10.1.2触摸事件244
10.2拖拉与多点触屏247
10.3手势识别248
10.4项目实战: CoffeeStore 引导页图片切换的实现250
10.4.1项目分析250
10.4.2项目实现250
10.4.3项目说明254
本章小结254
本章习题254第3篇Android数据存储解决方案篇第11章本地存储技术259
11.1简单数据存储类SharedPreferences259
11.1.1SharedPreferences的使用场合259
11.1.2使用SharedPreferences存取数据260
11.2Android文件261
11.2.1文件数据的存储与读取261
11.2.2读写SD卡中的文件267
11.2.3读写资源文件271
11.3SQLite数据库274
11.3.1SQLite数据库存储数据概述274
11.3.2使用SQLiteOpenHelper类管理数据库版本274
11.3.3使用SQLiteDatabase操作数据库276
11.3.3一起发布数据库与应用程序279
11.4项目实战: CoffeeStore启动页安装信息的存取280
11.4.1项目分析280
11.4.2项目实现280
11.4.3项目说明281
11.5项目实战: 读取数据库文件281
11.5.1项目分析281
11.5.2项目实现281
11.5.3项目说明284
11.6项目实战: CoffeeStore项目中本地收藏夹的实现284
11.6.1项目分析284
11.6.2项目实现284
11.6.3项目说明294
本章小结295
本章习题296第12章网络存储技术297
12.1异步任务297
12.1.1异步任务的使用场合297
12.1.2异步任务类298
12.2JSON数据解析300
12.2.1JSON简介300
12.2.2JSON的基本语法301
12.2.3JSON的解析302
12.3HttpURLConnection304
12.3.1HTTP通信接口304
12.3.2HttpURLConnection的常用方法304
12.4利用异步任务读取服务器端图片信息306
12.5项目实战: 登录功能307
12.5.1项目分析307
12.5.2项目实现307
12.5.3项目说明317
12.6项目实战: 店铺列表功能317
12.6.1项目分析317
12.6.2项目实现318
12.6.3项目说明321
本章小结322
本章习题322第4篇Android高级开发篇第13章深入学习Intent327
13.1PendingIntent327
13.2Intent过滤器328
13.3运行时权限331
本章小结345
本章习题345第14章广播与服务346
14.1广播的定义与用途346
14.2广播接收器的实现347
14.3服务的基本概念351
14.4服务的生命周期353
本章小结358
本章习题358第15章地图与定位359
15.1位置服务359
15.2地图的定义与显示360
15.2.1申请地图密钥360
15.2.2地图的显示361
15.3地图的定位及路线规划365
15.3.1定位原理365
15.3.2定位与路线规划366
本章小结374
本章习题374参考文献375附录ARGB颜色对照表377

前言: 《Android应用与项目开发基础》根据Android课程的能力要求和学生的认知规律精心组织了教材内容。
本书是编写课程组所有教师在移动互联网应用开发课程中多年一线授课及项目开发和实训、实践的结晶。本书以CoffeeStore项目为主线,通过Android基础开发、界面开发、数据存储和高级开发四部分介绍Android的基础知识和高级应用,每个章节都配有项目实战和习题,是一本集理论知识、实验项目和课后习题为一体的综合性图书。本书从工程实践的理念出发,以一个课程项目贯穿始终,全面讲述了Android的基础知识和核心技术。本书经过作者的精心设计,并配以大量案例和习题,案例既能阐明原理和方法,又具有一定的实用性。本书融教、学、练三者于一体,适合“项目驱动、案例教学、理论实践一体化”的教学模式。
本书编写组成员在移动互联网应用开发领域有丰富的开发和教学经验。近几年指导学生参加多项移动互联网开发领域的比赛,开展大学生创新创业项目,都取得了较好的成绩,且项目组成员与公司合作开发的APP项目已上线推广使用。本书的编写充分发挥了各位教师所长,第1~4、11章由付丽梅编写,第5~7章由邵欣欣编写,第8~10章由严凤龙编写,第12章由刘冰月编写,第13~15章由王洪岩编写,全书最后由邵欣欣和付丽梅统一修改定稿。书中所有例题及相关代码都已在Android Studio开发环境中测试通过。
本书的基本结构与内容组织如下。
1. 基本结构
本书共分4篇,15章,以CoffeeStore App的项目构思、设计、实施和运行贯穿始终。内容涵盖Android 应用程序的基本工作原理、Android界面技术、组件技术、本地存储技术、网络存储技术、服务与广播、定位与地图等多方面的知识。既强调理论,又重视应用。
本书的章节组织如下页所示。
2. 内容组织
本书以项目为导引组织教材内容,下面详细介绍篇和章的内容。
第1篇开发准备——Android基础开发篇
第1章初识Android平台: 介绍Android开发平台的基本概念、版本发展历程以及系统架构。
第2章搭建Android开发与测试环境: 开发环境的安装及模拟器的创建。
第3章第一个Android应用程序: Android程序的基本结构、Android四大组件以及Activity的生命周期和不同Activity之间的传值。
第4章CoffeeStore项目导学: 讲解课程项目CoffeeStore的功能需求、体系结构与原型设计和数据库设计。
第2篇界面开发——Android界面开发篇
第5章Android布局管理器: 线性、相对、表格、网格、帧等常用布局管理器的用法,以及如何向容器中手动添加控件。
第6章Android基本控件: 文本类、按钮类、日期和时间类、进度条、滑动条控件以及星级控件的用法。
第7章ViewPager与Fragment: ViewPager与PagerAdapter的用法、Fragment和Intent的用法、Activity与Fragment之间的交互。
第8章Android高级控件: Adapter对象、Spinner、Listview、ExpandableListView、GridView以及HorizontalScrollView等高级控件的用法。
第9章资源样式与主题: 值资源、位图和色图资源、XML资源、菜单资源、对话框资源、动画资源、风格资源与主题的用法。
第10章Android人机交互设计: Android常用事件、拖拉与多点触屏、手势识别的实现。第3篇Android数据存储解决方案篇
第11章本地存储技术: 简单数据存储类、Android文件以及SQLite数据库的应用。
第12章网络存储技术: 异步任务类、JSON数据解析以及HttpURLConnection的应用。
第4篇Android高级开发篇
第13章深入学习Intent: 使用Intent与PendingIntent实现发短信、打电话及系统通知的功能。
第14章广播与服务: 广播的基本概念、广播的实现方式,服务的基本概念、服务的生命周期等知识。
第15章地图与定位: 地图的定义与显示、地图的定位及路线规划的实现。
由于编者的水平和时间有限,本书的错误和不足在所难免,恳请同行专家和广大读者批评指正。
编者2018年1月于大连

书摘: 第5章Android布局管理器
本章概述
通过本章的学习,读者应掌握Android的布局管理器,实现界面组件的合理布局,包括线性布局管理器、相对布局管理器、表格布局管理器、网格布局管理器、帧布局管理器、布局管理器的嵌套与综合运用,向容器中手动添加控件。
学习重点与难点
重点:
(1) 线性布局管理器。
(2) 相对布局管理器。
(3) 表格布局管理器。
(4) 网格布局管理器。
(5) 帧布局管理器。
难点:
(1) 布局管理器的嵌套与综合运用。
(2) 向容器中手动添加控件。
学习建议
读者在学习中要深入理解Android中各个布局管理器的常用参数,多看案例,多思考,多动手实践,熟练地综合应用各个布局管理器,从而搭建出需要实现的界面。
界面布局(Layout)是用户界面结构的描述,定义了界面中所有的元素、结构和相互关系。在Android中,每个控件在窗体中都有具体的位置和尺寸,在窗体中摆放各种控件时,很难准确判断控件的具体位置和大小,而使用Android的布局管理器可以很方便地控制各个控件的位置和大小。Android中的布局是一个容器,在此容器中可放置其他控件,大部分容器控件继承于ViewGroup类,Android中提供了线性布局、相对布局、表格布局、网格布局、帧布局五种布局管理器。对应这五种布局管理器,Android提供了五种布局方式,下面就依次讲解这五种布局,为完成CoffeeStore项目打下基础。5.1线性布局管理器
线性布局(LinearLayout)是最简单的一种布局,这种布局比较常用,它按照垂直或者水平的顺序依次排列子元素,每一个子元素都位于前一个元素之后。如果是垂直排列,那么将是一个N行单列的结构,每一行只会有一个元素,不限制元素的宽度;如果是水平排列,那么将是一个单行N列的结构。如果搭建两行两列的结构,通常的方式是先垂直排列两个元素,每一个元素里再包含一个LinearLayout,进行水平排列。
线性布局有4个重要的参数,决定元素的布局和位置,这4个参数如下。
① android:layout_weight: 线性布局内子元素对未占用空间(水平或垂直)分配权重值,值越小,权重越大。
② android:orientation: 线性布局以列或行来显示内部子元素。
③ android:layout_gravity: 是本元素相对于父元素的重力方向。
④ android:gravity: 是本元素所有子元素的重力方向。