基于Android的新闻客户端毕业设计Word文档格式.docx
- 文档编号:16952583
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:25
- 大小:954.04KB
基于Android的新闻客户端毕业设计Word文档格式.docx
《基于Android的新闻客户端毕业设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于Android的新闻客户端毕业设计Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
3.5新闻客户端所用技术16
3.5.1JSON数据传输格式16
3.5.2异步加载新闻信息17
3.5.3数据交互方式17
3.5.4SharedPreferences数据存储18
4测试19
4.1分类显示信息模块19
4.2新闻详细信息模块21
4.3显示新闻评论模块23
4.4个人信息模块23
4.5用户登录注册模块25
4.6后台管理测试26
4.6.1管理登录模块26
4.6.2新闻信息管理模块27
4.6.3评论信息管理模块29
5结论30
参考文献31
致谢32
1需求分析
本章首先分析研究背景,介绍了研究目的与意义,接着分析并介绍了系统的功能性需求与非功能性需求。
1.1研究背景
现在智能手机已经成为人们必不可少的工具,网络也在飞速发展[1],用户从网上获取数据的需求也越来越大,新闻作为人们了解生活变化的重要途径,因此,网上获取新闻的用户数量飞速增加[2]。
随着大数据的到来,用户获取资料的方法也随之改变,新闻的发展与人们资料的获取不可分割。
现在已出现许多大型的新闻客户端,如:
腾讯、新浪、搜狐等[3]。
人们可以利用智能手机新闻客户端获取信息,新闻客户端发生如此快速的发展,在于它有以下的特点:
(1)便携性:
智能手机客户端可以随时,随处的查看新闻,使用方便,可以更好的满足用户需求,用户通过新闻客户端获取新闻逐渐成为趋势。
(2)数据广泛:
随着大数据的到来,互联网的信息更加丰富,新闻客户端可以从网量的数据中获取资料[4],使得容更加广泛,远远多于传统的报纸,书籍等获取新闻的方式。
(3)及时性:
用户可以随时的登录客户端,通过网络获取数据,智能手机可以随时携带,网络可以随时获取,使得新闻客户端更加的灵活,更好的满足用户的生活需求。
(4)良好的用户体验:
用户可以根据自己的爱好,有选择性的阅读新闻,同时可以评论新闻,参与互动,并且可以查看其他用户的看法,参考别人意见,更好的了解人们的生活动态。
1.2项目目的及意义
在满足用户可以分类获取新闻的同时,增加跟帖,收藏新闻等功能,用户可以查看跟帖与用户个人收藏,使用户更加具有参与性,成为有观点的阅读者[5],使新闻更加具有可读性。
用户可以根据跟帖数和跟帖容,更加快速的获取热门新闻,更快的选择新闻,节约用户的选择时间,更快的获取新闻,这样更具有用户体验,更容易满足用户的需求。
Android新闻客户端目标:
在满足用户查看新闻的基础上,更重要的是给用户更好的阅读体验[6],使用户可以在短的时间获取多的自己感兴趣的新闻信息。
为了达到以上目的,从而实现以下功能:
(1)对新闻进行分类显示,使用户可以分类选择自己喜欢的新闻,更加高效,快速,分别设置了如下分类:
国、国际、军事、体育、科技、财经、游戏。
(2)用户可以注册,登录,同时可以评论新闻,查看评论,使用户可以根据新闻的评论数与评论容,更好、更快的选取新闻。
(3)用户可以收藏新闻,并且查看收藏的新闻,使用户可以及时的翻看已经看过的感兴趣的新闻,加快用户的搜索效率。
(4)采用异步加载数据,给用户更好的体验,同时减少了用户的等待时间,更好的满足用户需求。
(5)增加个人信息设置,实现用户登录,修改个人信息,查看自己的收藏。
(6)增加夜间模式的设置,满足用户夜间阅读新闻的需求,给用户带来更好的体验。
后天管理目标:
实现对新闻的增删改查,对用户评论的显示与删除,以及对用户的增删改查。
1.3Android介绍
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备上[7]。
Android的创始人是AndyRubin,Android一词出自于科幻小说《未来夏娃》[8]。
Android系统是一个四层的结构,依次是Linux核层(Linuxkernel)、系统运行库层(Libraries和AndroidRuntime)、应用框架层(ApplicationFramework)、应用层(Applications)[9]。
图1.1Android系统架构
应用层(Application):
顾名思义,就是指Android的应用,也就是我们平时所使用的手机软件。
Android的应用很多,常见的有拍照、摄像、聊天、视频等方面的应用。
Android的开发一般在应用层上做开发,因此,开发人员只需要知道应用框架层的使用就可以进行开发了,而不需要知道Android更底层的使用。
应用框架层(ApplicationFramework):
同样,顾名思义,这一层就是应用程序所使用的框架。
这一层的主要作用就是封装了更低层的使用方法,为底层的使用提供API,同时,这一层也用于简化开发时的组件重用。
这一层为我们提供了大量的组件:
视图(Views)、容提供器(ContentProvider)、资源管理器(ResourceManager)、通知管理器(NotificationManager)、活动管理器(ActivityManager)、窗口管理器(WindowsManager)、包管理器(PackageManager)、即时通讯协议服务(XMPP)[10]。
一般开发人员会根据自己的需求来使用这些组件,或者自定义组件。
程序库和运行库(Libraries和Runtime):
这一层主要提供了一些Android需要的C/C++库、SQLite、媒体库等;
运行库中包括了一个核心库(CoreLibraries),提供了JAVA编程语言核心库的大多数功能,以及一个虚拟机(DVM,DalvikVirtualMachine)。
对于这一层,主要是为了能够将一些非Android语言的代码调用包含到Android中,使得Android能够调用C/C++的代码。
开发人员如果要对库进行开发,不仅需要有深厚的Android知识,还必须会C/C++语言开发,同时,还需要会JNI开发[11]。
Android核:
Android的核心是由Linux来提供服务的。
Android是建立在Linux2.6上的,因此需要Linux核来为Android的运行做出保障。
在Android核之上的是系统软件,而在Android核之下的是Android的硬件平台,所以Android核充当了两者之间的媒介。
1.4系统描述
本新闻客户端分为客户端和服务器两部分,以及后台管理。
服务器主要用于对文字,图片等数据的存储。
客户端是展示给用户的部分,用户可以做相应的操作。
后台管理主要是对新闻信息的增删改查管理。
1.5功能性需求分析
新闻客户端通过功能性需求分析可以将本项目按功能划分为以下功能模块:
显示新闻、用户评论、查看跟帖、用户收藏新闻、显示个人收藏,显示个人信息和夜间模式设置。
后台管理系统实现对新闻信息的管理,下面针对各功能模块分别进行功能描述。
1.5.1新闻客户端的主要功能
新闻客户端主要实现对新闻的分类显示功能,类别包括焦点、国、国际、军事、体育、财经、科技、汽车等。
用户可以按以上类别查看任意栏目下新闻容,并可以点击进入相应新闻的详细介绍界面查看具体容和图片;
同时用户可以对感兴趣的新闻进行相应的评论(即评论功能,用户评论新闻之前需要注册登录)。
用户还可以收藏部分新闻,并随时可以查看个人收藏,从而为用户提供更好的体验。
查看跟帖功能有助于提高用户的参与度,同时使用户更有效的选取新闻。
用户在夜间阅读新闻,可以切换到夜间模式,从而更好的满足用户的需求,更好的为用户提供体验。
1.5.2新闻客户端的功能模块
新闻客户端从整体上可以细分为七个功能模块:
(1)显示新闻:
用户进入的主界面即为显示新闻模块,用户按类别查看不同类别的新闻。
用户在该模块可以按分类查看自己喜欢类别的新闻,对选定的新闻可以进入其显示新闻的详细界面,其中新闻详细界面可以显示相关新闻的具体容及相关图片,可以左右滑动来切换相同类别下的新闻,具有良好的用户体验。
新闻主界面的栏目列表由多个列表项组成,每个列表项包括新闻的标题,概要,发布时间,进入新闻详细界面显示,方可看到新闻的具体容,同时右上部显示新闻的跟帖数,下方是新闻的评论部分。
(2)新闻跟帖:
用户在阅读新闻的同时,让用户及时的评论新闻,表达个人观点,使用户成为有观点的新闻阅读者[12],阅读者彼此之间可以互相查看跟帖,提高阅读新闻的互动性。
用户可以点击跟帖,查看跟帖容,从而更好的了解不同用户的观点,同时可以根据跟帖数更快的选取热门新闻,提高用户查新闻的效率。
(3)收藏新闻:
用户在阅读新闻后对感兴趣的新闻收藏,收藏前先注册登录,收藏后可以随时的登录查看自己的收藏,这样用户可以多次快速的阅读感兴趣的新闻,无需再去查找,阅读效率提升,更好的满足用户体验。
(4)个人中心:
用户可以注册,登录,这样可以及时的查看自己的收藏,可以更快的获取自己感兴趣的新闻。
(5)设置:
主要实现夜间模式与白天模式的切换,这样可以使用户更好的适应本客户端,更好的满足用户的需求。
1.5.3后台管理功能模块
本模块主要实现对新闻的增删改查,以及评论的查看,删除,还可以对用户信息进行增删改查。
1.6非功能性需求分析
本项目首先完成新闻客户端对用户的基本需求,同时还应满足一些非功能性的要求,如:
响应时间,可扩展性,以及易用性。
1.6.1响应时间需求
本项目是基于Android平台的,需要从数据库中获取大量数据,这就要求获取数据的时间尽可能的短,减少用户的等待时间,这样才能更好的满足用户的需求,给用户更好的体验[13]。
同时用户在获取数据的时候还可以阅读以显示新闻,无需死死的等待数据的加载[14],即异步获取数据。
1.6.2可扩展性需求
本项目在完成以后,如对项目有新功能的添加,添加尽量的简单,无需修改大量的代码,代码的编写要规同时尽量的做到高聚,低耦合[15],这样可以更好应对以后的功能的添加,提高项目的可扩展性。
1.6.3易用性需求
本项目的开发主要给用户使用,现在的新闻客户端越来越多,必须满足用户使用时简单,易查找相关信息,同时满足大部分用户的逻辑,实现功能的同时,用户可以快速的了解软件的使用。
2基于Android平台的新闻客户端的概要设计
本模块从整体框架对本项目说明,首先介绍了系统的应用架构与总体架构,接着从新闻客户端与后台管理两部分对本项目进行了简单,概述性的介绍,介绍了本项目的模块划分与每个模块整体上的实现。
2.1系统架构设计
新闻客户端用户发出获取新闻,评论新闻,收藏新闻等请求时,服务器向数据库作出相应的Url请求,数据库根据相应的请求操作数据库,并以JSON数据格式传输,最后对这些数据进行解析,最后反馈给用户。
图2.1应用架构
2.2系统客户端实现总体架构
用户看到的是采用XML布局文件描述的界面(视图层),用户可以进行评论,收藏等操作,由Activity来根据视图层获取的数据进行处理(控制层)并向服务器发出Url请求[16]。
其中服务器从数据库获取数据的过程,把数据库的每表封装成一个model类(模型层),通过servlet来控制对数据库中的表进行操作并获取数据,
总体上采用MVC设计模式。
(1)模型层:
对数据库中的表进行封装,每个表封装成一个model类,每个表中的一个字段对类中的一个属性,可以通过get和set方法对其设置,该模型主要负责对数据库的存取数据。
(2)视图层:
是应用程序中用于展示给用户的部分,本项目主要通过XML布局显示。
(3)控制层:
负责从视图获取数据,并向数据库发出请求,控制数据之间的传输。
通过MVC模式可以使项目的设计更加有层次,有助于管理复杂的程序。
图2.2总体架构
2.3系统功能模块划分
根据新闻客户端的需求,本项目划分为以下模块,分别为分类显示新闻模块,新闻详细信息模块,用户信息模块,用户登录模块,用户评论模块。
图2.3客户端功能模块组织结构
后台管理用于对新闻信息的增删改查,以及新闻评论信息的查看和删除,还可以对用户信息增删改查。
图2.4后台模块组织结构
2.4系统功能模块的分析及设计
本项目分为新闻客户端和后台新闻管理,接下来从这两部分进行分析及相关设计的介绍。
新闻客户端的设计是本项目的主要部分,先介绍本模块的设计。
本模块根据功能可以分为分类显示新闻信息,显示新闻详细信息,评论新闻,收藏新闻,显示个人信息,跟换夜间模式等模块。
具体功能的概要设计如下:
(1)分类显示新闻:
客户端通过url传去新闻的分类编号cid,获取新闻的条数count以及开始新闻编号startnid来获取数据库中数据,通过JSON格式传到客户端,然后进行解析,在分类显示新闻界面显示给用户。
(2)新闻详细信息:
通过点击分类新闻界面,新启动一个Activity,并将对应nid传过去,然后通过nid从数据库获取新闻的详细信息,显示在新闻详细信息界面,供用户阅读。
(3)评论新闻:
通过post请求将用户输入的评论信息以JSON格式传输到服务器,并将数据插入到数据库。
当用户查看新闻的评论时,通过get请求从服务器获取相应的评论,对获取的JSON数据格式解析,并显示在对应的显示新闻评论的界面。
(4)收藏新闻:
用户在新闻详细信息界面可以对自己感兴趣的新闻收藏,点击收藏按钮,将点击对应的新闻编号nid和登录的用户编号uid通过post请求传到服务器,并保存到mysql数据库。
当用户查看自己的收藏是,根据自己的用户编号查到新闻编号,然后将对应新闻编号的新闻信息通过get请求获取到,解析并显示供用户阅读。
(5)用户登录注册:
用户可以输入自己的信息,点击注册,提交给服务器并保存到数据库。
登录时,根据用户输入的信息与数据库的数据对比,判断是否登录成功。
2.5数据库设计
本项目数据库用五表存储,分别为新闻容表、新闻分类表、新闻收藏表、新闻评论表、用户信息表。
(1)新闻容表:
用于存放新闻容,其中nid唯一标识新闻,cid标识其所属分类,与新闻分类表相关联,deleted字段用于标识新闻是否存在,imgsrc用于标识该新闻对应的图片。
表2.1新闻容表
属性名
数据类型
是否为空
含义
nid
int
否
新闻编号
cid
分类编号
title
varchar
新闻标题
digest
新闻摘要
续表2.1新闻容表
body
text
新闻容
source
是
新闻来源
ptime
新闻时间
imgsrc
新闻图片
deleted
新闻是否被删
(2)新闻分类表:
用于显示新闻的所属类别,主要分为焦点,国,国际,军事,财经等类别。
表2.2新闻分类表
分类名称
是否被删
(3)新闻收藏表:
nid表示标识对应新闻,uid用于标识收藏新闻的用户,可以查看某个用户所收藏的新闻信息。
表2.3新闻收藏表
sid
收藏编号
username
用户名
uid
用户编号
(4)新闻评论表:
nid表示新闻编号,用来标识评论对应的新闻。
表2.4新闻评论表
评论编号
评论时间
region
地区
content
评论容
(5)用户信息表:
username和password分别表示用户名和密码,用于用户的登录验证。
表2.5用户信息表
password
用户密码
图2.5数据库表结构
3详细设计
本章对本项目各个功能模块的具体实现进行了详细的介绍说明,接着介绍了本项目中技术。
主要对本项目的模块实现细节的分析与说明。
3.1显示新闻模块
本模块最上端由一个RelativeLayout实现,里面有两个按钮,一个点击进入个人信息界面,一个点击进行新闻信息的刷新,还有一个文本用于显示新闻名字。
接着又是一个RelativeLayout用于显示新闻分类,其中由HorizontalScrollView实现,可以左右滚动来显示分类。
中间由ListView实现,每个ListView中的item包含一个XML文件用于显示新闻的标题,摘要,来源于时间,这些信息都由TextView实现。
图3.1分类显示新闻时序图
在MainActivity通过id找到个人信息按钮,并通过setOnClickListener方法设置点击要处理的事情,在匿名部类OnClickListener的onClick方法中通过intent启动一个Activity从而跳到个人信息界面。
点击刷新按钮,调用继承了AsyncTask的LoadNewsAsyncTask中的execute方法来实现信息的刷新。
Excute方法中通过调用获取新闻信息的类来再次获取数据并显示到新闻客户端,从而实现新闻的刷新。
接下来是显示新闻分类部分,新闻分类保存到了一个array.XMl文件中,在MainActivity中通过id获取该数组,创建GridView并设计其属性,创建CustomSimpleAdapter通过其参数将GridView,以及需要放置的XMl位置对应在一起,最后放到本模块的LinearLayout中显示出来。
其最外层是LinearLayout,里面由orizontalScrollView实现,再里面放的是GridView,每个GridView元素是一个TextView。
最后就是新闻标题,摘要,时间,出处等的显示。
整体是由一个ListView,同样使用适配器模式设计,通过SimpleAdapter对象将获取的新闻标题,摘要,时间,出处与相应的XML对应上,然后通过setAdapter方法将适配器加到ListView上,使ListView显示新闻的摘要信息。
3.2显示新闻详细信息模块
最上面是一个RelativeLayout,RelativeLayout中最左端是一个Button用来切换到上一条,然后是一个TextView用来显示新闻的分类,接着又是一个Button用来显示新闻的跟帖数,最后是一个Button用来切换到下一条新闻。
中间用的是一个ViewFlipper用来显示新闻的详细信息。
最下面用include包含一个newslist_item.xml用来显示新闻的跟帖部分。
其中newslist_item.xml中包含两个LinearLayout,第一个LinearLayout用来显示写跟帖前的部分,第二个LinearLayout用来显示发表的时候的信息。
图3.2显示新闻详细信息时序图
上面切换新闻上一条和下一条的两个按钮,在NewsDetailsActivity中通过id获取并设置OnClickListener点击响应事件,通过ViewFlipper的showPrevious()和showNext()方法来切换新闻的上一条和下一条。
显示新闻分类的TextView,通过setText()来设置它的文本信息,其中信息通过新建Intent和Bundle对象,然后通过bundle.getString()方法来获取前面传过来的新闻分类,并显示在TextView中。
接着是显示新闻跟帖数的按钮在NewsDetailsActivity中通过id获取,并通过setText()方法来设置跟帖数,在setOnClickListener()方法中通过Intent来跳转到显示新闻评论信息的界面comments.xml。
中间部分的ViewFlipper通过addView()方法将用来显示新闻详细信息的news_body.xml显示在ViewFlipper中,其中news_body.xml中最外层是一个ScrollView用来实现新闻信息的上下滑动,接下来是TextView用来显示新闻的标题,容和来源。
通过实现OnTouchListener接口来实现新闻的左右滑动,通过event.getX()来获取当前X值,通过按下时的X值和离开时的X值来判断是向左还是向右滑动,从而判断显示新闻的上一条还是下一条。
接着是最下面的新闻跟帖部分,点击前的LinearLayout中包含一个ImageButton和一个ImageView用来显示评论,跟帖部分还有一个ImageButton用来实现新闻的收藏,点击后的LinearLayout中包含EditText用于用户的信息的输入。
通过定义InputMethodManager对象并通过调用toggleSoftInput()方法来实现虚拟键盘的显示。
3.3新闻跟帖显示模块
最上面是一个RelativeLayout,里面是一个TextView用来显示跟帖,还有一个Button按钮用于返回到新闻详细界面。
中由一个ListView实现新闻评论信息的显示。
最上面的TextView通过android:
text显示跟帖,Button按钮通setOnClickListener方法,并重写onClick()方法,在方法中finish()方法关闭当前Activity,返回到新闻详细界面。
中间的ListView使用适配器模式,创建SimpleAdapter对象,并通过setAdapter()方法添加到ListView上。
3.4后台管理功能模块的详细设计
3.4.1用户登录模块
将用户信息封装到一个model文件夹下的user类,里面有用户名,密码等属性,用户进入登录界面login.jsp,通过输入用户名和密码,然后点击登录按钮,提交给loginservlet,然后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 新闻 客户端 毕业设计