基于安卓的新闻客户端开发

 研究背景

当前市面上移动新闻客户端,包括网易移动新闻客户端,搜狐移动新闻客户端,凤凰移动新闻客户端等。这些客户端界面绚丽,版面较多,操作过程较为复杂。为简化流程,操作简单,方便用户使用和下载。所以,项目组人员决定,重新定义设计理念,操作流程简单,快捷,界面要求清晰,用户使用较长时间不会有视觉疲劳,且要美观,大方。本着适合大众口味,充分满足市场需求。

需求分析

在支持新闻获取的基本功能的基础上,让新闻应用更加开放友好,方便表达新闻阅读者对新闻事件的态度,成为有态度的新闻资讯体验者。Android新闻客户端目标:在提供获取新闻的基本功能的前提下,进一步进

用户需求挖掘,提供良好的用户体验,提高服务的响应速度,针对以上问题提出如下基本目标:

(1):图片进行分类展示,方便用户蹄选新闻内容,包括以下专栏:热点图集独家图集、明星图集、体坛图集、精美图集。

(2):针对多媒体资源的网络传输,采用异步交互与本地缓存相结合的策略,减少用户的等待时间。

(3):增加新闻搜索功能,用户可输入新闻关键字进行新闻搜索,反馈给用户匹配的新闻列表。

(4):实现‘聚合阅读’专栏,以扁平化的设计方案为用户提供新闻资讯,包括以下类别:新闻NEWS、体育SPORTS、财经FINANCE、科技TECH、娱乐ENT。

(5):主功能页展示娱乐、体育、图片、财经、科技、汽车等主要功能栏目,分类显示不同类别的新闻内容。

(6):用户可针对客户端提供的功能、体验等问题向网易官方进行反馈(相关反馈回复会在首次启动应用时从云端同步到本地数据库)。

关键技术

Linux 内核

Android基于Linux2.6提供的核心系统服务,主要包括:内存管理、网络堆栈、进程管理、驱动模型等。Linux内核也作为软件与硬件之间的抽象层,隐藏了硬件实现细节,为上层提供统一的服务。Android 运行时Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序都是Dalvik虚拟机中的实例,运行在各自的进程中。设备可以高效地运行多个Dalvik虚拟机。Dalvik虚拟机的可执行文件格式是.dex,该格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx是一套工具,可以将Java的.class文件转换成.dex格式。一个dex文件通常会有多个.class。由于dex有時必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。

Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。

应用程序框架

Android为开发者提供了开放的开发平台,使开发者能够开发所需的应用程序。

开发者可以利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等服务。

开发者可以使用核心应用程序所提供的框架API,包括:

视图:丰富的、可扩展的视图集合,可用于构建一个应用程序。包括列表、网格、文本框、按钮、甚至

内嵌的网页浏览器。

内容提供者:使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据。

资源管理器:使应用程序能访问非代码资源,如本地化字符串、图形和布局文件。

通知管理器:使所有的应用程序能够在状态栏显示自定义警告。

活动管理器:管理应用程序生命周期,提供通用的导航回退功能。

     基于Android平台的新闻客户端所用关键技术调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(表定义、索引、数据本身)都存储主机上,存在一个单一的文件中。作为轻量级的、嵌入式的、关系型数据库,SQLite目前已经在iPhone、Android等手机系统中使用,SQLite可移植性好、易使用、小巧高效而且可靠性高。SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它是完整的、自包含的数据库引擎。在Android中需要使用SQLiteOpenHelper[6]对象操作SQLite数据库,而SQLiteOpenHelper是一个抽象类,用户需要继承这个类,并实现该类中的一些方法。SQLiteOpenHelper是一个辅助类,主要负责管理数据库的创建和版本更新。

可以通过继承这个类,实现它的一些方法来对数据库进行一些操作。所有继承了这个抽象类的类都必须实现下面的构造方法:public DatabaseHelper(Context context,String name, CursorFactory factory, int version)

参数一 :Context类型,即上下文对象。

参数二: String类型,数据库的名称。

参数三:CursorFactory类型,游标。

参数四:int类型,数据库版本。

SQLite数据库

