马有翼毕业论文1(终稿)

沈阳理工大学应用技术学院

毕业设计

题目:基于安卓的良食健康饮食信息系统语音搜索模块设计

院系:信息与控制学院

专业:软件工程(嵌入式)

班级学号:12300105

学生姓名:马有翼

指导教师:关世杰

成绩:

2016年 3 月30 日

文件修改记录

修改日期版本号修改内容修改人2015-7-10 V1.0.0.0 添加3D新闻功能、分享功能、反馈功能赵猛

2015-7-12 V1.0.0.0 添加友情提醒功能、定时提示功能张文浩

2015-7-15 V1.0.1.0 语音搜索功能马有翼

2015-7-18 V1.0.1.0 更新Bmob云端数据库马有翼

2015-7-22 V1.0.2.0 加入语音播报技术张文浩

2015-8-2 V1.0.4.0 加入云统计赵猛

2015-8-17 V1.0.5.0 加入多语言模式杨洪全

2015-8-25 V1.1.0.0 加入SlideMenu技术、更新云端数据库杨洪全

术语及缩写

序号名称说明

1 Application Programming Interface API(应用程序编程接口)

2 Software Development Kit SDK(软件开发工具包)

参考资料

文档版本说明

1 Android 2.3应用开发实战2011 年6月机械工业出版社

2 Android经典应用程序开发2012 年2月电子工业出版社

3 Google Android SDK开发范例大全2009年07月人民邮电出版社

4 Android开发完全讲义(第2版) 2012 年4月中国水利水电出版社

5 Android项目实战2013年5月版电子工业出版社

6 疯狂Android讲义(第2版) 第二版电子工业出版社

1

1 系统分析与设计

1.1 需求分析

本系统是基于Android系统的健康饮食规划以及美食制作流程查询软件。Android 是一种基于Linux? V2.6 内核的综合操作系统。最初,Android 的部署目标是移动电话领域,包括智能电话和更廉价的翻盖手机。Android操作系统最初由Andy Rubin开发,2003年10月,创建Android公司,并组建Android团队。2005年由Google收购注资,后逐渐研发改良Android系统,并扩展到平板电脑及其他领域上。Android的主要竞争对手是苹果公司的IOS以及RIM的Blackberry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。2013年9月24日谷歌开发的操作系统Android迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。

随着时代的发展,人们越来越追求对生活质量的改善,从过去的单一生活观念向着现在享受生活的观念转变,越来越多的美食节目走入我们的生活,,舌尖上的中国更是掀起一股美食浪潮,这也向我们APP开发者们提供了一个重要的讯息:人们迫切需要一款功能强大的实用的健康饮食APP。我们的软件——良食,就是基于这样一个一个理念而开发的。在优势方面,安卓(Android)平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。

开放性对于安卓(Android)的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。

如今叱诧互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而安卓(Android)平台手机将无缝结合这些优秀的Google服务。

2

3

1.2 系统功能设计

1.2.1 系统功能模块图

系统模块图如图1.2.1所示

图1.1 首页界面

1.3.1 3D 新闻功能

3D 新闻功能可谓是本软件的又一大亮点,使用了Unity 三维动画技术做为新闻的导航栏,让用户在使用的过程中享受视觉上的冲击感,不仅如此,还将新闻与Bmob 技术相结合,在Bmob 中我们实时更新新闻内容,并自动匹配到我们的3D 新闻中,让用户一手掌握有关健康饮食的最新动态! 1.3.2 语音搜索功能

考虑到用户阅读新闻的方便性,我们还引用了当下深受用户欢迎的科大讯飞语音云服务技术,用户可以根据自己的喜好选择是否自动朗读当前新闻。同时我们提供了强大的语音搜索功能,我们切实的做到了只要客观存在的菜谱和营养知识,我们都能搜索到并且包含多种多样的类别,是用户不在为找不到相应的菜谱

接收通知

定时提醒 接收通知 菜品列表

各类别菜

左侧菜单

首页

