




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广西科技大学鹿山学院毕业设计(论文)题 目:基于AndroidNBA新闻浏览应用开发与实现系 别: 电气与计算机工程系 专业班级: 计软132班 姓 名: 学 号: 指导教师: 职 称: 讲师 二一七 年 四 月 十八 日摘 要Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”,近两年经过版本不断更新优化,流畅度大大提升,UI定制性强,系统开源等特点,2016年Android移动设备占据市场(欧美以及中国市场)65%以上的份额。本课题采用时下流行的Android平台下开发技术及SQLite数据库技术对应用程序进行构造,主要功能大致分为:比分浏览,赛局浏览,查看比赛预告,查看最新新闻以及视频。此应用还具有收藏以及第三方分享功能,本应用设计为NBA爱好者打造一个属于球迷的NBA安卓端新闻浏览应用程序。经过筛选,从网络中获取的数据为json格式,故选用Gson进行网络抓取下的新闻数据进行解析。关键词:Android;NBA;SQLite;json,Gson广西科技大学鹿山学院本科生毕业设计(论文)AbstractAndroid is a Linux-based free and open source operating system that is primarily used for mobile devices such as smartphones and tablets, led and developed by Google and the Open Mobile Alliance. Has not yet unified Chinese name, more people in mainland China to use Andrews or security, the past two years after the version of continuous optimization and optimization, greatly enhance the fluency, UI customization, system open source features, 2016 Android mobile Equipment to occupy the market (Europe and the United States and the Chinese market) more than 65% of the share.This topic is based on the popular Android platform development technology and SQLite database technology to construct the application program. The main functions are divided into: score browsing, tournament browsing, view game announcements, view the latest news and video. This application also has a collection and third-party sharing function, the application design for the NBA fans to create a fan of the NBA Andrews news browsing application.Key Words: Android; NBA; SQLite; json,Gson目录1 引言41.1 项目开发的背景41.2 项目开发的目的和意义41.3 论文研究内容41.4 论文安排41.5 本章小结42 开发知识简介42.1 AndroidStudio简介42.2 SQLite简介42.3 Xutils3简介42.4 Picasso简介42.5 GSYVideoPlayer简介42.6 本章小结43 总体设计43.1 可行性分析4 3.1.1 经济可行性4 3.1.2 技术可行性4 3.1.3 操作可行性4 3.1.4 社会可行性53.2 性能优化5 3.2.1 结构设计5 3.2.2 UI设计5 3.2.3 代码规范53.3 总体设计原则5 3.3.1 易用性原则5 3.3.2 实用性原则53.3.3 技术先进性和成熟性原则53.4 功能模块分析53.5 本章小结54 系统的详细设计54.1 系统体系架构54.2 系统功能的设计54.3 业务流程图设计54.4 数据库设计54.4 数据库表设计54.5 本章小结55 系统的实现55.1 新闻列表实现65.2 新闻详情实现65.3 新闻视频实现65.4 收藏功能实现65.5 本章小结66 系统的测试66.1 测试定义66.2 系统测试目的及意义66.3 系统测试的重要性66.4 测试方法66.5 运行情况66.6 测试结果66.7 本章小结6总结和展望6致谢6参考文献61 引言本章主要讲解项目开发背景、目的、意义,对现有条件进行分析,提出可能即将会遇到的问题,简要的描述项目中主要功能,以及提出项目中实现功能的基本完成目标。1.1 项目开发的背景当前移动互联网发展迅猛,用户规模庞大, code大会上发布的2016年互联网趋势报告了解到,全球智能手机用户数比上一年增长了21%,Android系统市场份额打到了81%。从多个指标来看,在移动互联网领域,Android系统无疑是最受用户欢迎的移动操作系统,再由我国工信部在2016年发表的一月份通信经济运行情况报告显示,在2016年一月前,中国的移动电话用户使用规模达到了12.8亿,其中,移动宽带的用户数量(分为3G和4G用户)当年共累计净增长了5316.4万户。在2016年初,我的互联用户总数站到了7.59亿户,占据中国互联网用户数的59.3%。 从多个指标来看,中国已然站到了移动互联网市场的第一线,庞大的用户数量,成熟的软件市场,都为项目的开发提供了有利的基础保障。 从体育方面来看相较于中国国内的体育项目,篮球拥有最高的关注度和最广泛的受众群体,而NBA作为篮球项目的顶级赛事,自1986年引入中国以来,已经拥有了数量可观的固定消费群体。国家国民体质监测中心发布的“2014年6至69岁人群体育健身活动和体质状况抽测调查结果”表明,篮球的受欢迎程度要高于其他项目。大众观赏率(包括在电视机前和比赛现场观看)排在前五位的依次是篮球(34.9%)、足球(10.4%)、乒乓球(7.1%)、体操(6.8%)、羽毛球(5.9%)篮球的火爆不无道理,随着越来越多的中国球员进军美国NBA,为中国篮球培养了足够的粉丝。同样也有像马布里,奥尼尔,科比之类的NBA球星来到了中国,使得篮球热迅速升温。有了大腕的助阵,篮球在中国国内可谓越来越受关注。 在这一背景下设计开发出一款专门为国人设计的NBA安卓新闻客户端,为国内广大球迷提供属于他们自己的新闻客户端,具有相当广阔的市场,通过APP可以了解NBA赛事安排,预告,以及详细对战情况,还可以了解到当前最新的NBA资讯,以及欣赏到最新比赛中球员的精彩瞬间。1.2 项目开发的目的和意义 所谓基于Android新闻客户端的新闻资讯类APP,虚通过网络三方资讯服务器获取到新闻详情,通过Android系统组件以及Android,java,网络,存储等知识的利用,为用户完美的展现出新闻资讯,用户能直观的选择喜欢的内容进行浏览。1.3 论文研究内容1) 研究该NBA安卓移动应用程序的开发背景以及可行性分析。2) 描绘应用功能模块图,并详解其中各个功能模块间的关系。3) 分析项目中可能会遇到的问题并提出对应的解决方法,研究新版本Android系统新特性。4) 在实现功能后对实现功能算法或者性能进行优化分析。5) 对完成的应用项目进行测试,对整体性能检测以及及时发现系统中存在的BUG。1.4 论文安排论文包含六个章节,以下是对各个章节内容进行简述:1) 引言。分析该项目的开发背景,开发意义,以及对正片论文研究目标进行讲解。2) 开发知识简介。主要是介绍开发平台,以及项目中所用到的商业开发中主流的开发框架。3) 总体设计。对应用中的各个功能模块分析并设计,展示应用功能模块的大致实现功能。4) 系统的详细设计。通过流程图以及E-R图对各个功能模块进行详细设计分析。5) 系统的实现。对各个功能模块功能实际的实现方法进行讲解及说明。6) 系统的测试。在发布正式版之前,对测试版本进行测试,讲解测试方法,以及展示测试结果。1.5 本章小结本章主要是作为论文开篇概述项目内容,以及接下来该论文中每一章节所要展示的内容进行简要说明。2 开发知识简介2.1 AndroidStudio简介Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,目前很多开源项目都已经在采用,Google的更新速度也很快,明显能感觉到这是Android开发的未来,那么我们还有什么理由不去拥抱未来呢?1. Google推出毫无疑问,这个是它的最大优势,Android Stuido是Google推出,专门为Android“量身订做”的,是Google大力支持的一款基于IntelliJ IDEA改造的IDE。2. 速度更快其他三方的开发工具无论从启动速度、响应速度、内存占用一直是Android开发工具的软肋,而且经常遇到卡死状态。Android Studio不管哪一个方面都全面领先传统第三方开发工具。3. 更加智能Android studio内置提示补全对于开发来说意义重大, 使得开发工具更加智能,代码不全,智能保存,等功能对于熟悉Android Studio以后开发效率会大大提升。4. 整合Gradle构建工具Gradle是一个新的构建工具,自Studio亮相之处就支持Gradle,可以说Gradle集合了Ant和Maven的优点,不管是配置、编译、打包都非常方便。5. 强大的UI编辑器Android Studio还拥有非常强大的UI编辑器,基于各个屏幕,版本都有适配,同时由于是google官方开发,最新的UI组件以及布局都能在AndroidStuidop上使用。6. 内置终端Studio内置终端,对于使用命令行操作的开发者,无需再来回切换。7. 完善的插件系统Android Studio支持一键操作,直接通过Git、Markdown、Gradle、jcenter等直接下载并使用插件,极大的方便了开发者。 8. 完美整合版本控制系统Android Studio同时还内置了GitHub, Git, SVN等现在市场上流行且成熟的版本控制工具,用户创建服务器后可直接提交代码,省去的原来版本控制工具搭建的麻烦。2.2 SQLite简介SQLite是一款轻型数据库,它遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。由于他的设计初衷就是针对嵌入式开发产品,所以他运行时所占的资源比很低,这在资源相对紧张的移动设备来说是非常契合的关系型数据库,当前已经有一定数量的,在市场上发行上线的嵌入式产品都选择SQLite作为产品数据库,同时他又能支持如Windows/Linux/Uni等现如今主流的操作系统,同时在程序语言支持上又与现在流行的开发语言(如C#/PHP/Java)结合。相较于其他同样的数据库产品来说(如MySQL,SQLserver,oracle等),SQLite的处理速度远远胜过它们,从2000年五月SQLite诞生,从第一个alpha版本到2017年已经有17个年头,当前正式发行的最新版本为SQLite3。2.3 Xutils3简介Xutils3是国内开发者基于Afinal项目开发的现如今功能完善的一个Android多功能开源框架,此框架拥有非常丰富的功能(如网络获取,文件上传,注解,缓存,数据库操作,图片加载,控件绑定等)同时又拥有良好的运行效率以及性能,对于想要快速开发原声Android应用的开发者来说,Xutils3完成了开发项目时一大部分的重复工作,让开发者更加专注于功能的开发实现。作为一款拥有非常灵活的ORM时间注解,且不怕混淆的第三方开源框架,以下列举出Xutils3的部分优点:1) HTTP实现替换HttpClient为UrlConnection, 自动解析回调泛型, 更安全的断点续传策略;2) 支持标准的Cookie策略, 区分domain, path;3) 事件注解去除不常用的功能, 提高性能;4) 数据库api简化提高性能, 达到和greenDao一致的性能;5) 图片绑定支持gif(受系统兼容性影响, 部分gif文件只能静态显示), webp;6) 支持圆角, 圆形, 方形等裁剪, 支持自动旋转;2.4 Picasso简介Picasso是Square公司的一款开源基于Android系统上的一个图片加载缓存框架方案,Picasso框架不仅支持图片的网络获取加载,以及缓存等功能,同时还解决了异步的加载,大图处理的问题,在加载过程中还支持自定义动画,为开发者在图片加载这一功能上提供更多的拓展以及选择方案。Picasso主要采用的是硬盘的二级缓存以及内存缓存,对于Android系统的控件复用机制,Picasso也已经解决图片错位等问题。Picasso在性能上也不输与其他的图片加载框架,使用它也非常的方便,往往一行代码就能达到开发者想要的效果。2.5 GSYVideoPlayer简介基于IJKPlayer的播放器,重构了JieCaoVideoPlayer,调整了代码和优化了动画,添加了自定义功能。 支持基本的拖动,声音、亮度调节 支持边播边缓存,使用了AndroidVideoCache的代理模式实现 支持视频本身自带rotation的旋转 增加了重力旋转与手动旋转的同步支持 支持列表播放 直接添加控件为封面 兼容一些5.0的过场效果 列表的全屏效果优化列表的小窗口播放,可拖动2.6 本章小结本章主要是简述了基于Android平台开发的NBA新闻客户端应用所需要用到的开发工具以及开发框架的介绍,使用使用优秀的开发工具,能让开发更高效快速。2 总体设计3.1 可行性分析可行性研究是一个成熟项目中必定要走的一个流程,可行性研究主要是已全面而又系统的数据分析,为了产生的经济效益以及市场需求,运用大量的理论知识以及大量数据的综合分析,通过分析各种可能会产生的因素以及遇见未来产品走向,提出项目是否是可行,可以开发投入市场的。对于市场,可行性分析能给决策者展现出产品未来在市场上的走向,以及竞争力,同时还避免了因未考虑项目某个因素而导致项目流产,造成成本损失。可行性分析具体需要确切的理论辩证分析,拿出数据(如试验数据、论证材料、计算图表、附图等),还得为产品的走向,以及未来可发展潜力进行预测。总的来说,项目可行性分析必不可少,它帮助投资人对于这个项目是否值得投入资源,项目决策者的判断提供决策依据,是一种综合性的系统分析方法。3.1.1 经济可行性 从经济可行性上分析,该Android应用程序是基于个人开发完成, 从开发成本来说,相较于市场上的新闻类应用来说,个人独立开发的应用成本,相对于团队开发,开发成本少,项目整合快速。所以开发成本主要来自应用程序的设计以及后期的维护,从使用者角度来看,使用此款软件完全免费,无任何附加费用,同时针对性强,能积攒一定数量的用户,对日后可使用广告手段进行盈利,无论从人力成本,开发成本,以及维护成本来讲,制作这款软件在成本控制方面可控制在开发预算以内。由以上条件可得出,此应用从个人开发的经济可行来说,该项目技术上实施开发是可行的。3.1.2 技术可行性 从技术角度来分析,网络数据部分主要是针对性截获网络上相关新闻,对此开发者可以专注于Android应用本身需求进行开发,同时在网络获取图片加载等方面,选择了网上流行且成熟的开源框架进行处理(Picasso,Xutils3等)。在UI方面,使用Android官方空间以及三方、自定义等控件进行UI设计与排布。最后利用开发者模式,java语言特性,多线程处理等知识,对项目中的代码逻辑以及性能优化上进行调试,同时结合第三方分享,以及SQLite数据库对分享、功能的实现提供了技术依据, 由以上条件得知,此应用从个人开发的技术角度来说,该项目技术上实施开发是可行的。3.1.3 操作可行性 从操作可行性上分析,Android操作系统,经过多个版本的迭代,系统稳定,性能高效,为用户使用Android应用以及操作提供了基本且完善的条件,同时装载Android系统的移动设备使用量,占据着全球移动设备的70%-80%以上,经过几年的积淀,用户对于Android应用的操作习惯已经趋于稳定,面对成熟且规模庞大的消费者来说,一款新闻应用的操作已经基本不存在用户操作不过来的问题。用户打开应用,便能很快的上手操作,降低了用户学习操作的成本,同时提高了用户操作的体验。由以上条件得知,此应用从用户操作可行性上来说,该项目技术上实施开发是可行的。3.1.4 社会可行性 从社会可行性上分析,目前Android新闻类应用数量庞大,但大多携带大量广告,以及种类繁杂的新闻内容,让使用者在使用时眼花缭乱,无法快速搜寻到自己想要浏览的新闻内容。对此,本应用由于针对性强,NBA比赛以及周边的新闻内容种类丰富,且更轻量、流畅,相较于其他同类新闻应用繁杂冗余且容量庞大的缺点,这一类的消费者群体能接受,专门为他们量身定制的一款基于Android系统的NBA新闻应用。由以上条件得知,从社会可行性上来说是可行的。3.2 性能优化 性能优化针对本应用,大致分为网络性能优化,控件性能优化,以及数据操作性能优化三个方向进行分析。1. 网络性能优化部分: 首先是比赛进度以及新闻内容的获取,在获取方式上,采用分页获取方式,通过上拉加载的方式,对多条新闻进行加载,从而解决了一次性拿大量数据而导致用户网络流量使用过大的问题,对于图片获取方面,采用三级缓存的方式,通过内存-本地磁盘-网络获取的步骤,对图片进行获取,当图片加载完毕是,使用文件存储形式,保存至本地存储空间内,同时使用LruCache对部分图片缓存至内存中,减少了用户多次浏览或者读取的网络成本。2. 控件性能优化部分: 由于手机新闻类应用的特点,主流界面设计都是列表形式进行新闻展示, 本人认为应当使用Android5.0版本时推出的新控件Recylerview进行列表设计,同时融合了第三方BaseRecyclerViewAdapterHelper对Recylerview进行二次封装,达到了item的点击事件的实现以及组件复用,极大的优化了系统中生成新组件的性能成本,同时由于图片不透明,所以可以把图片质量设置为RGB_565,在图片显示质量上与显示效果最好的ARGB_8888差别不大,但对于图片在内存中的大小,可以优化30%的内存空间。3. 数据操作性能优化 由于收藏功能不需要太复杂的数据库结构以及存储内容容量不大的条件下,选择使用轻量级数据库SQLite对数据进行存储,相比于其他数据库,SQLite更适合在对于性能优化更重视的移动平台下进行使用,同时整合了第三方GreenDao框架,简化了数据库的操作性能成本。对于图片方面,采取大图放弃内存缓存的原则,对于体积太大的图片直接放弃内存缓存,而直接选择从本地读取,一方面减少了手机内存占用方面的压力,另一方面对于用户体验方面并没有什么损失。视频这方面使用了GSYVideoPlayer,对于视频数据的预加载,内部进行了优化。由于Android系统响应用户时间为5秒,当应用超过五秒未及时响应,则应用会出现”假死”状态,提示用户结束进程。结合用户体验,此应用功能处理上不应超过2秒,同时代码可读性要好,类,方法,变量的命名同意标准,为日后需求改变及增加打好基础。3.2.1 结构设计 此应用在代码结构上,各个功能结构代码分别创建文件夹进行区分。各个功能模块区分,以便减少功能模块之间的耦合性。3.2.2 UI设计在界面结构上新闻类应用界面切换频率高,且同一界面可能处理多重新闻信息以及显示,故在界面设计上,采用Activity结合RadioButton+Fragmen,对页面切换进行处理。3.2.3 代码规范全命名方式采用英文或者国际通用的标识命名,包名统一小写,常量名使用大写,方法名、参数名、成员变量、类名统一使用驼峰法命名,不使用未经命名的常量。3.3 总体设计原则通过之前章节的分析,本程序总体设计采用轻量便捷,简易操作为总体设计方向。3.3.1 易用性原则 此款应用程序的界面风格采用现实际上线的新闻APP作为参考,定制UI操作符合一般用户的操作习惯,如上拉加载,下拉刷新等。3.3.2 实用性原则此款应用在实用性方面达到了移动新闻客户端的功能需求,故具备正常软件的实用性。3.3.3 技术先进性和成熟性原则此款软件在控件使用的是Android系统5.+版本以后的新控件,跟随着google官方推荐的使用规范,同时市场上的商用应用经过版本更新,也逐步使用了此类新控件,具有先进性和成熟性的特点。在框架使用上,采用的是现阶段市场商用应用多数采用的基本框架进行开发,此类框架会随着Android系统版本的更新迭代进行维护更新,同时经过多年市场应用开发的考验,无论是技术先进性和技术成熟性都达到标准。3.4 功能模块分析本节主要是对应用的功能模块进行分析,以及说明各个模块之间的功能。由于Android移动应用的特性,功能按照页面分类进行讲解。首先是比赛功能模块,这一模块主要是查看从今天算起前后一个月内的所有比赛记录,在这一界面,用户可以直观的浏览到某一天的所有比赛对战情况(队伍,比分,比赛类型,场次转播平台,开始时间等)点击进入界面,则可以详细观看到赛场位置,球队历史数据,四节比分情况,同时还能观看本场最佳(得分、主公、篮板),同时还有球队统计(篮板、主公、抢断、盖帽等数据信息),在这一界面中还可以切换至精彩视频界面,在此界面中可以点击观看相关比赛的精彩视频。在这一界面可以通过三方分享吧新闻内容分享至QQ微信以及微博。其次是最新模块,最新模块整合了最新的NBA新闻,在其中又分为头条、 资讯、社交媒体三个板块,头条板块为传统图文新闻,用户点击可以查看详细新闻内容,第二个是资讯板块,资讯板块相较于头条板块,其中有的新闻列表为纯图片浏览,社交媒体则是当前自媒体,微博等平台获取到的新闻内容。这些小功能模块点击详情后可以进行第三方分享,分享至QQ微信以及微博,以及收藏。第三个功能模块则是视频模块,视频模块的内容为纯视频,当用户点击视频时可以即时播放。视频模块同样分为三个子模块,集锦,最佳,以及花絮,通过三个子模块的划分,对应模块的视频内容分类能更加清晰。第四个功能模块是数据模块,能获取当天,季后赛,常规赛三种类别的,得分,篮板,助攻,盖帽,抢断五种分类,每个分类都有从排名,从第一至第25名次的球员情况以及所属队伍。最后就是我的收藏功能,从我的收藏中,可以查看本地收藏的新闻。以下为功能模块图:3.5 本章小结本章节主要是对项目进行可行性分析,从经济,技术,操作,社会四个方面来进行分析,还有就是在性能上的优化方面,从结构设计,UI设计以及代码的规范,对整体项目的优化进行推断以及说明,并且提出规范。然后是设计原则,从总体设计原则再细分至四个方向:易用性、2实用性、技术先进性和成熟性进行分析,从这四个角度再对总体设计原则进行总结。最后就是功能模块的分析,对于Android应用中按界面区分功能模块,同时展示功能模块设计图。4系统的详细设计4.1 系统体系架构MVP 全称:Model-View-Presenter ;MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。基本原理: View:接口,声明所有的View相关的操作,包括GetValue、SetValue、Progress、Navigator等。MVP思想的核心,通过提取View接口,实现了Activity和Presenter的解耦。 Activity: View接口的实现,初始化界面,初始化View中的控件,调用Presenter完成业务逻辑 Model:涉及到的数据对象,以及对数据的操作,比如可以把IO操作放到Model层 Presenter:业务逻辑的实现,业务逻辑处理完成之后通过View接口操作UI,作用的数据是Model.4.2 系统功能的设计图4-2-1图4-2-1展示的是比赛赛程的功能信息,在这一功能模块主要是采用列表方式展示双方的队伍图片logo,比赛类型以及分数。图4-2-2图4-2-2展示的是比赛详细数据的比分功能,比分功能使用表格展示每一节的比分情况,通过列表展示本场最佳,以及球队数据。 图4-2-2图4-2-2展示的是比赛详细数据的视频功能,视频功能通过列表的实行进行展示。 图4-2-3图4-2-3展示的最新中的头条功能,最新功能为新闻展示,其中又分为头条,资讯,社交媒体三个子功能,此为头条功能。 头条采用大图配标题列表的形式进行展示图4-2-4图4-2-4展示的最新中的资讯功能,最新功能为新闻展示,其中又分为头条,资讯,社交媒体三个子功能,此为资讯功能。 资讯功能为大图标题为头,图片标题概要浏览人数为列表主体的形式进行展示。图4-2-5图4-2-5为资讯和头条点击进入查看详细新闻的界面,采用标题+时间+观看人数为头,详细新闻文字内容为主题的排版进行展示。图4-2-6图4-2-6展示的最新中的社交媒体功能,最新功能为新闻展示,其中又分为头条,资讯,社交媒体三个子功能,此为资讯功能。 社交媒体功能为媒体图片,名称,时间,评论来源以及评论内容为列表项进行展示。 图4-2-7图4-2-7展示的视频功能,视频功能为视频列表展示以及播放,其中分为集锦,最佳,花絮三个子功能,此由于视频三个子功能布局一样,则此功能描述只挑选集锦功能进行展示。图4-2-8为数据功能,数据功能主要展示的是每日,季后赛以及常规赛的得分, 篮板,助攻,盖帽抢断的最佳前25名队员,通过列表的形式进行展示,由于三个子功能布局相同,在此只展示每日显示功能。图4-2-9图4-2-8为查看收藏功能,收藏后的数据通过图片,标题,新闻概要简介,时间,观看人数组成列表项,点击进入后和最新新闻查看功能内容一致。4.3 数据库设计 图4-3-1根据存储数据种类少,存储量小的特点,数据库中创建两张表(如图4-3-1),分别为标题表,以及详细内容表,当用户使用收藏功能时,首先根据标题表进行查找,获取到对应详细新闻表的ID,当用户点击进入详细查看时,再通过详细新闻对应的ID去检索数据库中的详细新闻并显示。4.4 数据库表设计 图 4-4-1 title表 title表主要是记录存放新闻的id,图片,标题,时间,以及观看人数。 图 4-4-1 detail表 detail表主要是记录存放新闻的id用于检索,还存储新闻详细内容。 4.5 本章小结本章通过对系统功能详细设计,数据库设计对各个模块功能进行了详细分析说明。5 系统的实现在这一章节中主要讲解系统中各个功能模块具体实现方案。5.1 新闻列表实现由于新闻客户端采用列表形式进行新闻展示,这里需要着重说明列表如何实现。列表的载体分别为Activity和freagmen,前者为单一列表展示的情况下使用,如比赛功能,后者则是利用tablayout和viewpager进行多种类页面的切换,列表组件由Android5.0以后推出的RecylerView构成,同时集成BaseRecylerViewAdapterHelper框架,前者比原先的listview拥有更丰富的多变的布局,同时也比listview的拓展性更强,后者BaseRecylerViewAdapterHelper作为对RecylerView的二次封装能使RecylerView功能更加丰富。数据通过网络以Json的格式进行获取,经过本地Json解析,最终得到对应列表的数据,同时利用TextView ImageView等基础系统控件,对获取的数据进行展示,通过BaseRecylerViewAdapterHelper框架,以及swiperefreshlayout实现上拉加载,下拉刷新的功能。5.2 新闻详情实现新闻的详情功能则是用户点击列表形式的文字新闻以及比赛新闻后能跳转进入另一个页面查看更详细的新闻数据,在详情页面,首先通过列表对应的新闻ID,来获取网络中Json格式的详细新闻数据,通过本地的Json解析获取到数据内容,并封装成类进行保存,通过TextView、ImageView等基础控件对数据内容进行展示。在详情页面有收藏以及分享功能,收藏功能在5.4节说明,分享功能弹窗使用PopupWindow进行设置,通过第三方的API开启新闻分享功能。5.3 新闻视频实现 新闻视频功能的实现是依靠GSYVideoPlayer框架实现,通过网络获取到视频地址,再使用GsyVideoPlayer对地址进行解析,然后通过对控件设置,可以达到全屏以及列表式的视频播放功能。5.4 收藏功能实现 收藏功能的实现是通过SQLite+GreenDao框架结合实现,通过创建GreenDao指定数据库对象,能创建对应设置的数据库以及表,当用户打开收藏功能时,则可以对表内进行遍历判断,如果已经有了收藏,则提示用户已收藏,如果未有该条数据,则把该条数据保存至数据库的收藏表中。5.5 本章小结本章主要是对具体系统功能的实现进行说明,从使用框架到如何使用进行了详细的讲解,再通过应用截图的方式,进行补充,在这一章节,对列表新闻展示功能实现、新闻详情功能实现、新闻视频播放功能实现、以及新闻收藏功能的实现进行了讲解。6 应用的测试本章节主要着重对应用此应用的测试进行说明,讲解测试的定义,测试的目的以及重要性,在后章节则说明测试的方法以及实施,同时给出测试情况以及测试结果,通过测试,可以直观的了解到应用的优化以及各功能之间是否能协调运行。当测试完毕是程序仍然能够正常运行,测试的数据维持在正常范围,则说明测试成功,可以对当前版本应用进行打包加密发布了。6.1 测试定义软件测试在一个成熟的开发流程中必不可少,作为一种辅助鉴定一个软件功能完整,安全,以及质量的一个对软件大量重复操作以及测定的过程。软件测试的初衷,就是为了确保最终上线发布的软件产品的最终质量。虽然并不一定说测试通过就一定万无一失,但经过反复大量的测试,能发现绝大部分软件产品在开发内无法预见,或者无法确定的错误。对于测试,一套成熟的软件测试流程应该有专门的部门人员进行负责,通过按照软件测试的流程,对一款软件产品定制专门的测试计划,测试方案,测试规范,如何实施,测试过程以及结果的分析,整合各种数据或者测试中发现的问题,撰写出一篇测试报告,为开发人员对软件的修改或者完善提供依据。软件测试实际上就是对软件上线的最后一次把关,去挖掘程序可能存在的错误,并且及时提交给开发人员解决,既保证了软件的质量,也减少了日后出现问题修复维护的成本。总而言之,软件测试就是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。6.2 系统测试目的及意义软件测试的目的:首先是确认上线产品软件的总体质量,其中包含功能是否完善,功能之间的协调是否顺利,功能是否打到依照设计时的设想,确认软件功能方向是否准确。其次,是为了帮助开发人员或者项目经理及时反馈完善或者修改的信息,开发人员通过测试结果报告,能准确的定位软件出的问题位置,或者功能不完善的点在哪,项目经理通过软件测试报告,撰写开发风险评估,不仅减少了开发人员查找问题的成本,而且还帮助项目经理把控项目开发进度。第三,软件开发测试不局限于产品本身,同时还对整个开发流程,功能实现目标,以及进度进行把控,为的是可能项目开发初期就功能上判断失误,或者防止项目在完成后出现诸多问题而无法解解决,产品功能之间不协调导致整个产品需要大量整改甚至流产,为未来不可预知的问题,提前做好准备。在系统测试过程中,专门负责软件产品测试的人员,需要利用现有测试工具按照规定的测试方案对产品的功能,性能进行测试,对于特殊软件产品测试要求,可能还得让测试人员修改测试工具,甚至开发为其软件产品单独的一套测试工具,在测试过后还得对测试的过程以及结果进行分析,提供测试报告,同时记录测试时出现的问题,以便在以后的版本更新或者开发中,追踪问题是否得到解决,保障了软件的总体质量,为软件的进一步完善,也提供了许多宝贵的数据。一般软件测试分为人工测试或者编写脚本或者工具测试,前者测试是为了模拟消费者使用该软件产品时可能会做出的所有操作动作,人工操作能发现一般单纯自动测试所不能发现的人为因素,但是从效率方面考虑,相较于自动测试,则显得效率低下。在这就是自动测试,自动测试主要是利用计算机的特点,对产品软件进行大量且重复的操作,通过这些大量重复操作,判断软件的性能,同时大量操作还能发现软件功能是否存在问题。软件测试一般两者结合,一来是检验它功能性是否完整,二来是为了测试软件产品的整体性能,软件测试为的是帮助开发者完善软件产品的质量,功能上的完整。对于一个成熟项目来说具有非常重要的意义。6.3 系统测试的重要性一般来说,软件测试分为三种重要性:第一、软件的测试为的是减少开发出的软件产品在发布上线后的维护成本,软件测试提早发现问题,并且解决。有的软件产品往往是在上线前没有对其进行完整的测试就匆匆上线,导致在之后的维护上投入了大量资源,甚至导致项目失败。同时测试也是对消费者的一种质量保障,为产品打下质量口碑的手段之一。 第二,软件测试为开发人员提供了明确的修改的或者维护目标,减少开发者查找问题的时间成本,在现如今各个讲究开发效率,对于时间掌控上,从开发人员或者项目经理的角度上看,如果开发人员能有一份完整且说明详细的测试文档,那在时间成本控制上能大大缩短开发时间。 第三,对于日后发布的新版本提供修改依据,依据维护工作。6.4 测试方法由于Android应用需要用户进行大量交互,此次测试中使用的是UIAutomator来对此软件进行功能和UI测试,UIAutomator是一个测试的Java库,包含了创建UI测试的各种API和执行自动化测试的引擎。通过对应api进行设置,来对此应用中的比赛新闻模块进行点击进入详情以及退出,持续使用收藏和取消收藏功能,连续点击视频播放,持续刷新以及持续加载等压力测试操作。6.5 运行情况在测试中,主要是针对各个新闻的点击进行测试,在测试新闻点击时,每个界面经过连续点击,并无发生程序崩溃情况。测试连续播放视频时,系统均能通过测试,视频无论在播放以及暂停,都未发生崩溃现象。在测试收藏功能时,对新闻数据进行连续的取消以及收藏,也均未发生崩溃现象。6.6 测试结果在运行过程中,各个功能模块未发生崩溃,各个功能经过多次反复运行,均能通过压力测试。至此,基于android系统的NBA新闻浏览客户端的第一版本开发完毕。6.7 本章小结本章主要围绕针对该应用程序测试的作用,方法,过程以及结果进行说明,通过测试,确认了该应用能支持一般用户操作需求。总结和展望 经过了三个月的努力,终于基本完成了本人基于Android系统的NBA新闻浏览客户端的毕业设计课题,从最初的题目敲定,到原型设计,再到后来的编码,测试等等,至今都历历在目。通过这三个月的开发,我从中学习到了非常多的新知识,以及开发技巧,同时对于以前不了解的知识模块,有了更深一层次的理解。在原型设计阶段,由于Android应用的操作方式都采用单双手指点击滑动操作,再对当前应用市场上的商用新闻客户端进行考察,该应用的UI原型设计就基本定位viewpager+fragment多界面滑动切换,以及上拉加载,下拉刷新的操作方式,同时主题采用暗蓝色配灰白色进行主色调搭配,经过多次修改,达到了最终版本的UI设计以及功能设计。相较于以前的应用开发,基本是一股脑的就一个界面一个界面的开发,到后面才发现设计不同意,功能拓展性差等缺点,经过此次原型设计,让我充分了解以及学习到了原型设计阶段的重要性。再来就是编码阶段,在这一阶段,由于使用了大量的第三方框架,就得要去学习该框架的api,以及基本实现原理,经过一个星期的学习及测试,终于搭建好所有框架开发环境,为快速编码提供了环境基础。在编码过程中,运用到了单例模式,三级缓存,json解析,以及组件复用等知识,在更深一点的则是handler原理,数据库处理,以及An
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 贵州省黔东南苗族侗族自治州2026届九上化学期中教学质量检测试题含解析
- 急诊科护士年度个人工作总结
- 2026届河北省唐山市路北区九年级英语第一学期期末达标检测试题含解析
- 辽宁省灯塔市2026届化学九年级第一学期期中教学质量检测模拟试题含解析
- 变电站值班员试题库含答案(50题)
- 百年风华-《在灿烂的阳光下》+课件+2025-2026学年人音版(简谱)(2024)初中音乐八年级上册
- 广东省阳江市2026届九年级化学第一学期期中检测试题含解析
- 2026届陕西省定边县联考化学九上期中达标检测模拟试题含解析
- 主题公园租赁合同租客娱乐体验服务协议
- 离婚协议书无子女抚养权明确及财产分配标准范本
- 2025-2026学年人教版(2024)小学体育与健康三年级(全一册)教学设计(附目录P114)
- 起重机作业人员Q2证理论考试练习题含答案
- 四川遂宁2021-2024年中考满分作文64篇
- 轧钢安全规程培训课件
- 2025年下半年上海市新航社区服务总站招聘5人备考练习题库及答案解析
- 2025版防洪堤坝加固工程施工合同
- 2025年消防经济学试题及答案
- 2025-2026学年人教版(2024)小学美术三年级上册教学计划及进度表
- 智能培训系统构建
- 2025年秋期新教材人音版三年级上册小学音乐教学计划+进度表
- 2025广东广州越秀区矿泉街招聘禁毒专职人员1人考试备考题库及答案解析
评论
0/150
提交评论