广东海洋大学软件工程课程设计报告书_第1页
广东海洋大学软件工程课程设计报告书_第2页
广东海洋大学软件工程课程设计报告书_第3页
广东海洋大学软件工程课程设计报告书_第4页
广东海洋大学软件工程课程设计报告书_第5页
已阅读5页,还剩10页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生课程设计课程名称软件工程课程设计课程编号16532115学号学生姓名所在专业计算机科学与技术所在班级指导老师孙兵成果老师签字评语:目录摘要 31 引言 41.1 课题背景 21.2 项目的目的及意义 31.3 国内外现状与发展 32 基于安卓平台的新闻客户端所用关键技术 42.1 JSON数据传输格式 52.2 SQLite数据库 52.3 SP存储 52.4 Volley网络通讯框架 53 基于安卓平台的新闻客户端需求分析 63.1 系统描述 63.2 新闻客户端功能性需求分析 63.3 系统非功能性需求分析 64 基于安卓平台的新闻客户端概要设计 84.1系统架构设计 64.2系统客户端总体架构 84.3 系统客户端功能模块划分 84.2数据库设计 85 基于安卓平台的新闻客户端的设计与实现 85.1新闻模块的设计与实现 85.2跟帖模块的设计与实现 105.3图片模块的设计与实现 135.4网络恳求方案的设计与实现 146 系统测试与总结 156.1测试 146.2总结 15参考文献 15摘要随着移动互联网行业的蓬勃发展,新闻客户端带领新闻资讯阅读者进入了新媒体时代。新闻客户端具有便携性、内容丰富、刚好性和用户体验优秀四个特点。新闻客户端的设计在于供应应新闻资讯阅读者一个开放的平台,以充分表达个人观点为主旨,让用户成为有看法的新闻阅读者。供应优质丰富的内容资源和优秀的用户体验,同时供应多种阅读方式以提高新闻获得效率。以专业人员调研得到的市场需求分析结果为依据,本文描述了基于Android平台的新闻客户端的设计与实现。该新闻客户端共分为七个主要功能模块,包括新闻、跟帖、投票、图片和订阅等。本文首先分析了新闻客户端项目的背景以及国内外同类产品的发呈现状,阐述了项目意义并提出项目的最终目标,然后描述了本项目所应用到的各项关键技术,接着对新闻客户端做了功能与非功能方面的需求分析,以需求分析为基础,针对本项目的整体做了架构设计,最终针对各个功能模块做出设计与实现方案。本人在整个项目研发过程中,参加到客户端的需求分析、概要设计、具体设计、编码实现、测试修改等工作。该新闻客户端的编码实现工作由本人独立完成,具体功能模块包括:新闻、订阅、跟帖、图片、投票、个人中心、设置。模块设计过程中遵循软件工程设计思想,满意需求的同时具有良好的可维护性与可扩展性,便利维护升级。新闻、订阅、图片功能模块涉及到频繁获得网络图片的操作,通过对比分析Android平台网络通信技术,最终选取运用Volley网络通信框架,该框架的运用更加敏捷并支持功能自定义,同时运用JSON数据交互格式,提高数据传输效率。论文最终展示了项目的最终运行结果。本项目己通过测试团队的测试,发布在安卓应用商店中,第三方数据收集结果显示本应用运行正常。关键词:新闻客户端;Android平台;新媒体;移动产品;Volley;JSON新闻客户端的设计与实现计算机科学与技术专业,指导老师:孙兵引言本章主要介绍了项目的背景,通过对比国内外的发展状况,提出项目须要解决的问题,同时针对当前的问题提出了基本的解决方案,描述项目的基本目标,同时阐述了实现该项目的意义及目的。1.1课题背景随着智能手机和平板电脑的普及,移动互联网行业发展快速,用户数量日益浩大。截至2012年9月底,全球移动互联网用户已经达到15亿,强大的用户基群产生了竞争激烈的移动应用市场,传统媒体和门户网站也随之发生变更。传统的热门门户网站:网易、腾讯、新浪、搜狐等业内领先者纷纷发布手机客户端。新闻应用的发展与用户的资讯信息获得需求密不行分,在信息爆炸的互联网时代,用户对新闻获得的途径也发生变更,在新媒体时代,利用互联网来获得新闻消息已经成为必定的趋势,网络成为传播新闻资讯的首要媒介,之所以新闻客户端具有强大生命力是因为相比于传统媒体,客户端具有如下的优势:(1)便携性:智能手机与平板电脑都可随身携带,并且智能手机渐渐成为用户的生活必备品。(2)海量获得:同以往的报纸,杂志,新闻周刊等传统媒介不同,新闻客户端承载的信息量远远大于传统媒体的内容,内容丰富成为其重要特征之一。(3)刚好性:新闻本身具备即时性,这一特点可以利用新闻客户端完好的体现,随着无线网络的发展,智能设备的运用者能够随时随地获得最新的新闻消息。(4)优秀的用户体验:新闻阅读者可以通过智能设备进行特性化定制,订阅各具特色的新闻栏目,支持新闻评论,供应新闻阅读者之间的互动。1.2项目目的及意义在支持新闻获得的基本功能的基础上,增加跟帖与投票功能,让新闻应用更加开放友好,便利表达新闻阅读者对新闻事务的看法,成为有看法的新闻资讯体验者。投票功能体现出真实的民意,图片新闻的资源整合与分类和听新闻功能都为用户供应了高效便捷的新闻获得途径,提高用户的新闻获得效率,优秀的多媒体资源获得技术给用户带来更便捷的用户体验。Android新闻客户端目标:在供应获得新闻的基本功能的前提下,进一步进行用户需求挖掘,供应良好的用户体验,提高服务的响应速度,针对以上问题提出如下基本目标:(1)对图片进行分类展示,便利用户筛选新闻内容,包括以下专栏:热点图集、独家图集、明星图集、体坛图集、精致图集。(2)供应新闻收听功能,提高获得新闻资讯的效率,增加‘听新闻’专栏,并供应‘下载’功能,支持‘离线收听新闻’功能。(3)向用户开放注册功能,支持评论跟帖,挖掘有热度的跟帖并展示给用户精彩跟帖内容,在新闻阅读过程中供应社交元素,改善用户体验。设置跟帖专栏,具体分为‘精彩跟帖’和‘今日排行’两个功能点。(4)针对多媒体资源的网络传输,采纳异步交互与本地缓存相结合的策略,削减用户的等待时间。(5)增加新闻搜寻功能,用户可输入新闻关键字进行新闻搜寻,反馈给用户匹配的新闻列表。(6)实现‘聚合阅读’专栏,以扁平化的设计方案为用户供应新闻资讯,包括以下类别:新闻NEWS、体育SPORTS、财经FINANCE、科技TECH、消遣ENTo(7)实现焦点新闻看法投票功能。用户可以针对当日最热点的新闻进行投票表达自己的立场观点,用户投票后可以查看统计结果,本功能模块同时支持查看往日的热点问题投票结果。(8)主功能页展示消遣、体育、图片、财经、科技、汽车等主要功能栏目,分类显示不同类别的新闻内容。(9)增加个人中心,实现用户的数据云同步,用户登录后可以看到自己的以往跟帖记录,以及跟帖回复内容。(10)登录用户可以绑定个人邮箱,通过未读邮件按钮点击阅读。(11)用户可针对客户端供应的功能、体验等问题向网易官方进行反馈(相关反馈回复会在首次启动应用时从云端同步到本地数据库)。(12)增加设置功能模块,内容包括新手引导以及系统设置等功能节点。1.3国内外现状与发展当前市场新闻客户端繁多,部分由传统门户网站转型产生,主流的新闻客户端为:网易、新浪、搜狐、腾讯;目前市场上新闻客户端共有的特点:(1)供应7*24小时即时新闻资讯。(2)新闻种类全面,包括消遣、体育、财经,时尚等诸多焦点方面。(3)操作简洁易用。(4)覆盖IOS,Android,Windowsphone等主流平台。(5)内容包含文字、图片、视频多媒体展示方式。新闻多媒体的呈现形式越来越受广阔用户群体的欢迎,由传统的简洁文字以及带有图片信息的新闻内容,到附有视频资源的新闻内容,用户体验始终在改善,但当前市场上的新闻应用仍旧有不足之处。主要问题体现在以下四个方面:(1)图片新闻:大部分客户端仍旧采纳的是嵌入文字新闻条目的内部,或简洁开启一个专栏,即:图片专栏,虽然相对以往的应用用户获得图片新闻较为便利,但不能满意用户的快速筛选需求。(2)获得新闻资讯方式:针对繁忙的现代化生活,用户为获得新闻资讯不得不花一些时间去查阅,在阅览新闻的时候却不能同时去做其他的工作。(3)新闻互动:随着应用市场的旺盛昌盛,用户越来越追求应用产品的品质,为新闻阅读者供应良好的用户体验始终是新闻客户端领域不断完善自己提高竞争力的主要目标,用户阅读新闻的同时会对其产生自身的相识并有表达本人看法的需求,大部分主流新闻客户端即使支持了评论功能也只是简洁的留言而已,并没有针对这部分数据进行深化挖掘与利用。(4)用户体验:针对图片,视频等多媒体资源,网络传输速度上总是影响是用户对应用品质的认可。2基于Android平台的新闻客户端所用关键技术本章主要介绍基于Android平台的新闻客户端设计与实现过程中所运用的关键技术。应用运用了AndroidSDK和JSON数据传输格式,与服务器端的通信主要运用Volley网络通信框架,本地数据长久化方案运用SQLite数据库技术。2.1JSON数据传输格式JSON(JavaScriptObjectNotation,JavaScript对象表示法)是一种轻量级的数据交换格式语言,JSON是独立于语言的文本格式,这使得JSON具备了跨平台的特点,而当前互联网的大环境下,PC端操作系统多样化以及移动终端操作系统的日新月异都使得JSON语言更加成为主流数据交换格式。2.2SQLite数据库作为轻量级的、嵌入式的、关系型数据库,SQLite目前已经在iPhone,Android等手机系统中运用,SQLite可移植性好、易运用、小巧高效而且牢靠性高。SQLite嵌入到运用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它是完整的、自包含的数据库引擎。2.3SharedPreferences存储SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置,比如窗口状态,一般在Activity中窗口状态onSaveInstanceState的保存可以运用SharedPreferences完成。SharedPreferences可以保存的数据类型包括long长整形、int整形、String字符串型等。2.4Volley网络通信框架Android开发团队在2013年GoogleI/O大会上推出了一个新的网络通信框架—Volley。Volley是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样简洁地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简洁易用之外,Volley在性能方面也进行了大幅度的调整[[12J,它的设计目标就是特别适合去进行数据量不大,但通信常见的网络操作,而对于大数据量的网络操作,Volley的性能并不好。3基于Android平台的新闻客户端的需求分析本章首先将描述新闻系统的整体功能,之后将针对本人设计开发的Android新闻客户端做具体的需求分析阐述,主要包括功能性需求与非功能性需求。功能性需求分析中,首先会对新闻客户端的整体功能进行简洁的描述,之后对本客户端所包含的7个功能模块进行具体的阐述;在非功能性分析中,将对响应时间、可扩展性、可用性三个方面进行具体说明。3.1系统描述新闻系统包括客户端和服务器两部分。服务器存储新闻相关的全部内容,包括新闻文字资源、图片资源、视频资源、音频资源。客户端须要支持Android客户端。为实现多平台访问服务器的需求,服务器端须要采纳跨平台的数据响应技术方案。为支持新闻系统24小时不间断供应服务,服务器端采纳双击热备份机制,主机与备机共享数据库资源,数据库内容存储在磁盘阵列上。同时供应新闻编辑与抓取系统以允许新闻编辑进行新闻的采集与二次编辑。本人实习期间主要负责Android平台的设计与实现工作,以下将针对Android新闻客户端的功能与非功能需求进行具体的阐述。3.2新闻客户端功能性需求分析新闻客户端功能性需求分析主要阐述了新闻客户端的功能性需求,从系统功能的角度,将该应用分为七个功能模块:新闻、订阅、跟帖、图片、投票、个人中心和设置,下面针对各功能模块分别进行功能描述。3.2.1新闻客户端的主要功能新闻客户端主要实现用户针对新闻资讯进行分类阅读的功能,类别包括头条、消遣、体育、财经、科技、时尚、汽车、房产、轻松一刻、图片、嬉戏、北京、真话、军事、历史、聚合阅读、听新闻等。用户可以查看随意栏目下新闻内容详情,不同的新闻呈现形式也不相同,可以是文字、图片、视频或音频等多媒体资源形式;同时允许用户针对新闻内容发表个人观点(即跟帖功能),用户发表跟帖内容之前须要注册登录。系统将依据每条新闻的跟帖热度进行排行,用户可以阅读今日的精彩跟帖并查看热门新闻。供应跟帖功能是为了提高读者的参加度,做一个有看法的新闻资讯阅读者。除此之外,本系统为用户供应了另一种互动方式:投票功能,用户可以针对每日的最热门的新闻表达个人观点,系统将以单选或者多选的形式让用户参加投票,投票后用户将看到具体的投票结果,各个选项以条形图的形式展示投票人数的百分比。(6)个人中心:用户可以注册网易通行证便利以后登录新闻客户端。个人中心将供应3个子功能,分别为注册登录、温度、搜寻。注册登录:输入用户信息登录或者填写个人信息进行账号注册。温度:此处为用户显示近一个礼拜的所在地温度。搜寻:用户可依据输入的新闻关键字搜寻本人想搜寻到的新闻内容,关键字可出现在新闻标题里也可以出现在新闻的正文里。(7)设置:设置模块实现了用户的账号管理和绑定功能,同时还可以进行简洁的系统设置,如字体设置、正文字号、要闻推送开关、WI-FI下自动离线、2G/3G网络下下载图片开关、自动加载更多、重要消息气泡提示等基本设置。3.3系统非功能性需求分析本客户端在完胜利能需求的条件下,还须要考虑时间响应需求、可扩展性需求和易用性需求。本节对这些需求做了简洁的描述。3.3.1新闻客户端时间响应需求由于该客户端运行在手机终端的安卓平台上,那么对其响应用户的时间为5秒钟之内,假如超过S秒,手机终端会出现假死现象,这会降低用户体验。为提高用户体验,要求全部用户的简洁操作所消耗的处理时间在5秒之内,而耗时操作(如:服务器访问)这种也要求在10秒钟之内完成,同时不能让用户有较长的时间等待,在处理耗时恳求的同时不能影响用户的其他操作,避开出现假死现象。3.3.2新闻客户端的可扩展性需求该客户端将会定时更新版本,不断增加新功能和完善已有功能以适应不断变更的需求,这须要本客户端具有很好的可扩展性,要求设计良好的代码以允许更多的功能在有须要的时候被加入到适当的位置中。这样做就可以应对将来可能须要进行的修改,而造成代码被过度工程化开发。可扩展性是软件设计的原则之一,它允许添加新功能或者完善修改已有的功能,它是软件系统拓展的实力。3.3.3新闻客户端的易用性需求在移动互联网领域,APP产品层出不穷,功能越来越丰富,而简捷易用始终是各个产品不变的追求。易用性成为开发非功能性需求中必需考虑的问题,主要涉及到UI设计过程、人机互动工程、心理学、交互式设计、用户行为分析等多方面学问。在设计产品功能的时候须要遵守三大原则,即易见、易用、易学。易见即各种功能不要藏的太深,用户应当很简洁找到他们期望进行的各种操作;易学就是须要应用茶品可以通过简洁的导航,在线帮助等各种方式保证用户可便捷驾驭运用技巧;易用的重点则在让软件娴熟运用后应当可以更快的进行各项操作。4基于Android平台的新闻客户端的概要设计本章将要针对新闻客户端的概要设计进行具体描述,依据架构设计、客户端总体架构、客户端功能模块划分、数据库设计的依次进行设计说明。4.1系统架构设计新闻系统支持移动终端以及PC终端的访问,采纳JSON数据传输格式,提高数据传输效率,实现跨平台的数据响应,实现一个服务器多重终端的策略。服务器端采纳双机热备机制,主机响应终端用户的恳求,备机随时等待唤起工作,主机与备机的数据均存储在外部磁盘阵列,保证服务器的不间断工作模式。4.2系统客户端总体架构该新闻客户端采纳MVC(model-view-controller,模型一视图一限制器)框架,该框架将代码分别为模型、视图、限制器三层,将代码进行解祸,将数据相关的操作集中在模型层,而与视图显示有关的内容放置在视图层,限制器的作用在于匹配模型与视图,完成用户的恳求。MVC框架如图4-2所示。(1)模型层:本项目为客户端的各个功能模块设计相关的业务类,命名规范为模块名称加Model,如:NewsModel(新闻模块业务类),该业务类实现了网络数据读取与写入操作、本地数据库更新处理操作、数据加工转换操作。(2)视图层:本项目采纳XML布局文件进行界面描述,通过XMI.布局文件可以向用户展示模型层得到的数据内容,同时也可以获得用户输入为模型层处理加工数据做打算。(3)限制层:限制层的工作主要由Activity组件担当,该组件从视图层读取数据,依据用户输入选择适当的业务类进行处理,在视图层与模型层之间起到桥梁作用。4.3系统客户端功能模块划分依据新闻客户端的总体需求得到7个功能相互独立的模块,分别为新闻、订阅,跟帖与共享,图片、投票、个人中心、设置。其中新闻模块内依据栏目内容的不同具化为五种不同的页面布局。功能模块的组织结构如图4-3所示。4.4数据库设计为了避开客户端常见的与服务器进行交互从而降低性能,应用在第一次启动的时候会构建各个功能模块的数据库表结构用来缓存数据,以空间换取时间。本客户端所运用的是一款轻型的数据库—SQLite。本应用客户端共设计10张数据库表。5基于Android平台的新闻客户端的设计与实现本章针对需求分析阶段划分好的功能模块进行设计与实现。5.1新闻模块的设计与实现新闻模块一共包含26个新闻类别子栏目,其中头条、消遣、体育、财经、科技、时尚、汽车、房产、轻松一刻、图片、嬉戏、本地、真话、军事、历史、聚合阅读和听新闻这13个子栏目默认显示在顶部导航栏的。其余论坛、博客、微博、社会、电影、彩票等13个子栏目须要用户手动添加才会显示在顶部导航栏。用户可通过栏目管理来排序、添加或者删除全部新闻栏目。用户有两种方式切换新闻栏目:第一种方法是手动滑屏依次进入到各个新闻栏目页;其次种方法可点击顶部导航栏,点击相应的栏目类别名称干脆加载出相应的新闻列表页面。新闻模块是主界面tab栏目的第一个显示模块,由MainNewsTabFragment实现。新闻界面是一个viewpage样式的界面,用户可以滑动新闻栏目阅读不同栏目下的新闻,ColuxnnAdapter界面的数据源,该类须要维护一个NewsColumnHelper工具类,NewsColumnHelper工具类是用来查询新闻栏目信息、管理新闻栏目的公共类,ColumnAdapter中的数据须要依靠NewsColumnHelper来获得。MainNewsTabFragment首先创建NewsColumnHelper对象,NewsColumnHelper初始化时须要获得本地城市信息和订阅栏目信息,首先从缓存中获得,获得胜利后须要从缓存中删除,以免占用缓存空间,假如缓存为空,则开启线程从数据库morecol~表中和newtopcolumns表中重新获得己添加的新闻栏目信息,假如缓存不为空,则设置NewsColumnHelper中的成员变量mList中的值为缓存中的值,mList是ColumnAdapter的数据源,ColumnAdapter定义了布局文件以及各控件和字段属性的对应关系,mList获得完数据后调用notifyDataSetChanged}方法通知adapter数据发生变更。ColumnAdapter重写了getFragmentItem()方法,依据传来的位置参数创建一个新的NewsListFragment,不同栏目对应不同类型的NewsListFragment,在创建之前须要推断栏目类型,主要分为以下几类:一般新闻、聚合阅读、听新闻、本地新闻、股票、汽车六类新闻,通过调用Fragment.instantiaten方法可以建立不用class。类的fragment对象。FragmentStatePagerAdapter继承于Fragm$ntStatePagerAdapter类,同时是ColumnAdapter类的父类,它也是viewpage的数据源类,该类重写了setPrimaryItem方法,由于动态加载在setPrimaryItem中实现,每次滑动都会调用setPrimaryItem,客户端在此记录了滑动前后的position,并调用onPrimaryItemChanged}方法将滑动前后变更的信息传递过去,子类Columnt}dapter通过实现onPrimaryItemChanged方法可以修改界面布局、设置当前栏目为已读模式、开启异步任务ChangeUnreadCountTask重新获得未读栏目数等操作。ChangeUnreadCountTask调用changeColumnCountO方法,该方法通过运用NewsColumnHelper工具类推断栏目列表中的tid标识是否包含在mReadedCplumnIds已读列表中来计算未读栏目数,同时将栏目数显示在界面上。MainBaseFragmentParent继承于BaseParentFragment,是MainNewsTabFragment的父类,封装了各个tab下的fragment(点击新闻调出的fragnnent、点击图片调出的fragment等等)的公共方法,各个tabfragment须要共享用户登录的相关信息,因此在该类中封装了与用户登录有关的业务信息,包括处理用户登录登出时,修改actionbar右上角的用户头像的显示问题。BaseParentFragment继承于FragmentParent,是MainBaseFragmentParent的父类,与BaseFragment类的功能相像,主要是定义子类fiagment的界面布局。FragmentParent继承于LoaderFragment<D>,是BaseParentFragment的父类,该类主要是接收封装好的FragmentInfo对象信息,调用FragmentManager对象和FragmentTransaction对象实现子fragment的替换功能。LoaderFragment<D>继承于android基本控件Fragment,其功能主要是进行数据获得。5.2跟帖模块的设计与实现跟帖模块包括精彩跟帖和今日排行两个主要的子功能。精彩跟帖与今日排行均以Fragment控件的形式出现,分别对应TieTopFragment和TieRankTopFragment两个类。在跟帖模块的入口类文件MainTieTabFragment中存在一个ViewPager控件,该控件用于切换精彩跟帖与今日排行两部分内容。跟帖模块的类图如图5-2所示:5.3图片模块的设计与实现图片模块展示的数据是图集新闻对象,具体分为热点、独家、明星、体坛和精致五个图集专栏。图片模块的类图如图5-3所示。MainPicTabFragment类:该类为图片模块的入口类文件,该类运用ViewPager控件来展示图片新闻数据。PicHelper类:该类为图片模块的图片分类管理工具类,PICLIST数组用于存放五类图集的字符串标题资源,getTag(intposition)方法依据图集栏目所在的位置得到tag标识。newPicListFragmentn方法用来创建对应的图片子栏目的Fragment控件。FragmentInfo类主要用来封装Fragment的基本类信息,tab属性用来定位图集类别,class属性用来确定展示信息的Fragment子类,args传递基本信息的参数。PictureSetFragment类继承于LoaderListFragment,重写父类的三个数据获法:CreateLocalLoader}从本地数据库读取数据,CreateNetLoader}从网络获得数据CreateMoreLoader}力a载更多图片新闻,得到图片新闻数据之后将要运用PictureListAdapter适配器来生成数据源,该适配器的在生成view的时候调用getView方法,依据view的所在的位置生成不同的布局,具体处理算法在processItemView方法中,如图5-5所示。目标得到的效果:偶数位置的列表项仅展示一副新闻图片,奇数位置运用三幅图片,格局为2:1,1:2两种交替展示。PictureModel类主要实现网络数据读取与数据的本地缓存功能,getNetPhotoList方法用于向服务器恳求读取图集新闻,insertPhotoList方法向本地图集列表photolist缓存图集信息。5.4网络数据恳求方案的设计与实现新闻客户端的新闻、跟帖、订阅、图片、投票、个人中心模块的注册登录、设置模块中的字体设置和看法反馈功能均须要和服务器进行网络交互。安卓平台具有单线程模型的特点,网络访问属于耗时操作,各个功能模块的网络访问操作应当放在后台线程中去执行,避开造成UI线程的假死现象。本应用的网络访问具有以下两个特点:网络恳求频繁、恳求数据量小。基于本应用的网络访问特点,本文通过对比分析安卓平台的主流网络访问技术,最终选取Volley网络通信框架技术,并在此框架基础上进行功能自定义,得到了适应本应用的网络通信架构。网络数据恳求的实现,流程图如下:综合考虑本应用须要常见的网络恳求的需求与客户端在网络数据访问方面采纳Volley技术来实现Volley所具有的众多优点,本volley框架中主要运用到的类包括Request,RequestQueue,Response.listener,Response.ErrorListener和ImageLoaderVolley进行网络访问的流程图略。RequestQ~为网络恳求队列[201,Volley中的恳求须要添加到恳求队列RequestQueue对象实例中,Volley中的恳求类Request类是该体系中最核心的类,该类实例化的时候须要三个参数,分别是恳求的url信息,恳求方式和错误处理对象。错误处理对象即类Response.ErrorListener的实例。Request对象在得到服务器的响应数据后会调用自身的parseNetworkResponse方法,该方法将NetworkResponse对象处理为须要的响应数据类型,通过diliverResponse方法将响应数据分发给Response.listener对象[30]0基于Volley的网络访问流程设计了本应用的网络数据读取基本框架,图5-17展示了本应用所设计的网络恳求基本工具类图。VolleyUtils类的构造器是private类型,目的是限制实例化对象的产生,在其他类中不能实例化该类的对象,而本类中包含一个私有的Vo1leyUtils对象sVolleyHelper,包括一个public类型的getVolleyHelpe:静态方法,该方法采纳单例设计模式[31]返回一个实例化的sVolleyHelper对象,在实例化sVolleyHelper对象的时候会调用init方法初始化成员变量mRequestQueue和mImageLoader,调用newRequestQueue方法实例化mRequestQueue变量,构造器私有化以及静态公共方法返回实例化对象保证了本应运行过程中有且只有一个该类的对象。Vo1leyUtils中包含两个重要的类成员变量,分别是mRequestQueue和mImageLoadermRequestQueue即RequestQueue对象,该恳求队列用于向服务器发送异步恳求,实现网络通信的工作,在初始化mRequestQueue变量的时候指定了缓存路径与网络访问机制,恳求队列得到网络数据响应的时候会自动缓存数据到本地[32],以空间换时间,削减了用户等待

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论