SQLite是一款轻型的数据库[5],是遵守ACID的关系型数据库管理系统,其设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了该数据库,SQLite数据库占用的资源非常少,在嵌入式设备中,只需要几百K的内存,并且能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,如C#、PHP、Java等,还有ODBC接口。与Mysql、PostgreSQL等开源数据库管理系统的区别在于:其处理速度更快。主要的通信协议由编程语言内的API直接XML 简介XML(eXtensible Markup Language),也就是 可扩展 标记 语言,简称 为XML。标记语言是一种能够被电脑识别的数据符号,电脑能够互相通过此类符号处理一些相关操作。定义此类标记的语言有 HTML 等不同类型,而从根本上来说 XML 是对标准通用语言(SGML)实施简化变更而实现的,可扩展标记语言,可扩展样式语言(XSL)、XBRL 和 XPath 等都是 XML 需要用到的语言形式。XML 的优点在于可以携带数据信息的同时对所携带的数据进行标识,而标识不用来表现数据,HTML 作用是展现数据,自定义文件描述同时丰富文件内容。XML 则可以通过标记文件呈现定义资料的信息;通过元数据(Metadata)表现文件相关的网络信在 XML 的配置文档(Configuration Files)中可以设置软件相关的一些参数。

 

程序使用流程

在 Android 版的新闻应用程序中,用户在点击图标以后,程序就会正式启动,首先来到的是“欢迎界面”,此时的进度条也会跟着滚动,一定的等待时间之后,便可以进入到客户端中,若是未通过验证,则会自动弹出,用户可再次输入自己的账户密码,再次登录。在客户端的主界面中,右上角有个人中心的入口,点击之后,便可以进入个人资料页。在下方,则是重要的资讯板块,诸如公司新闻,国内新闻,国际时事,以及教育旅游经济科技等。多个板块并列,用户点击其中一项,便能查看对应的新闻。新闻的布局以列表式的方式展示,右侧是大标题以及预览,左侧则列出文章的图片。最上方也就是最近更新的新闻,往下拉动则可查看旧的内。而在阅读界面中,左上方则是返回,点击之后就会回到新闻列表页面。右上方的按钮是一个保存的图标,用户可以通过它来收藏文章。而在登录界面,如果用户还没有申请账号,就会提示用户进行注册,点击相应按钮,用户名和密码输入之后,即可注册成功,然后再回到阅读界面,进行收藏或者评论等操作。用户在登录自己的账号之后,可以拉到文章底部的评论区,点击对应区域,输入个人评论,即可对文章进行点评。当一款软件开发完成之后,开发者需要做的,便是随时对其进行维护,对其中的 bug 进行修复,并在此基础上进行功能的调整。因而,软件在最初设计阶段,便要以易于维护为宗旨进行设计。

 

系统设计要求

1.可用性

Android 新闻移动客户端要求能使用能高效,易学,点击按钮 button 控件醒目,点击后与点击前会发生颜色变化,并且颜色美观。EditText 这个组件,可以让使用者了解到字符的输入,如果是密码,则会自动将其替换为隐藏信息的星号。TextView 这样的组件,使用者需要了解的是,这是一种无须进行改动的信息形式。而作为图像控件,借助 ImageView 使用者能够了解到它作为一种图片所呈现的信息。在版式上,要求布局的简洁,大方,漂亮。

2. 兼容性

Android 版的客户端,能够适用于所有安卓 2.2 以上的设备,也囊括了市面上的大部分手机品牌,诸如三星,HTC,小米,SONY 等。屏幕分辨率的支持则为WVGA800: 800*480,不过,其他尺寸的屏幕也均适用,只需稍作调整,也能够保证显示效果。

3. 健壮性

同样,健壮性也不是一种功能性的需求,但它极为重要,主要是则测试阶段或者设计时会起到作用。如下四种方式可有效提升其健壮性。第一方面,首选项可采取 Android 库,安卓库能够满足更大量的需求,是专门为这方面打造的。而 Java 也可以列入备选,它也是较为通用的,但 Android 更值得我们采纳。

第二方面,logcat 可为我们提供调试,警告灯方面的功能。第三,设计一套较为科学的内存分配方案。内存较为有限,不可能进行无限制的占用,需要对其进行合理的分配,提升执行率。此外,垃圾回收也是一个急需要考虑的问题。Dalvik 可以提供较好的内存监测。第四,要进行更为全面的测试,将尽可能多的设备及其环境考虑在内。

如果本客户端的使用者数量众多,如何保证客户的使用体验,如果网络出现问题,服务器,JSON 等方面如果也出现了异常状况,或者客户端发送请求时,出现超时等情况,客户端闪退,或者无法进入等各种状况都需要进行尽可能多的测试。此外,长时间的使用,积累的缓存数据过多,导致用户使用时会不会出现卡顿的情况,都需要给出一定的解决方案。

4.可维护性

客户端开发完成以后,会面临着后续的更新和维护,或者对客户端的架构进行调整,升级,或者 Debug 等,这些问题需要在客户端设计时考虑好,用较为规范的代码,以保证其易于维护。

4.3 业务组件设计

业务组件的设计主要就某业务过程中所涉及的实体类,Service 逻辑组件,Dao组件等的继承、实现等关系进行设计。业务组件的设计可加快逻辑代码的编写,明确开发过程。本系统挑选代表性业务组件的设计进行说明,包括:用户管理业务组件设计、新闻相关功能业务组件设计、用户评论业务组件设计和用户收藏业务组件设计。

