基于android的资讯阅读APP

sweettalk

发布日期: 2019-03-13 10:19:11 浏览量: 310
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

1 需求分析

技术组管理系统的需求分析报告包括用例图、用户需求、输入需求、输出需求、 性能需求、数据流图、数据字典和 IPO图。

1.1 功能需求

随着智能手机的普及,技术以及网络设施等发展的基础上,传播更有效率,内容 更佳丰富立体,使用更佳便捷的手机新闻客户端逐渐成为新闻资讯主要传播渠道。根 据艾媒资讯对中国移动互联网新闻客户端发展分析报告显示,2016 年,中国手机新闻 客户端用户规模为 5.9 亿人,增长率为 4.4%。但随着新闻客户端差异化竞争的加强, 用户的分布格局还有无法固化。因此我们团队本着精炼、轻便的目标打造了一款安卓 资讯阅读 APP,旨在为用户提供丰富及时的新闻资讯和高效优质的阅读体验,使用户 能够保持对社会热点的实时关注,利用碎片化时间快速获取资讯,减少时间成本。

1.2 数据需求

此安卓资讯阅读 APP 需要的数据主要为时事热点新闻,包括新闻的标题,内容和 与之相关的图片。

1.3 数据来源

数据来源为利用爬虫在各大门户网站的热点新闻板块所抓取的新闻标题,新闻网页 URL,相关图片的 URL。

1.4 服务器需求

由于资讯阅读软件中所展示的内容需要存储在服务器中,所以开发过程中需要在 本地搭建一台虚拟服务器,以便 Android APP访问。

2 可行性分析

资讯阅读软件的可行性报告如下。

2.1 技术可行性

由于 MVC 软件设计架构可以通过使程序设计模块化,做到模块内部的高聚合和模 块之间的低耦合,所以 MVC 软件设计架构具有耦合性低、可扩展性好和模块职责划分 明确等优点,使得程序在开发的过程中,开发人员只需要专注于一点,提高了程序开 发的效率,并且更容易进行后续的测试以及定位问题。因此,本软件采用 MVC 软件设 计架构进行设计,该方案的技术可行性较好。

2.2 经济可行性

本资讯阅读软件开发过程中主要使用的软件有代码编辑器 Android Studio、本地安装的服务器Apache、MySQL数据库和PHP环境。因为以上软件都是免费的,所以经济可行性极佳。

3 架构设计

MVC 是模型(model)、视图(view)、控制器(controller)的缩写,是一种用业务 逻辑、数据、界面显示相分离的方法组织代码,在改进和个性化定制界面及用户交互 的同时,不需要重新编写业务逻辑。其中,模型负责处理数据、业务逻辑等;视图负 责处理界面的显示结果;控制器则起到桥梁的作用,来控制模型和视图之间的通信, 以此来达到分离业务逻辑和视图显示的目的。

  • 模型(Model): 我们针对业务模型,建立的数据结构和相关的类,就可以理解 为 Android App 的 Model,Model 是与 View 无关,而与业务相关的。对数据库 的操作、对网络等的操作都应该在 Model 里面处理,当然对业务计算等操作也 是必须放在的该层的

  • 视图(View): 一般采用 XML 文件进行界面的描述,这些 XML 可以理解为 Android App 的 View。使用的时候可以非常方便的引入。同时便于后期界面的 修改。逻辑中与界面对应的id不变化则代码不用修改,大大增强了代码的可维护性

  • 控制器(Controller):Android 的控制器的重任通常落在了众多的 Activity 的肩 上。这句话也就暗含了不要在 Activity 中写代码,要通过 Activity 交割 Model 业务逻辑层处理

4 界面设计

本资讯阅读 APP 采用经典的竖向条目式新闻布局,每页一次性加载 10 条新闻。在 每一条新闻中,最左侧是序号栏,在内容部分有一幅与新闻内容相关的缩略图,右侧 是该新闻的标题。

5 数据库设计

在获取新闻数据时,需要利用爬虫将各大门户网站的热点新闻进行抓取与内容的 分离,编写程序让计算机自动分离抓取内容。新闻数据表里,存放新闻的所有信息。 数据表所含字段如下:
新闻数据表:键值(id)、新闻标题(title)、内容 URL(url)、图片 URL(image)。

6 代码编写

6.1 前端代码编写

前端代码主要分为 4部分,首页的ListActivity,详情页的DetailActivity,首页列表 每个模块的模型 Cellinfo,以及适配器 Adapter。

  • ListActivity 首页列表的功能实现,主要模块如下所示:初始化模块,网络请求模块,刷新 UI 模块

    • 初始化模块
      完成对视图对象的控制器绑定(通过 findViewById 函数实现),完成对 ListView 的 初始化,定义下拉和上拉要执行的行为以及控件行为外观的定义。
    • 网络请求模块
      完成列表数据源的更新,通过第三方网络请求库okhttp实现与后台的交互,向后台 发送一次请求的数据量 limit以及数据偏移 page,后台返回需要更新的数据。
    • 刷新 UI 模块
      使用更新完成的数据源,通过适配器刷新列表界面。
  • DetailActivity 二级界面,显示首页点击后的跳转界面,将内容呈现在 webview中

  • Cellinfo 首页列表每个单元的模型,包含 id,title,url,picurl4个字段

  • Adapter 用于刷新首页列表的适配器

6.2 后端代码编写

后端程序首先连接到数据库,根据用户当前浏览的页码与所设定的每页新闻条数 从数据库中提取相应的新闻,然后将数据与所需展示的条目一一对应,最后将所有数 据转换为 json数据方便安卓客户端对于数据的读取处理。

7 程序调试

7.1 前端程序调试

调试主要分为两部分,一个是界面的美化,一个是逻辑性能的优化。

界面的美化重点在首页每个 cell的美化,需要反复测试,添加约束以达到符合人们 正常审美的标准。

关于性能逻辑的优化,主要在于异步加载图片的实现,因为所要展示的图片完全 来自网页,所以需要先下载图片然后才会展示在图中,而下载操作需要另外开辟线程。

在异步加载时,需要注意的问题是对应的图片应放入对应的窗口当中,这里需要 对每个 cell进行标记,在更新图片时判断是否为对应 cell的更新内容。

7.2 后端程序调试

后端的调试过程如下图所示。

当前端传来两个参数 page=1(页面编号为 1)和 limit=1(该页显示资讯条数为 1) 时,后端接收到之后,返回一条 json格式的数据。如下图所示,结果正确。

当前端传来两个参数 page=1(页面编号为 1)和 limit=2(该页显示资讯条数为 2) 时,后端接收到之后,返回一条 json格式的数据。如下图所示,结果正确。

参考资料

[1] 夏海伦. 移动互联网. PPT课件. 北京:北京邮电大学,2017.

[2] 陆惠恩主编. 实用软件工程. 第 3版. 北京:清华大学出版社,2015.

上传的附件 cloud_download 基于android的资讯阅读APP.zip ( 2.16mb, 1次下载 )
error_outline 下载需要8点积分

发送私信

我们走得很慢,但终有一天是会走到的

13
文章数
20
评论数
最近文章
eject