基于Android平台开发生活小助手-毕业论文 - 图文(2)

2019-06-11 20:42

正文

1.3 论文组织结构

此次毕业设计主要是对生活小助手软件的UI界面设计和各模块程序代码的编写。主要工作包括:设计每一个功能显示界面,设置界面中每一个控件的布局,设计界面背景图片,控制按钮的点击效果,创建并使用本地数据库,从Web Service获取天气信息和列车时刻信息并存储等等。

经过近13周的努力,基本上完成了此次软件开发的任务。本文总结了生活小助手软件开发过程,全文内容共六章,具体安排如下:

第一章概括了开发背景、课题意义。

第二章是需求分析,主要针对此软件进行了功需求、UI需求和数据需求等各方面的分析。

第三章是关键技术介绍,主要介绍了开发中所涉及到的相关技术,主要包括:Intent、BroadcastReceiver、Service、Web Service、SOAP协议、HTTP POST请求、SAX解析。并摘取部分软件代码作为示例代码。

第四章是系统设计,主要介绍了系统结构设计、界面设计和数据库设计,给出了系统结构模型图,主要界面的设计草图(用PhotoShop软件设计),以及各个数据库表的设计情况。

第五章是系统实现,介绍系统的各个功能,并呈现了核心代码。

第六章是系统测试,展示出来的是列车时刻表模块的测试过程,其它模块不予展示。 最后是总结全文。

2

正文

第二章 需求分析

在生活小助手软件开发之前,要做好充分的需求分析。首先进行功能需求分析,根据生活小助手软件的三大模块:天气预报、食谱、列车时刻表,分析每个模块要实现的具体功能,了解最终达到的目的。其次,进行UI需求分析,对于此软件开发,UI界面必不可少,分析用户的使用习惯,确定UI界面设计需要的图片和按钮。最后,则进行数据需求分析,用户使用软件的最终目的是获取数据信息,分析本软件开发需要的数据,从而确定数据来源并收集相关数据信息。

2.1 功能需求

2.2.1 主界面功能需求

系统主要实现三大功能:天气预报,食谱,列车时刻表。为了便于用户的操作,该软件中各个功能之间的切换是通过主界面的按钮点击事件实现的,因此需要在主界面中设计四个按钮供玩家选择,分别是“天气”、“食谱”、“列车”。这样的设置让用户一目了然,各具体功能如下:

? 天气:点击跳转到天气界面,开始查询默认城市的天气,并可以添加、删除城市

? 食谱:点击跳转到食谱界面,可以查询、浏览食谱信息、存储食谱信息、并且可以自制食谱。 ? 列车:点击跳转到列车界面,可以通过站站、车次查询列车信息,可以把查询到的列车信息存储

在本地,以便在无网络的情况下使用。

2.2.2 事件响应需求

系统的事件响应主要是按钮响应和图片响应,根据不同动作做出不同响应,依据这些事件响应实现界面的跳转、对话框的显示等等。具体功能如下图:

添加城市天气信息显示城市刷新天气首页天气信息食谱推荐列车首页保存站站查询车次查询提醒我自制菜谱我的收藏 图 2-1 系统功能模块图

3

正文

2.2 UI需求

一个软件是否受欢迎,取决于它的功能和观赏性,越来越多的Android软件出现使用户的要求越来越高,所以软件的界面优化和图形设计时至关重要的。具有以下美工需求:

? 背景:项目要实现三大功能,不可避免的要分为很多界面,每个界面需要不同的图片和图形元素。

这些界面有的只需要一个背景图片,但有时候则需要多张背景图片叠加构成。

? 按钮:本项目对按钮要求较高,按钮的使用方便了触屏的操作,每个界面都不可缺少按钮。 为了满足用户对UI的要求,计划采用下载网上素材和设计两种方式,用Photoshop图片处理软件处理图片、设计按钮等从而达到简洁美观的效果

2.3 数据需求

该项目对于数据信息的处理较多。食谱信息是存储在本地,可以直接通过对数据库查找读取信息。天气预报和列车时刻信息则需要通过调用Web Service获取数据。具体信息输入输出情况如表2-1:

表2-1 信息输入输出 信息输入 选择食谱名称 输入天气预报城市 信息处理 软件通过数据库查询相应的食谱信息 软件通过联网获取该城市信息后筛选出有用信息 信息输出 显示食谱信息 输出有用信息 输出该车次信息 输出车次信息列表 刷新收藏的食谱信息列表 刷新收藏的城市信息列表 刷新收藏的列车信息列表 用户输入列车车次 软件通过联网获取该车次的始发站、时间、路程信息 输入列车始终站 收藏食谱信息 收藏城市信息 收藏列车信息