分类 设置

所有菜品

良食

登陆

我的发布

分享 收藏列表

云统计 云新闻 反馈

知识而苦恼,这也是与市面上很多同款应用不同的地方,大大的方便了用户。1.3.3 分享功能

分享功能的实现引用了https://www.360docs.net/doc/258758138.html,提供的ShareSDK,实现了面向9种常见的社交软件的分享,更为强大更为全面的分享就此诞生!在分享中,用户可以实时分享养生之道以及本软件的下载地址。

1.3.4 设置功能

设置功能中引用了定时提醒功能和通知栏功能。能使用户在适合自己的时间段设置时间提醒,在这个时间里本应用会自动提示用户进行相应的查看。

1.3.5 多语言功能

多语言功能的实现,极大的便捷了用户的实用,为各大用户群提供了更为人性化的考虑。

1.3.6 上传功能

我们还提供了让用户自己上传菜肴的界面,但是我们的云端后台提供了严格的审核和科学的分析,只有通过严格的审核,用户的上传才会生效,显示在我们的应用上,为用户和家人的健康提供了保证。

4

1.4 数据库设计

表1.1 用户账户表(User)

字段名类型是否可为空值说明

objectId String 不可为空用户账户ID

userName String 不可为空用户账户名

passWord String 不可为空用户账户密码mobilPhoneNumber String 可为空用户联系电话Sex Boolean 可为空用户性别信息

Email String 不可为空用户电子邮件地址

QQ Number 可为空用户QQ账号Introduce String 可为空用户介绍

trueName String 可为空用户真实姓名

emailVerified Boolean 可为空邮箱地址是否已被验证

createdAt Date 不为空用户账户创建时间

updatedAt Date 不可为空用户账户信息最后更新时间

5

表1.2 菜品信息表(mainDatabase)

字段名类型是否可为空

说明

objectId String 不可为空菜品ID

Name String 不可为空菜品名称

Type String 不可为空菜品所属类别名称Summary String 不可为空菜品简介Introduce String 不可为空菜品详细介绍

Icon File 不可为空菜品图标

Tag1 String 可为空菜品标签信息1

Tag2 String 可为空菜品标签信息2

Tag3 String 可为空菜品标签信息3

Tag4 String 可为空菜品标签信息4 Nutrient String 不可为空菜品营养信息

right_time String 不可为空菜品适宜使用时间信息Right_people String 不可为空菜品适宜食用人群信息Heat String 不可为空菜品热量信息

Uper String 不可为空上传菜品信息的用户名称location String 不可为空上传用户所在地信息createdAt Date 不可为空菜品信息创建时间updatedAt Date 不可为空菜品信息最后更新时间

6

表1.3 收藏夹表(CollectionDatabase)

字段名类型是否可为空值说明

objectId String 不可为空收藏夹菜品条目ID collect_name String 不可为空菜品名称collect_userName String 不可为空所属账户的账户名collect_icon File 不可为空菜品图标

createdAt Date 不可为空收藏时间

updatedAt Date 不可为空最后修改时间

7

2 系统实现

2.1 系统框架

2.1.1 系统关键技术

1、Bmob移动后台云端技术。

在Bmob平台上,只需注册一个帐号,成功后即可申请创建多个项目,每个项目下均可建立多个数据表供应用使用。于Bmob平台创建应用后,即可获得该应用专属的Key,下载对应版本的SDK并将其嵌入到移动应用中,便可以调用Bmob官方提供的API,对数据表内的数据进行操作。给应用软件快速添加一个安全灵活的后台管理系统,方便浏览终端保存的各种信息。

2、Unity三维技术。

Unity类似于Director,Blender game engine, Virtools 或Torque Game Builder等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Windows 和Mac OS X、Android平台下,可发布游戏至Windows、Mac、Wii、iPhone、Windows phone 8和Android平台。

3、云知声语音云服务技术。