4.3.1 用户管理业务组件

 

软件实现

  用户管理

在用户管理这个模块,共有注册、用户中心、设置、账号登录这几个环节。它的实现,是完成用户的信息与操作权限这两方面的管理。

 

在这个界面之下,我们可以看到共有以下几个图标/按钮/输入框。首先是左上的返回,中间的账户密码两个输入框,记住密码,注册登录等按钮,以及忘记密码。返回是让用户回到主界面。两个输入框要求用户分别登入自己的账号和密码,点击下方的登录按钮,即可进入等已经登陆账号后的主界面。在主界面,点击个人信息,即可跳转到个人中心。回到登录界面,用户还能够点击对应的按钮,记住密码,如此一来,下次启动客户端时,用户便可直接进入,无须重复登录。借助于 setUsername(),用户可设置自己的账户名,setPassword()则能够帮助用户填写自己的密码。

在本界面中,共有返回按钮,账号密码输入框,以及注册按钮。返回可以让用户回到之前的登录界面,在两个输入框中分别输入账号和密码,点击注册便会提示注册成功。注册时的字符也有着字符上的规定。在注册时,系统给定的头像是默认头像,用户需要前往个人中心作修改。

 

新闻模块

功能主要是主界面,检索,文章阅读这三方面,在主界面上,我们能够看到用户中心的按钮,搜索框,各新闻版块,左上方是一个搜索框,点击之中,就会响应搜索功能,用户输入想要查找的信息,即可完成搜索。右上方则是用户中心,点击之中进入登录页,键入账户密码进行登录,然后会进入主界面,便可正式进入用户中心。主界面上是各类新闻的板块,公司新闻,国际要闻,以及教育、旅游经济科技等。

 

 

用户收藏

收藏列表和个人收藏共同组成了用户收藏。这种方式使用户对所关注的新闻信息进行重复观看更加方便。

 

个人收藏是用户在新闻详情里面观看新闻以后,用户需要收藏当前需要观看的信息而设定的功能,个人收藏需要一定的权限。 如果用户没有登录,点击收藏图标 ImageView 会弹出 Toast 提示用户进行登录。并进入登录界面 Activity。用户登录成功后,返回到新闻详情界面。再次点击收藏图标 ImageView 会弹出 Toast提示用户保存成功。此时用户进入新闻收藏列表会看到用户收藏的新闻。收藏列表是用户所有收藏的 Activity。显示采用 ListView 方式。点击用户想要看的过去收藏的新闻。用户会跳转到该新闻。

总结:

本人首先参与了 Android 新闻移动客户端模块的需求分析操作参与了软件的概要设计过程,划分了相关模块,实现了对用户和新闻客户端功能模块的管理,实现了用户评论功能。随后,又进一步详细分析和设计新闻客户端。

本文的主要结论如下所示:

(1)针对 Android 新闻移动客户端各个模块,重点分析和研究功能需求,系统流程图与需求时序图根据需求分析获得。

  1. 对 Android 新闻移动客户端用户管理模块进行设计,主要包括用户收藏,评论和新闻等相关功能模块。
  2. 在用户管理模块当中,因手机本身存在的问题,包括网络版本等问题,用户将非法字符输入时,并且在完整的输入框进行输入时,可采取逻辑判断方法,对用户是否存在非法字符进行判断,因手机对自身的设计有一定的差异性,不能把全部内容统一输入之后,再判断对错。例如,手机使用自带的输入方式时,可以使用 TextWatcher 监控 EditText 手机自带的输入法,把某个字符输入时就可以判断,但是对与汉字相同的多种字符无法正确判断,如果对其他应用输入法进行应用,就能够判断出整体输入情况,例如搜狗输入法等。不过,因为每个用户应用不同的输入法,所以可进行整体判断,用户的体验被明显减弱,与此同时,为对字符进行限制,需要采用正则表达式,使多类字符的应用大大减少。把关键字搜索应用在新闻模块中,如果关键字存在,就能够从数据库中搜索到,这种情况使用户的体验效果下降,而用户的体验质量可以通过查询策略的完善得以提升。Android 新闻移动客户端仅仅简单的处理了周围环境中的干扰问题,给用户一个提示,要求等待,或者要求用户安全的退出来。这些情况的形成都是无线网络引起的。将来伴随无线局域网的持续发展,不断出现新的技术和业务,无线网络将得到进一步的分析和优化,用户的接入体验被有效提升,接入稳定性得到提升,传输速率越来越快,抗干扰性不断加强,不用手机用户的需求得到充分满足。
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值