新書推薦:
《
城邦政治与灵魂政治——柏拉图《理想国》中的政治哲学研究
》
售價:NT$
590.0
《
3分钟漫画墨菲定律:十万个为什么科普百科思维方式心理学 胜天半子人定胜天做事与成事的权衡博弈之道
》
售價:NT$
249.0
《
1911:危亡警告与救亡呼吁
》
售價:NT$
349.0
《
旷野人生:吉姆·罗杰斯的全球投资探险
》
售價:NT$
345.0
《
笼中王国 : 18世纪法国的珍禽异兽与社会文化
》
售價:NT$
340.0
《
思考的框架3:风靡华尔街的思维训练法
》
售價:NT$
295.0
《
被记忆的西周史(中山大学中珠学术译丛)
》
售價:NT$
690.0
《
森林疗法:拥抱大自然、获得幸福的季节性方法
》
售價:NT$
340.0
|
編輯推薦: |
《Web前端设计与开发HTML CSS JavaScript HTML 5 jQuery》的特色是采用了贯穿项目,Q-WFE&S上线级项目贯彻全书,每个章节的任务均是在前一章节的基础上进行实现,对项目逐步进行迭代、升级,*终形成一个完整的项目,并将Web前端课程重点技能点进行强化应用。通过贯穿项目以点连线、多线成面,使得读者能够快速理解并掌握各项重点知识,全面提高分析问题、解决问题以及动手编码的能力。《Android程序设计与开发Android Studio版》对Android技术进行深入剖析和全面讲解,书中所有代码基于Android 5.0版本,且均在Android Studio开发环境下进行调试和运行。本书重点突出、强调动手操作能力,以一个项目贯穿所有章节的任务实现,使得读者能够快速理解并掌握各项重点知识,全面提高分析问题、解决问题以及动手编码的能力。本书配套的相关资源:教学大纲、教学PPT、示例源代码和考试大纲。在实践中成长丛书:? Java 8基础应用与开发? Java 8高级应用与开发? Java Web技术及应用? Java EE轻量级框架应用与开发S2SH? Web前端设
|
內容簡介: |
本书对Android技术进行深入剖析和全面讲解,内容涵盖Android基本理论、Activity、基础UI编程、高级UI编程、Intent、BroadcastReceiver、SQLite数据存储、ContentProvider数据共享、Service服务及网络编程等。 书中所有代码基于Android 5.0版本,且均在Android Studio开发环境下进行调试和运行; 内容涉及Android 5.0、Android 6.0和Android 7.0版本新特性以及Android Studio环境常用配置和程序签名。 本书重点突出,强调动手操作能力,以一个项目贯穿所有章节的任务实现,使得读者能够快速理解并掌握各项重点知识,全面提高分析问题、解决问题以及动手编码的能力。 本书适用面广,可作为高校、培训机构的Android教材,适合作为计算机科学与技术、软件外包、计算机软件、计算机网络、电子商务等专业的程序设计课程的教材。
|
目錄:
|
目录
第1章Android概述
1.1Android简史
1.2Android系统
1.2.1Android系统架构
1.2.2Android应用程序组件
1.3Android开发环境搭建
1.3.1下载并安装JDK
1.3.2下载并安装Android Studio
1.4Hello Android程序
1.4.1第一个Android项目
1.4.2Android程序结构
1.5贯穿任务实现
1.5.1实现【任务1-1】
1.5.2实现【任务1-2】
1.5.3实现【任务1-3】
本章总结
Q&A
章节练习
习题
上机
第2章Activity和Application
2.1Activity
2.1.1Activity简介
2.1.2创建Activity
2.1.3Activity的生命周期
2.2资源管理
2.2.1资源分类
2.2.2资源访问方式
2.2.3strings.xml文本资源文件
2.2.4colors.xml颜色设置资源文件
2.2.5dimens.xml尺寸定义资源文件
2.2.6styles.xml主题风格资源文件
2.2.7drawable图像资源目录
2.3AndroidManifest.xml清单文件
2.4Android应用程序生命周期
2.5Application类
2.5.1Application生命周期事件
2.5.2实现Application
2.6样式和主题
2.7贯穿任务实现
2.7.1实现【任务2-1】
2.7.2实现【任务2-2】
2.7.3实现【任务2-3】
2.7.4实现【任务2-4】
本章总结
小结
Q&A
章节练习
习题
上机练习
第3章UI编程基础
3.1Android UI元素
3.1.1视图
3.1.2视图容器
3.1.3布局管理
3.1.4Fragment
3.2界面布局
3.2.1线性布局
3.2.2表格布局
3.2.3相对布局
3.2.4绝对布局
3.3事件处理
3.3.1基于监听的事件处理
3.3.2基于回调机制的事件处理
3.4Widget简单组件
3.4.1Widget组件通用属性
3.4.2TextView文本框
3.4.3EditText编辑框
3.4.4Button按钮
3.4.5单选按钮和单选按钮组
3.4.6CheckBox复选框
3.4.7开关控件
3.4.8图片视图ImageView
3.5Dialog对话框
3.5.1AlertDialog提示对话框
3.5.2ProgressDialog进度对话框
3.6贯穿任务实现
3.6.1实现【任务3-1】
3.6.2实现【任务3-2】
3.6.3实现【任务3-3】
本章总结
小结
Q&A
章节练习
习题
上机
第4章UI进阶
4.1Fragment
4.1.1使用Fragment
4.1.2Fragment的生命周期
4.2Menu和Toolbar
4.2.1Menu菜单
4.2.2Toolbar操作栏
4.3高级组件
4.3.1AdapterView与Adapter
4.3.2ListView列表视图
4.3.3GridView网格视图
4.3.4TabHost
4.3.5WebView
4.4贯穿任务实现
4.4.1实现【任务4-1】
4.4.2实现【任务4-2】
4.4.3实现【任务4-3】
4.4.4实现【任务4-4】
4.4.5实现【任务4-5】
4.4.6实现【任务4-6】
本章总结
小结
Q&A
章节练习
习题
上机
第5章Intent与BroadcastReceiver
5.1Intent意图
5.1.1Intent原理及分类
5.1.2Intent属性
5.1.3使用Intent启动Activity
5.1.4Intent Filter过滤器
5.2BroadcastReceiver
5.3Handler消息传递机制
5.3.1Handler简介
5.3.2Handler的工作机制
5.4AsyncTask类
5.5贯穿任务实现
5.5.1实现【任务5-1】
5.5.2实现【任务5-2】
5.5.3实现【任务5-3】
本章总结
小结
Q&A
章节练习
习题
上机
第6章数据存储
6.1数据存储简介
6.2文件存储
6.2.1IO流操作文件
6.2.2读写SD卡文件
6.2.3文件浏览器
6.3使用SharedPreferences
6.3.1SharedPreferences和SharedPreferences.Editor接口
6.3.2SharedPreferences操作步骤
6.4SQLite数据库
6.4.1SQLite简介
6.4.2SQLiteDatabase类
6.4.3SQLite数据库的创建和删除
6.4.4表的创建和删除
6.4.5记录的插入、修改和删除
6.4.6数据查询与Cursor接口
6.4.7事务处理
6.4.8SQLiteOpenHelper类
6.4.9使用ListView滑动分页
本章总结
小结
Q&A
章节练习
习题
上机
第7章ContentProvider数据共享
7.1ContentProvider简介
7.1.1ContentProvider类
7.1.2ContentResolver类
7.2开发ContentProvider程序
7.2.1编写ContentProvider子类
7.2.2注册ContentProvider
7.2.3使用ContentProvider
7.3操作系统的ContentProvider
7.3.1管理联系人
7.3.2管理多媒体
本章总结
小结
Q&A
章节练习
习题
上机
第8章Service服务
8.1Service简介
8.1.1Service分类
8.1.2Service基本示例
8.2Service详解
8.2.1Start方式启动Service
8.2.2Bind方式启动Service
8.2.3混合方式的Service
8.2.4前台Service
8.2.5Service中执行耗时任务
8.2.6远程Service
8.3系统自带Service
8.3.1NotificationManager
8.3.2DownloadManager
本章总结
小结
Q&A
章节练习
习题
上机
第9章网络编程
9.1网络编程简介
9.2基于TCP协议的网络通信
9.2.1Socket
9.2.2ServerSocket
9.3使用HttpURLConnection
9.3.1URL和URLConnection
9.3.2HttpURLConnection
9.4使用HttpClient
9.5使用WebView视图浏览网页
9.6Volley框架
本章总结
小结
Q&A
章节练习
习题
上机
附录AAndroid版本新特性
A.1Android 5.0新特性
A.2Android 6.0新特性
A.3Android 7.0新特性
附录B常用的Android Studio选项设置
B.1Android Studio基本配置
B.2Android Studio快捷键
B.3Android Studio导入Eclipse ADT项目
B.3.1步骤
B.3.2常见问题
附录CAndroid应用程序签名
C.1DOS命令完成apk签名
C.2在Android Studio中完成apk签名
|
內容試閱:
|
前言
当今IT产业发展迅猛,各种技术日新月异,在发展变化如此之快的年代,学习者已经变得越来越被动。在这种大背景下,如何快速地掌握一门技术并做到学以致用,是很多人关心的问题。一本书、一堂课只是学习的形式,而真正能够达到学以致用的目的,则需要融合在书及课堂上的学习方法,使学习者具备学习技术的能力。为适应工程教育人才培养课程的改革要求,以能力为导向,培养能够解决复杂工程问题的、高素质的应用型软件人才。青岛科技大学青软国际软件学院与QST青软实训积极探索产教深度融合、校企协同育人的人才培养模式,实现专业链与产业链、课程内容与职业标准、教学过程与生产过程的对接。通过多年的合作与探索,集高校教师的完备知识体系与企业教师的丰富实践经验,完成本教材。本书不再是知识点的铺陈,而是致力于将知识点融入实际项目的开发中,达到系统化的学习目的。本书的特色是采用一个GIFT-EMS礼记项目,将所有章节重点技术进行贯穿,每章项目代码会层层迭代不断完善,最终形成一个完整的系统。通过贯穿项目以点连线、多线成面,使得读者能够快速理解并掌握各项重点知识,全面提高分析问题、解决问题以及动手编码的能力。1. 创新点及优势1 面向学习者以一个完整的项目贯穿技术点,以点连线、多线成面,通过项目驱动学习方法使学习者轻松地将技术学习转化为技术能力。2 面向高校教师为教学提供完整的课程产品组件及服务,满足高校教学各个环节的资源需求。2. 项目简介GIFT-EMS礼记项目是一个针对送礼的移动端App,以推荐礼物、购买礼物、送礼攻略等功能为核心,收集时下潮流的礼物和送礼物的方法,为用户呈现热门的礼物攻略,通过送给TA等功能,旨在帮助用户给恋人、家人、朋友、同事制造生日、节日、纪念日的惊喜。GIFT-EMS礼记系统主要分为Android移动端App和服务器端两部分,鉴于本书主要讲解Android编程,并且服务器端在《Java EE轻量级框架应用与开发S2SH》一书中已详细介绍,因此本书中主要介绍Android移动端App的功能及实现。在GIFT-EMS礼记移动端App的实现过程中,使用了Application、Activity、Service、Broadcast Receiver、数据存储、网络应用、复杂UI等关键技术,以及目前流行的一些实现常见功能的开源类库,例如JSON解析库Gson、日历控件KCalendar、二维码扫描库ZBarDecoder和图片加载库Universal-Image-Loader等。3. 贯穿项目模块
GIFT-EMS礼记移动端App贯穿项目的模块实现穿插于本书的所有章节中,每个章节在前一章节的基础上进行任务实现,对项目逐步进行迭代、升级,最终形成一个完整的项目,并将Android课程的重点技能点进行强化应用。读者可以按照Step-By-Step的方式去学习、研究。
4. 章节任务实现
章目标贯穿任务实现
第1章
Android概述熟悉Android开发环境【任务1-1】使用Android SDK Manager
【任务1-2】使用Android 模拟器(Intel x86架构)
【任务1-3】ADB工具的使用第2章
Activity和Application项目需求分析及基本架构设计【任务2-1】项目背景介绍及需求分析
【任务2-2】创建项目并编写实体类和Application类等基础架构
【任务2-3】编写项目中Activity、按钮、文本输入框等控件所使用的背景文件
【任务2-4】编写项目的样式文件
第3章
UI编程基础主界面及功能Activity【任务3-1】编写主界面Activity
【任务3-2】编写各个业务Activity的父类BaseActivity
【任务3-3】编写项目辅助功能对应的Activity第4章
UI进阶礼品和送礼攻略【任务4-1】礼品和送礼攻略的列表界面
【任务4-2】礼品展示界面
【任务4-3】攻略展示界面
【任务4-4】完成收礼人列表界面
【任务4-5】完成收礼人编辑界面
【任务4-6】完成我的收藏界面第5章
Intent与BroadcastReceiver用户日程【任务5-1】完成用户日程界面
【任务5-2】完成用户日程编辑界面
【任务5-3】完成用户日程提醒功能
第6章
数据存储保存用户相关信息数据【任务6-1】完成保存用户登录信息功能
【任务6-2】完成设置信息保存功能
【任务6-3】完成购物袋功能
续表
章目标贯穿任务实现
第7章
ContentProvider数据共享购买下单【任务7-1】 完成购买下单功能,可以从通讯录中获取联系人
【任务7-2】 完成订单列表和订单回收站功能
第8章
Service服务赠礼留言、二维码扫描机用户日程提醒Service【任务8-1】完成录制赠礼留言功能
【任务8-2】完成扫描二维码功能
【任务8-3】完成播放赠礼留言功能
【任务8-4】完成日程提醒的Service第9章
网络编程移动端App与服务器端的交互【任务9-1】编写HttpUtils类封装采用HTTP方式与服务器交互时的GET、POST请求调用
【任务9-2】修改BaseActivity,完成与服务器交互数据的Handler模板
【任务9-3】修改登录Activity,改为从服务器验证登录
【任务9-4】引入Android-Universal-Image-Loader库,用于显示网络图片
【任务9-5】修改礼物类型列表Activity,改为从服务器查询数据
5. 项目运行截图
首页
登录、注册界面
个人中心
设置及软件更新
礼品中心和礼品攻略
添加日程和日程提醒闹钟界面
6. 致谢本书由青岛科技大学青软国际软件学院与QST青软实训共同编著,刘国柱、杜军威、刘全、李战军、金澄、郭晓丹、江守寰、张瑞全、陶冶、赵克玲、郭全友等多名老师参与本书编写和审核工作,赵克玲负责全书统稿和修订工作。编者均从事计算机教学和项目开发多年,拥有丰富的教学和实践经验,在编写过程中付出了辛勤的汗水。除此之外,青岛科技大学青软国际软件学院的10 000多名学生也参与了本书的试读工作,并从初学者角度对教材提出了许多宝贵的意见,在此一并表示衷心感谢。由于时间有限,书中难免有疏漏和不足之处,恳请广大读者及专家不吝赐教。我们真诚地希望能与读者共同交流、共同成长,待再版时日臻完善,是所至盼。本书免费提供配套资源: 教学PPT、示例源代码,请到book.moocollege.cn下载。联系方式:E-mail: QST_book@itshixun.com400电话: 400-658-0166
编者2017年4月
第3章UI编程基础
本章任务是完成GIFTEMS礼记的主界面及功能Activity: 【任务31】编写主界面Activity。 【任务32】编写各个业务Activity的父类BaseActivity。 【任务33】编写GIFTEMS礼记的辅助功能对应的Activity。
本章目标
知识点Listen(听)Know(懂)Do(做)Revise(复习)Master(精通)
UI元素★★
页面布局★★★★★
续表
知识点Listen(听)Know(懂)Do(做)Revise(复习)Master(精通)
事件处理★★★★
Widget简单组件★★★★★Dialog使用★★★★
3.1Android UI元素
用户界面User Interface,UI设计是指对软件人机交互、操作逻辑、界面美观的整体设计。良好的UI设计不仅让软件变得更加人性化,还让软件的操作变得舒适、简单、自由,充分体现了软件的定位和特点。Android借鉴了Java中的UI设计思想,包括事件响应机制和布局管理,提供了丰富的可视化用户界面组件,例如菜单、对话框、按钮和文本框等。Android中界面元素主要由以下几个部分构成。●视图View: 视图是所有可视界面元素通常称为控件或小组件的基类,所有UI控件都是由View类派生而来的。●视图容器ViewGroup: 视图容器是视图类的扩展,其中包含多个子视图。通过扩展ViewGroup类,可以创建由多个相互连接的子视图所组成的复合控件,还可以创建布局管理器,从而实现Activity中的布局。●布局管理Layout: 布局管理器是由ViewGroup派生而来,用于管理组件的布局格式,组织界面中组件的呈现方式。●Activity: 用于为用户呈现窗口或屏幕,当程序需要显示一个UI界面时,需要为Activity分配一个视图通常是一个布局或Fragment。●Fragment: Fragment是Android 3.0引入的新API,代表了Activity的子模块,即Activity片段Fragment本身就是片段的意思。Fragment可用于UI的各个部分,特别适合针对不同屏幕尺寸,优化UI布局以及创建可重用的UI元素。每个Fragment都包含自己的UI布局,并接收相应的输入事件,但使用时必须与Activity紧密绑定在一起Fragment必须嵌入到Activity中。因此,一个复杂的Android界面设计往往需要不同的组件组合才能实现,有时需要对这些标准视图进行扩展或者修改,从而提供更好的用户体验。3.1.1视图View视图组件是用户界面的基础元素,View对象是Android屏幕上一个特定的矩形区域的布局和内容属性的数据载体,通过View对象可实现布局、绘图、焦点变换、滚动条、屏幕区域的按键、用户交互等功能。Android应用的绝大部分UI组件都放在android.widget包及其子包中,所有这些UI组件都继承了View类。View的常见子类及功能如表31所示,本章将对这些View组件进行重点讲解。
表31View类的主要子类
类名功 能 描 述类名功 能 描 述
TextView文本视图DigitalClock数字时钟EditText编辑文本框AnalogClock模拟时钟Button按钮ProgessBar进度条Checkbox复选框RatingBar评分条RadioGroup单选按钮组SeekBar搜索条Spinner下拉列表GridView网格视图AutoCompleteTextView自动完成文本框ListView列表视图DataPicker日期选择器ScrollView滚动视图TimePicker时间选择器
3.1.2视图容器View类还有一个非常重要的ViewGroup子类,该类通常作为其他组件的容器使用。View组件可以添加到ViewGroup中,也可以将一个ViewGroup添加到另一个ViewGroup中。Android中的所有UI组件都是建立在View、ViewGroup基础之上,Android采用了组合器模式来设计View和ViewGroup; 其中ViewGroup是View的子类,因此ViewGroup可以当成View来使用。对于一个Android应用的图形UI而言,ViewGroup又可以作为容器来盛装其他组件; ViewGroup不仅可以包含普通的View组件,还可以包含其他ViewGroup组件。Android图形UI的组件层次如图31所示。
图31UI组件层次图
注意图31来自Android开发文档,对于每个Android程序员而言,Android提供的官方文档需要仔细阅读。
ViewGroup类提供的主要方法如表32所示。
表32ViewGroup类的方法功能
方法功 能 描 述
ViewGroup构造方法void addViewView child用于添加子视图,以View作为参数,将该View增加到当前视图组中
续表
方法功 能 描 述
removeViewView view将指定的View从视图组中移除updateViewLayoutView view,ViewGroup.LayoutParams params用于更新某个View的布局void bringChildToFrontView child将参数所指定的视图移动到所有视图之前显示boolean clearChildFocusView child清除参数所指定的视图的焦点boolean dispatchKeyEventKeyEvent event将参数所指定的键盘事件分发给当前焦点路径的视图。当分发事件时,按照焦点路径来查找合适的视图。若本视图为焦点,则将键盘事件发送给自己; 否则发送给焦点视图boolean dispatchPopulateAccessibilityEventAccessibilityEvent event将参数所指定的事件分发给当前焦点路径的视图boolean dispatchSetSelectedboolean selected为所有的子视图调用setSelected方法
注意ViewGroup继承了View类,虽然可以当成普通的View来使用,但习惯上将ViewGroup当容器来使用。由于ViewGroup是一个抽象类,在实际应用中通常使用ViewGroup的子类作为容器,例如各种布局管理器。
1.ViewGroup继承结构ViewGroup的继承者大部分位于android.widget包中,其直接子类包括AdapterView、AbsoluteLayout、FrameLayout、LinearLayout和RelativeLayout等类。以上直接子类又分别具有子类,ViewGroup继承者的体系结构如图32所示。
图32ViewGroup继承者的体系结构
如图32所示,ViewGroup直接子类均可作为容器来使用,这些类为子类提供不同的布局方法,用于设置子类之间的位置和尺寸关系。ViewGroup类的间接子类中,有些不能作为容器来使用,仅能当作普通的组件来使用。2. 布局参数类在Android布局文件中,每个组件所能使用的XML属性有以下三类: 组件本身的XML属性、组件祖先类的XML属性、组件所属容器的布局参数。其中,布局参数是包含该组件的容器例如ViewGroup子类所提供的参数。在Android中,ViewGroup子类都有一个相应的{XXX}.LayoutParams静态子类,用于设置子类所使用的布局方式。这些子类继承关系和ViewGroup子类的继承关系具有相似性。ViewGroup容器使用ViewGroup.LayoutParams和ViewGroup.MarginLayoutParams两个内部类来控制子组件在其中的分布位置,这两个内部类中都提供了一些XML属性,ViewGroup容器中的子组件通过指定XML属性来控制组件的位置,如表33所示。
表33ViewGroup子元素支持的属性
XML属性功 能 描 述
android:layout_width设定该组件的子组件布局的宽度android:layout_height设定该组件的子组件布局的高度
android:layout_height和android:layout_width属性都支持以下三个属性值:(1) fill_parent属性用于指定子组件的高度、宽度与父容器的高度、宽度相同;(2) match_parent与fill_parent的功能完全相同,从Android 2.2开始推荐使用该属性值来代替fill_parent;(3) wrap_content属性用于指定子组件的大小恰好能包裹其内容即可。
注意在实际应用中,除了为组件指定高度、宽度,还需要设置布局的高度、宽度,这是由Android的布局机制决定的。Android组件的大小不仅由实际的宽度、高度控制,还由布局的高度、宽度控制。例如一个组件的宽度为30px,如果将其布局宽度设置为match_parent,那么该组件的宽度将会被拉宽并占满其所在的父容器; 如果将其布局宽度设为wrap_content,那么该组件的宽度才会是30px。
ViewGroup.MarginLayoutParams用于控制子组件周围的页边距即组件四周的留白,所支持的XML属性如表34所示。
表34MarginLayoutParams支持的属性
XML属性功 能 描 述
|
|