语音云给用户带来的好处是更方便借助云计算手段,实现快速的语音应用。开发者使用语音云提供的开放SDK,就可以开发语音识别应用。此时,开发者开发的APP将用户的语音信号通过网络传入语音云平台,语音云识别后再把识别语音云识别后再把识别结果送回APP,从而实现了整个语音识别的过程

国内的开放语音云主要有2家,“科大讯飞”和北京“云知声”,他们都能支持目前主流的手机操作系统。

4、https://www.360docs.net/doc/258758138.html,提供ShareSdk的使用。

ShareSDK是中国最大的APP内分享服务提供商,ShareSDK社会化分享全面支持微信,微博,QQ空间,来往,易信,Facebook等国内外40个平台。

5、Achartengine类库的使用。

Achartengine类库和Bmob的完美结合,使得我们在前台能够准确的获得相关菜品的点击量,让用户知道最近比较流行的菜品,给用户更大的选择空间。

8

9

2.1.2 系统类的含义

以下为针对云数据加载模块及账户模块的关键类文件的含义介绍。本系统的程序文件结构如图

2.1所示。

图2.1 项目文件结构

2.2 软件欢迎模块

我们为了体现出本软件的主题“健康饮食”,在此理念之下,我们设计了欢迎界面,欢迎界面的实现使用了一个ImageView 控件,将体现主旨的图片加载到该控件当中,并且设置该控件的显示时间为10s ,从而实现自动进入软件主界面的效果。如图2.2欢迎动画所示。

图2.2 欢迎动画

2.3登陆以及注册模块

作为一个功能强大且能进行个人数据查看的软件,就必须有个人用户界面。用户在登陆后才可以对“我的发布”、“收藏列表”功能进行使用。同时,我们还设置了游客登录模式,在此模式下,用户可以使用除了“我的发布”、“收藏列表”之外的

功能。用户登录界面以及用户注册界面如下图4.3、4.4所示。

10

11

图2.3 登陆界面 图2.4 注册界面

2.4 相关美食显示模块

作为一个能实时查询美食制作方式以及功效的软件,显示美食状况的界面必不可少,从方便用户实用和查询的角度出发,我们将显示界面分为五个模块:推荐模块、夏季模块、冬季模块、早餐模块、儿童模块、老人模块。在这里,用户可以根据不同的实际状况进行相关的查询。选择合适的菜品后点击收藏,可将该菜品放入个人收藏栏。我们还在该界面添加了语音搜索、菜品上传功能,便于用户对本软件的使用。相关美食显示界面图2.5、

2.6所示。

12

图2.5 首页界面 图2.6 语音搜索界面

2.5 所有菜品模块

本软件中,浏览所有菜品功能是必不可少的。

点击所有菜品导航按钮,便能自动跳转进入所有菜品界面,在该界面中,引用了ListView 控件,用于显示查询。用户选择一道菜品后,可以进入菜品的详细介绍界面,在这里,用户可以浏览到菜品的功能介绍以及详细制作流程。所有菜品浏览界面如图2.7所示。

图2.7 所有菜品界面

2.6 详细信息模块

每一道菜品,都提供了简介以及详细的介绍信息供用户查看,还包括热量、营养元素等营养信息以及适宜人群、适宜时节,使用户能够详细了解这道菜品。同时在本界面内,用户还可以将喜欢的菜品收藏至自己的账户中,方便日后查看。

详细信息界面如下图2.8 所示。

13

图2.8 所有菜品界面

2.7 分类模块

为了便于用户的查询,我们还添加了分类界面,在这里,我们根据不同食物的功效或者不同用户的需求,将不同的菜品进行分类,一共分为9个类别,极大地提高了软件的实用价值。用户在选择相关类别后,可以进入相关类别菜品的具

体介绍界面。分类界面如下图2.9所示。

14

15

图2.9 所有菜品界面

2.8 侧滑菜单模块

用户们对于软件美化要求越来越高的今天,一款软件的UI 界面也成为决定一款软件是否成功的关键!在实现了获取菜品信息后,我们开始研究以何种方式来显示附加功能栏——菜单栏,最终,我们决定采取侧滑菜单(SlideMenu ),这种菜单栏不但能实现一般菜单栏的功能,还能大大提高用户体验。侧滑菜单如图2.10所示。

图2.10 侧滑菜单

2.9 3D新闻模块

随着时代的发展,人们对一款软件的关注度不仅仅再止步于单一的功能,在当前这种不断要求创新的环境下,我们大胆的加入了全新的3D新闻功能,这个功能中所实现的是以炫酷的Unity三维技术为新闻标题导航界面,将Bmob云端数据库与科大讯飞语音云服务技术完美结合的强大的新闻浏览功能,真真做到新闻的可读可听,完美的新闻标题浏览界面绝对给你视觉上的冲击感!用户在点击3D新闻后,便可进入3D新闻标题界面,在这里,只需要您动一动手指,就可以让新闻标题滚起来,在众多的标题中翻出您想要的那一条新闻,选择完新闻后,点击即可进入阅读界面,在这里,您可以根据自己的喜好,设置是否语音读出新闻内容了。选择3D新闻界面如图2.11、图2.12所示。

图2.11 3D新闻界面图2.12 3D新闻详细界面

16

2.10 云统计模块

我们使用了Achartengine类库和Bmob的完美结合,我们充分分使用了他们集成的类库,使得我们能够更准确的更实时的获取用户当前点击的的菜谱,在Bmob 云端后台我们抓取了这个点击数据,通过bmob的操作语言传送到前台,在Achartengine类库中实现view显示,使得用户一目了然的知道当前是什么菜品最流行。如图2.13

图2.13 云统计界面

2.11 分享模块

作为一款软件,分享功能是一大重点,尤其是对于我们这款软件。点击分享后,便能进入分享界面,在这里,我们运用了https://www.360docs.net/doc/258758138.html,所提供的ShareSdk实现了9种常见社交软件的分享功能,可以说,这是最实用的分享功能。我们所分享的内容是养生之道以及本软件的下载地址,当然还可以根据客户的喜好自行编写。且分享操作简单,进入分享洁界面后,提供分享平台的界面便会自动弹出,您只需

17

左右滑动来选择您想分享的平台即可,点击取消,便可以取消分享。分享界面如图2.14所示

图2.14 分享界面

2.12 反馈模块

一款软件的诞生就注定要跟随着用户的需求来不断进行更新。为了更好地完善本款软件,我们还为用户添加了意见反馈功能,这个功能中,我们用到了Bmob 云端数据库的功能,用户反馈的信息会存放在我们的云端数据库中,我们只需要登陆云端数据库即可看到用户们的反馈信息。点击反馈即可进入反馈界面,在这个界面中,我们充分为客户考虑,简单的界面操作方便,只需要在意见中填写您要反馈的信息,根据您的喜好度选择星星指数,选择完毕后按确定即可将您的反馈信息发送给我们。反馈界面如图2.15所示。

18

图2.15 反馈界面

2.13 设置模块

为了做出更人性化的软件,我们还加入了设置功能,点击设置就可以进入设置界面。在本界面中,用户可以设置是否显示通知栏和每天是否定时提醒查看菜品信息的功能。点击打开通知栏,软件便会自动获取本软件运行状况的信息,如果您不想显示通知栏的信息,只需要点击关闭通知栏便可。

关于设置定时提示,我们只需选择想提示的时间,在选择完毕后,点击设定定时提示,这样,软件便会在每天您所设置的时间提醒您查看相关菜品情况,如果想取消,只需要点击取消设置便可。由于我们的定时提示是震动提示,所以在本文档中不能显示出效果,必须使用真机运行才能显示效果。定时提醒功能的实现使用了Android中的AlarmManager闹铃管理接口,提供了一个Service来启动Vibrator。通知栏的实现使用了Notification服务。

为了便于各大用户群的使用,我们还添加了多语言设置。设置界面如图2.16、2.17、2.18、2.19所示。

19

相关文档
最新文档