软件通过联网获取相关车次、时间等信息 对数据库的食谱信息管理 对数据库的城市信息管理 对数据库的列车信息管理 4

正文

第三章 关键技术介绍

根据对生活小助手软件的功能需求分析,可以确定此次开发所涉及的关键技术。Intent在Android软件开发中几乎是必不可少的,在此次开发中,其主要是用于activity之间的数据传递以及activity间的跳转。BroadcastReceiver、service与SOAP协议这三项技术主要是通过访问Web Service获得天气预报数据怒。本软件通过HTTP POST请求获取列车时刻表的数据流,然后通过SX解析获得所需要的信息。SQLite数据库主要实现数据添加、删除和查询功能。

3.1 Intent

Intent翻译为意图,使用它可以给其他的Activity或Service组件传递数据,Intent相当于组件间通信的桥梁。通俗地说就是告诉系统我们要干什么,Intent有显式和隐式之分,显示的Intent是根据组件的名称直接启动要启动的组件,如Service或者Activity;隐式的Intent通过配置的action,category,data来找到匹配的组件并启动。

在显式Intent中,如果程序已经明确了目标组件,那么就可以通过显式意图的调用方式直接启动。在Android中通过Intent对象来传递数据给另一个Activity。可以传递的数据类型包括:byte、byte[]、char、char[]、boolean、boolean[]、short、short[]、int、int[]、long、long[]、float、float[]、double、double[]、String、String[]。

示例说明如下: FoodHomeActivity.java

//通过传递Intent对象传递数据

Intent intent =new Intent(FoodHomeActivity.this, FoodSearchActivity.class);

FoodSearchActivity.java:

//获得从FoodHomeActivity中获得食谱名

Intent intent=this.getIntent();

foodname=intent.getStringExtra(\

intent.putExtra(\startActivity(intent);

显式Intent的目的性比较明确,而隐式Intent则不同。在隐式Intent中,没有明确的目标组件名称,所以系统需要帮助应用程序寻找组件,该组件要与Intent请求意图相匹配。在IntentFilter中包含了系统所有可能的待选组件,Android将Intent的请求内容和IntentFilter过滤器比较。如果隐式Intent请求的内与IntentFilter中的某一组件相匹配,那么Android就选择该组件作为该隐式Intent的目标组件。

3.2 BroadcastReceiver

Broadcast是一种广泛应用在应用程序之间传输信息的机制,而BroadcastReceiver主要作用是对发送出

5

正文

来的Broadcast进行过滤接收。BroadcastReceiver自身并不是实现用户界面,但是当它接收到某个Broadcast后,BroadcastReceiver可以启动Activity作为响应,或者启动Service等。

BroadcastReceiver的生命周期只有一个onReceive()方法,在BroadcastReceiver接收到Broadcast时执行,而用户可以做出相应的处理,往往需要对接收到的所有Broadcast进行过滤,只对一种或者一类进行处理。在需要发送信息的地方,用Intent对象装载要发送的信息和用户过滤的信息,然后调用sendBroadcast()、sendOrderBroadcast()等方法,把Intent对象以广播方式发送出去。

代码说明如下: WeatherMainActivity.java:

//为BroadcastReceiver指定action,

private final String BROADCAST_ACTION = \private MyBroadcastRecever myBroadcastRecever; //定义广播接收器

//注册广播接收器

IntentFilter filter = new IntentFilter();

//初始化广播接收器

myBroadcastRecever = new MyBroadcastRecever(); //接收同action的广播

filter.addAction(BROADCAST_ACTION); //注册广播接收器

registerReceiver(myBroadcastRecever, filter);

//定义一个广播接收器,用于接收Service获得的天气信息

class MyBroadcastRecever extends BroadcastReceiver{

@Override

public void onReceive(Context context, Intent intent) {

String[] weatherInfo = intent.getStringArrayExtra(\if(weatherInfo==null){ }else if(weatherInfo.length==1){

//即weatherInfo = new String[]{\

Toast.makeText(WeatherMainActivity.this, \连接超时,请检查网络\

}

}

}else{ }

showWeather(weatherInfo);

Toast.makeText(WeatherMainActivity.this, \没有当前城市的天气信息\

6


基于Android平台开发生活小助手-毕业论文 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:商场管理制度和方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: