基于Android平台餐饮推荐系统开发毕业论文.doc_第1页
基于Android平台餐饮推荐系统开发毕业论文.doc_第2页
基于Android平台餐饮推荐系统开发毕业论文.doc_第3页
基于Android平台餐饮推荐系统开发毕业论文.doc_第4页
基于Android平台餐饮推荐系统开发毕业论文.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)毕业设计(论文) 题 目: android 平台餐饮推荐系统开发 摘 要 - 摘摘 要要 在当今科技迅速发展的背景下,网络化、信息化已经成为当代社会的主流。伴随着信息技术的 不断更新,2007 年 google 公司推出了全新的智能手机操作系统 android,由于其采用开放的源码, 所以在推广之后的一段时间内 android 迅速发展成为了移动平台的宠儿。与此同时,智能手机的快 速发展,亦使它成为了人们生活中重要且不可或缺的工具之一,人们能够利用智能手机上网,听音 乐,聊天,看视频,玩游戏,这些原本只能在 pc 机上进行的娱乐活动现已在潜移默化中移植到了 智能手机上。因此,我们可以看到,智能手机在娱乐应用服务依然会有相当广阔的发展空间,作为 和人们息息相关的餐饮服务,在智能手机上开发应用餐饮软件,也将成为势在必行的一步。 现如今这个智能手机系统种类极其繁多的时代,android 具备得天独厚和其他智能手机操作系 统无可比拟的优势。它采用 linux 内核,具有强大的应用层 api 与开源行。另外,android 平台基 本上是免费的,所以能够有效降低软件的成本, 使其吸引了大量的开发者,开发出大量的应用软 件。本文首先介绍了 android 的系统架构,并且以 android 餐饮小助手的设计与实现为例分析了相 关 android 应用软件,利用 java 语言和 eclipse 编译工具对软件进行编写。同时给出了详细的系 统设计过程,部分界面图及主要功能运行流程图。餐饮小助手集餐厅选择,菜品查看,地图查看等 功能于一体,能够实现用户在任何时间、地点进行方便的餐饮查询,使该软件有着较高的应用价值。 关键词:关键词:android;java;eclipse;餐饮软件 abstract -ii- abstract in the context of the rapid development of science and technology, networking, information technology has become the mainstream of contemporary society. constantly updated with information technology, 2007 google inc. launched a new smart phone operating system android, the use of open source within the promotion period of time after android quickly developed into a mobile platform darling. intelligent mobile phone has become one of the important tools in our life since it is rapid development. with the intelligent mobile phone, we can surf the internet, listen to the music, chat online, watch the video, and play computer games, and it is become a good entertainment in our spare time. therefore, the intelligent mobile phone will have very large development space in the entertainment application service, and the catering software is one of them. nowadays, the market has various kinds of intelligent mobile phone systems and they use the linux kernel with strong application layer api and open source. in addition, since the service of android platform is almost free, it can effectively reduce the development of software, attract a large number of developers as well as develop a plenty of software applications. it is very necessary to learn development of the android platform application software. at the same time, it had a detailed process of system design, parts of the interface diagrams and main function flow chart. catering assistant has many features, such as choose the restaurants, food menu, send messages, check maps. it is very convenient for users to reserve foods and check positions at any time and any place. it has a good application prospect in the future. key words:android; java; eclipse; catering software 目 录 -iii- 摘摘 要要 .i abstract.ii 第一章第一章 概概 述述1 1.1 智能手机系统开发背景1 1.2 android 平台简介.1 1.3 餐饮推荐系统研究目的与意义4 1.4 本文主要研究内容4 第二章第二章 相关技术介绍相关技术介绍5 2.1 开发工具及环境简介5 2.1.1 开发工具5 2.1.2 开发环境5 2.2 开发所采用的关键技术介绍5 2.2.1 java 程序设计语言 .5 2.2.2 定位技术6 2.2.3 android intent 机制 .6 2.2.4 百度地图 api 6 2.2.5 poi 信息点 7 第三章第三章 系统需求分析系统需求分析8 3.1 可行性分析8 3.1.1 技术可行性8 3.1.2 操作可行性8 3.1.3 风险因素控制以及系统安全可行性8 3.2 设计思想8 3.3 性能需求分析9 3.3.1 实用性原则9 3.3.2 安全可靠性原则9 3.3.3 可扩展性与可维护性原则.10 3.3.4 易用性原则.10 3.4 功能需求分析10 3.4.1 我的位置功能模块分析.11 3.4.2 按坐标查找位置功能模块分析.13 3.4.3 查询周边指定餐饮功能模块分析.15 3.4.4 地图功能模块分析.17 第四章第四章 系统概要设计系统概要设计19 4.1 系统总体结构设计19 目 录 -iv- 4.2 系统各功能模块设计20 4.2.1 我的位置功能模块设计 .20 4.2.2 按坐标查找位置功能模块设计.20 4.2.3 查询周边指定餐饮功能模块设计.21 4.2.4 地图功能模块设计.22 第五章第五章 系统详细设计系统详细设计24 5.1 系统各功能的实现24 5.1.1 我的位置功能的实现.24 5.1.2 按坐标查找位置功能的实现.26 5.1.3 查询周边指定餐饮功能的实现.27 5.1.4 地图功能的实现.29 第六章第六章 系统测试系统测试.30 6.1 测试的目的与目标30 6.2 系统测试环境与测试条件30 6.3 系统测试的用例30 6.3.1 “我的位置”测试用例.30 6.3.2 “按坐标查找位置”测试用例:.31 6.3.3 “查询周边指定餐饮”测试用例:.32 6.3.4 “地图”测试用例.36 6.4 测试总结38 第七章第七章 结结 论论.39 参考文献参考文献.40 致致 谢谢.41 android 平台餐饮推荐系统开发 -1- 第一章第一章 概概 述述 随着移动通讯产业的发展,大幅度的提高了手机的生产和使用。尤其在这个被称为 3g 的时代 中,手机更是成为了人们生活中的一部分,人们不仅仅使用它来打电话、发短信,手机还有了其他 更广泛的用途:上网、听歌、看视频、玩游戏等,在这样一个背景下,手机成为了互联网的终端设 备。因此,移动终端的应用软件和服务将会有广阔的发展空间。 由于人们对手机功能和应用的需求与日俱增,这使得一些手机应用程序例如:手机游戏、网络 应用、餐饮娱乐、用于旅行的移动 gps 系统、音乐系统、web 浏览器、地图服务等等层出不穷。 每一类应用软件都多种多样,适合不同的版本、不同的机型,虽然它们都有各自的优势,但大部分 的应用软件都各自为政,尤其那些多功能的应用软件更可谓屈指可数。加之现有手机生产商众多, 以及大部分的操作系统不开源,各种应用软件在不同的手机上不兼容,对运营商来讲,往往需要对 某类特定的手机系统进行单独开发,而这样必将导致成本的增加。 android 是开放性的移动终端操作平台,它包括用户界面、关键的平台应用等等,其由 linux+java 构成的开源软件,这使得所有的厂商或个人可以在它的基础上进行开发,而且还具备非 常好的开发和调试环境1。android 平台的开放性等特点促进了技术、包括平台自身的创新,又有 助于降低开发成本。因此,在 android 平台上开发软件具有很好的发展前景。 1.11.1 智能手机系统开发背景智能手机系统开发背景 现在智能手机可谓是爆发式的增长,这导致传统手机的地位一落千丈。现在市场占有 率最高、关注度最高的三个手机平台分别是:android、ios 和 windows phone。在以上提 及的三个手机平台中,android 的使用率虽然最高,但是其设备的种类非常复杂,碎片化较 为严重;ios 由于秉承苹果公司独特的管理理念,使其几乎不存在碎片化的现象,但也正 是因为这个原因导致了 ios 系统下的设备种类不多,无法满足所有用户的需求2;而 windows phone 虽然现在被炒得很火热,但是其用户量相对于其他的两个平台来说几乎可 以忽略不计,所以在这里不做讨论。 android 平台是一个面向大众的系统,分布在低端、中端和高端市场中,在各个阶段的 市场中均有很受欢迎的机型。并且 android 是开源的平台,开发者可以随时的查看系统源 代码,能够使用当下最流行的 java 作为其主要开发语言。由于这些特点,使得 android 成 为现在市场中占有量最大的软件平台,在这样一个软件平台上开发一款日常生活软件也就 显得尤为重要。 1.21.2 androidandroid 平台简介平台简介 android 是由操作系统、中结构佳层及应用程序组成所生产出来的软件堆栈架构。从上 而下,它将嵌入式 linux2.6 作为核心作业系统,向上搭配 google 为 android 开发的类库。 android 平台餐饮推荐系统开发 -2- android 运行时,再配合应用程序构架,来开发各种不同的应用程序。 就目前来说,android 的软件在中国还是有限,甚至不能说是成熟,也正因为此其开发 功能强大。我在了解 android 系统的过程中发现了它与 ios、symbian、windows mobile 等 系统的不同,android 所具备的优势是非常明显的,包括应用程序间无界限、应用程序开发 便捷等,这些优势都是其他手机系统无法提供给开发者的3。 android 平台具备一下一些特性: (1)应用程序架构:应用程序架构内由多种不同的基础组件构成,在开发应用程序过 程中可以直接调用这些组件,大大的提高了开发的效率和时间。 (2)dalvik 虚拟机器:dalvik 虚拟机在 android 平台上所使用,google 自主开发的 java 虚拟机,它具有对手机进行了优化,资源占用小,效率运行高,保证 api 方面兼容的 特点。 (3)集成的浏览器:浏览器是以 webkit 的浏览引擎为基础所开发成,android 内建的 集成浏览器。wedkit 是一个开源浏览器网页排版引擎,其浏览引擎与 android 手机配合, 在浏览网页时,可以达到更好的效果。 (4)优化的绘图能力:在程序里,有 2d 和 3d 两个方面的绘图可以被用到。android 为 2d 这个大方面提供了一套独有的类库,使其不会受到冗余的干扰;在 3d 这个方面, android 亦为其提供了 opengles1.0 这样一个规范的类库。它们都具备支持硬件加速缓冲、 高效的处理图形等特点。 (5)sqlite 数据库:sqlite 提供了结构化的数据存取。sqlite 是以嵌入式为目标设 计的。它是一款轻型的数据库,具有占用资源非常低的提点,目前已经被很多嵌入式产品 使用。它能够跟多种程序语言结合,同时支持 windows,linux,unix 等主流操作系统, 相对比于 mysql,postgresql,它具有更快的处理速度。 (6)多媒体的支持能力:主要用于支持播放包括音频和视频在内的媒体文件,并且同 样支持在网络上直接播放的流媒体,另外也支持各种通用的静态图像格式。 (7)gsm 技术:gsm 是一种起源于欧洲的移动通信技术标准,是第二代移动通讯技 术,即全球移动通讯系统,俗称“全球通”。它是以为了让全球各地可以共同使用一个移动 电话网络为目的开发的,用户可以使用一部手机走遍天下。属于在开发 android 应用程序 时可以突出的硬件方面特点之一。 (8)蓝牙,edge,3g 及 wi-fi:蓝牙是可以取代短距离的电缆,实现话音和数据无 线传输的一种新型,开放,低成本的无限连接技术。edge 是一种从 gsm 到 3g 的过渡, 增强型数据速率 gsm 的技术,它主要是 gsm 系统中采用了最先进的多时隙操作和 spsk 调试技术的一种新的调试方法。 (9)gps:它是由一个覆盖全球的 24 颗卫星组成的全球定位系统。此系统系统可以保 证在任何时间,任何地点都可以得到观测点的经纬度和高度,以方便实现导航,定位,授 时等功能,这项技术目前被用在引导飞机,船舶,车辆以及个人等方面。这个同样是在开 发 android 应用程序时可以突出的硬件方面特点之一4。 因此,android 的发展前途是乐观、明朗的,为了这个原因,我们更要开发出质量好、 功能强大的软件以方便手机用户的使用。 android 平台餐饮推荐系统开发 -3- 下面这张图展示了 android 系统的主要组成部分: 可以很明显看出,android 系统架构共由五部分组成,分别是:linux kernel、android runtime、libraries、application framework、applications5。 android 应用的构成和工作机制:一个 android 应用程序是由 activity,intentreceiver,service,content provider 四个部分组成,但并不是所有的应用程 序都必须由这四部分组成。当应用程序运行时都需要在配置文件 androidmanifest.xml 中进 行配置,这个配置文件每个应用程序都必须由,具有定义应用程序的组件,组件的功能以 及必要条件等功能。android 应用构成和工作流程如图 1.2 所示: 图 1.2 android 应用构成和工作流程 android 平台餐饮推荐系统开发 -4- 1.31.3 餐饮推荐系统研究目的与意义餐饮推荐系统研究目的与意义 在人们生活节奏不断加快的今天,如何进行高效率的“吃饭”也已经成为人们每天所必须面对 的问题。除了可以在工作地点吃饭的上班族之外,也有很多人需要寻找工作地点周边的餐饮店以解 决就餐,而这也成为了诸多上班族较为头疼的问题。而另一方面,伴随着手机功能的不断强大,以 及在现如今这个“3g”时代,移动电话显然已经成为了人们生活中不可或缺的一部分。智能手机 的发展带动了软件的不断更新,而 android 作为一个开放性的移动终端操作平台,具备了很多其他 移动终端操作系统所不具备的优势。据互联网消费调研中心的三季度的统计数据显示:在中国的手 机市场上,android 系统以 53.3%的超高比例成为了用户使用最多的智能操作系统,首次突破了 50%, 比上季度增长 6.3%,占据了整个手机市场的半壁江山,并且还有继续增长的趋势。由此可见,在 android 平台上开发一个餐饮软件,符合广大上班族的一个基本需求,在软件使用上只需用户会基 本的手机操作即可。鉴于此,该餐饮软件的开发可为广大的上班族解决头疼的“吃饭”问题,提供 一定的便利。 1.41.4 本文主要研究内容本文主要研究内容 本文主要阐述和介绍一个手机平台的软件如何利用 gps 定位等相关技术通过互联网获取信息 后在 android 应用中进行展示的。 本应用软件使用简单,易学易会,非常容易上手,主要是在 ui 设计上采用了移动平台上最主 流的设计理念:简单和引导。虽然界面相对于传统 web 界面显得简单,但是其功能是毫不孙色的。 在保留其功能全面性的基础上,设计了最简单的界面来进行展示和管理,使得用户能够不需要事先 任何学习,就可以熟练地进行操作。 本软件的设计步骤如下: 1、了解相关资料,了解本软件的研究意义,确定实现技术与方式设计总目标及其整体框架; 2、了解用户的使用习惯和使用心理,并进行用户需求分析和规范; 3、草拟功能模块,画出模块图; 4、搜集软件制作素材; 5、编写代码实现各个功能模块; 6、根据 android 特有的使用风格进行布局和优化; 7、完成系统后期测试并改进。 android 平台餐饮推荐系统开发 -5- 第二章第二章 相关技术介绍相关技术介绍 2.12.1 开发工具及环境简介开发工具及环境简介 .1 开发工具开发工具 1、eclipse classic 3.8.0 eclipse 是一个开放源代码的、基于 java 的可扩展平台。就其本身而言,它只是一个框架和一 组服务,用于通过插件组件构建开发环境。eclipse 附带了一个标准的插件集,其中包括 java 开发 工具(java development kit,jdk) 。 eclipse 是著名的跨平台自由集成开发环境(ide) 。最初主要用来 java 语言开发,但是目前有 人通过插件使其成为其他计算机语言比如 c+和 python 的开发工具。eclipse 本身只是一个框架平 台,但是众多的插件支持使得 eclipse 拥有其他功能相对固定的 ide 软件很难具有的灵活性。许多 软件开发商以 eclipse 为框架开发自己的 ide。eclipse 是一个开放源码项目,它其实是 visual age for java 的替代品,其界面与先前的 visual age for java 差不多,但由于其开放源码,任何人都可 以免费得到,并可以此为基础开发各自的插件,因此越来越受到人们的关注6。 2、adt 目前 android 开发所用的开发工具是 eclipse,在 eclipse 编译 ide 环境中,安装 adt,为 android 开发提供开发工具的升级或者变更,可简单理解为在 eclipse 下开发工具的升级下载工具。 3、android sdk sdk:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、 软件框架、硬件平台、操作系统等建立应用软件的开发工具集合。因此,android sdk 指的既是 android 专属的软件开发工具包。 .2 开发环境开发环境 本软件是在 windows 7 操作系统中,利用 eclipse classic 3.8.0 开发工具搭载 android sdk 工具 包,结合 android 手机进行开发。 2.22.2 开发所采用的关键技术介绍开发所采用的关键技术介绍 .1 javajava 程序设计语言程序设计语言 java,是由 sun microsystems 公司于 1995 年 5 月推出的 java 程序设计语言和 java 平台的总称。 用 java 实现的 hotjava 浏览器显示了 java 的魅力:跨平台、动态的 web、internet 计算。从此, java 被广泛接受7。 java 分为三个体系 javase、javaee 和 javame。 java 是一种简单的、面向对象的、分布式的、解释型的、结构中立的、可移植的、性能优异、 android 平台餐饮推荐系统开发 -6- 多线程的动态语言。 .2 定位技术定位技术 在移动通信网络中,通常有以下几种定位技术: 一是基于 cell id 的定位技术,它由网络侧获 取用户当前所在的基站 cell 信息以获取用户当前位置,其精度取决于移动基站的分布及覆盖范围的 大小;二是基于 aflt 的定位技术,aflt(advanced forward link trilateration)是 cdma 独有的 技术,在定位操作时,手机/终端同时监听多个基站的导频信息,利用码片时延来确定到附近基站 的距离,最后用三角定位法算出具体位置;三是基于 agps(无线网络/辅助 gps 定位技术)的定 位技术,agps 将终端的工作简化,由网络侧的定位服务器与终端相互配合完成定位工作,就是将 卫星扫描及定位运算等最为繁重的工作从终端一侧转移到网络一侧的定位服务器完成。 借助定位服务器强大的运算能力,可以采用复杂的定位算法以降低接收信号弱等不利因素的影 响从而提高定位精度和灵敏度。定位平台将经纬度信息送到应用服务平台,或者通过无线网络送回 终端满足定位应用8。 本系统的定位功能将采用 a-gps 定位技术。a-gps(assisted global positioning system)即网 络辅助的全球定位系统,这种方法需要网络和移动终端都能够接收 gps 信息,是一种结合了网络 基站信息和 gps 信息对移动终端进行定位的技术,可以在 2g 和 3g 网络中使用。此技术的优势主 要在其定位精度上,在室外等空旷地区,正常工作环境下其精度可达 510m,堪称目前定位精度 最高的一种定位技术。另一方面,利用网络传来的辅助信息可以增强 ttff(time to first fix) , 其首次捕获 gps 信号的时间大大减小,一般仅需几秒,而不像 gps 的首次捕获时间可能需要 23min。a-gps 定位响应时间为 310s 之间。此外,为了解决终端在室内以及在城市中被建筑物 遮挡而难以接收 gps 信号的缺陷,一般 a-gps 技术解决方案还考虑了 cell-id 定位技术作为备用 方案,这样就大大提升了 a-gps 的定位能力。 .3 androidandroid intentintent 机制机制 android 中提供了 intent 机制来协助应用间的交互和通讯,或者采用更准确的说法是,intent 不 仅可以用于应用程序之间,也可以用于程序内部的 activity/service 之间的交互。在 intent 的使用中 基本看不到直接的函数调用,相对函数调用来说,intent 是更为抽象的概念,利用 intent 所实现的 软件复用粒度是 activity/service,比函数复用更高一些,利用耦合也更为松散9。 .4 百度地图百度地图 apiapi 百度地图 api 是为开发者免费提供的一套基于百度地图服务的应用接口,包括 javascript api、web 服务 api、android sdk、ios sdk、定位 sdk、车联网 api、lbs 云等多种开发工具 与服务,提供基本地图展现、搜索、定位、逆/地理编码、路线规划、lbs 云存储与检索等功能, 适用于 pc 端、移动端、服务器等多种设备,多操作系统下的地图应用开发。 百度地图 javascript api 是一套由 javascript 语言编写的应用程序接口,它能够帮助您在网站中 构建功能丰富、交互性强的地图应用程序。百度地图 api 不仅包含构建地图的基本功能接口,还提 供了诸如本地搜索、路线规划等数据服务。适用于 pc 或移动设备端的基于浏览器的开发。js 版本 android 平台餐饮推荐系统开发 -7- 还为用户开放了开源库,简化开发。 百度地图 web 服务 api 包括 place api、geocoding api、direction api,能够快速响应用户的 请求,返回 xml private mapcontroller mmapcontroller = null; public mkmapviewlistener mmaplistener = null; framelayout mmapviewcontainer = null; locationclient mlocclient; public mylocationlistenner mylistener = new mylocationlistenner(); public notifylister mnotifyer = null; button testupdatebutton = null; edittext indextext = null; mylocationoverlay mylocationoverlay = null; int index = 0; locationdata locdata = null; override public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); myapplication app = (myapplication) this.getapplication(); if (app.mbmapmanager = null) app.mbmapmanager = new bmapmanager(this); app.mbmapmanager.init(myapplication.strkey, new myapplication.mygenerallistener(); this.setcontentview(r.layout.mylocation); mylocation.mmapview = (mapview) this.findviewbyid(r.id.bmapview); this.mmapcontroller = mylocation.mmapview.getcontroller(); this.initmapview(); this.mlocclient = new locationclient(this); this.mlocclient.registerlocationlistener(this.mylistener); locationclientoption option = new locationclientoption(); option.setopengps(true); option.setcoortype(“bd09ll“); option.setscanspan(5000); this.mlocclient.setlocoption(option); this.mlocclient.start(); mylocation.mmapview.getcontroller().setzoom(14); mylocation.mmapview.getcontroller().enableclick(true); mylocation.mmapview.setbuiltinzoomcontrols(true); this.mmaplistener = new mkmapviewlistener() android 平台餐饮推荐系统开发 -26- .2 按坐标查找位置功能的实现按坐标查找位置功能的实现 利用百度地图 api 可以根据地理坐标位置定位地图,直接通过 http 请求直接访问地 理编码器,反向地理编码过程即可以实现由地理坐标查找对应的地理位置,部分核心代码 如下所示: public class mygeo extends activity static mapview mmapview = null; private mapcontroller mmapcontroller = null; mylocationoverlay mylocationoverlay = null; button mgeobtn = null; mksearch msearch = null; handler mhandler = new handler() public void handlemessage(android.os.message msg) toast.maketext(mygeo.this, “msg:“ + msg.what, toast.length_short) .show(); ; ; public class mylocationlistenner implements bdlocationlistener override public void onreceivelocation(bdlocation location) if (location = null) return; locationdata locdata = new locationdata(); locdata.latitude = location.getlatitude(); locdata.longitude = location.getlongitude(); locdata.accuracy = location.getradius(); locdata.direction = location.getderect(); mylocationoverlay.setdata(locdata); mmapview.refresh(); mmapcontroller .animateto(new geopoint(int) (locdata.latitude * 1e6), (int) (locdata.longitude * 1e6), mhandler .obtainmessage(1); public void onreceivepoi(bdlocation poilocation) if (poilocation = null) return; class overitemt extends itemizedoverlay android 平台餐饮推荐系统开发 -27- private list mgeolist = new arraylist(); public overitemt(drawable marker, context context, geopoint pt, string title) super(marker); mgeolist.add(new overlayitem(pt, title, null); populate(); override protected overlayitem createitem(int i) return mgeolist.get(i); override public int size() return mgeolist.size(); .3 查询周边指定餐饮功能的实现查询周边指定餐饮功能的实现 本功能通过百度地图 api 搜索指定位置附近的 poi 信息点,在餐饮服务系统中,poi 信息点即 为周边餐厅,每当搜索到 poi 之后,将直接采用 baidu maps api 所提示的 poioverlay 将兴趣点标注 在地图上,部分核心代码如下所示: public class cateringsearch extends activity public mkmapviewlistener mmaplistener = null; mksearch msearch = null; public static string mstrsuggestions = ; public int load_index; locationclient mlocclient; public mylocationlistenner mylistener = new mylocationlistenner(); locationdata locdata = null; listview mlistview = null; arraylist poilist; public class mylocationlistenner implements bdlocationlistener override public void onreceivelocation(bdlocation location) if (location = null) return; cateringsearch.this.locdata.latitude = location.getlatitude(); cateringsearch.this.locdata.longitude = location.getlongitude(); android 平台餐饮推荐系统开发 -28- cateringsearch.this.locdata.accuracy = location.getradius(); cateringsearch.this.locdata.direction = location.getderect(); cateringsearch.this.mlocclient.stop(); cateringsearch.this.msearch .poisearchnearby(“美食“, new geopoint(int) (cateringsearch.this.locdata.latitude * 1e6), (int) (cateringsearch.this.locdata.longitude * 1e6), 5000); override public void onreceivepoi(bdlocation poilocation) if (poilocation = null) return; override public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); myapplication app = (myapplication) this.getapplication(); if (app.mbmapmanager = null) app.mbmapmanager = new bmapmanager(this); app.mbmapmanager.init(myapplication.strkey, new myapplication.mygenerallistener(); this.setcontentview(r.layout.poi_list); this.mmaplistener = new mkmapviewlistener() override public void onmapmovefinish() override public void onclickmappoi(mappoi mappoiinfo) string title = “; if (mappoiinfo != null) title = mappoiinfo.strtext; toast.maketext(cateringsearch.this, title, toast.length_short).show(); override public void ongetcurrentmap(bitmap b) override android 平台餐饮推荐系统开发 -29- public void onmapanimationfinish() ; .4 地图功能的实现地图功能的实现 本功能将直接使用百度地图 api 通过一个 button 实现查看 baidu maps,部分核心代码如下所 示: override public void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); myapplication app = (myapplication) this.getapplication(); if (app.mbmapmanager = null) app.mbmapmanager = new bmapmanager(this); app.mbmapmanager.init(myapplication.strkey, new myapplication.mygenerallistener(); this.setcontentview(r.layout.world_map); worldmap.mmapview = (mapview) this.findviewbyid(r.id.bmapview); this.initmapview(); this.mmaplistener = new mkmapviewlistener() override public void onmapmovefinish() override public void onclickmappoi(mappoi mappoiinfo) override public void ongetcurrentmap(bitmap b) override public void onmapanimationfinish() ; worldmap.mmapview .regmapviewlistener(myapplication.getinstance().mbmapmanager, this.mmaplistener); android 平台餐饮推荐系统开发 -30- 第第六六章章 系统测试系统测试 6.16.1 测试的目的与目标测试的目的与目标 软件测试是软件开发过程重要的组成部分,它是用来确认程序的性能好坏以及检测是 否符合开发前所制定目标。倘若一个软件在开发使用后发现了很多问题,这说明整个软件 开发过程是存在缺陷的,需要做出必要的修改。因此,软件测试也为高质量的软件研发提 供了一个检测机制和平台14。 软件测试过程中发现的软件错误必须及时改正,这就是软件测试的任务。为了改正错 误,首先必须确定故障的准确位置,这是测试过程中最困难的任务。改正错误常常包括修 正原来的设计,必须通盘考虑而不能“头痛医头脚痛医脚”,应该尽量避免在测试过程中 引进新的故障。 本系统测试将采用黑盒测试,目的在于检测餐饮软件的每个功能是否都能正常使用。 鉴于餐饮软件是一个应用性软件,采用黑盒测试将极大提高测试的可靠性,这也使测试过 程变得简单化、精确化。测试分为五个用例,分别针对本软件的五个功能模块,编号由 001-004,以清晰的截图分析等确定功能实现。 6.26.2 系统测试环境与测试条件系统测试环境与测试条件 操作系统:android; 版本:2.3.4; 手机型号:me722; 系统版本:45.0.77.me722.chinaretail.en.cn; 测试条件:手机连接上移动互联网或无线 wifi。 6.36.3 系统测试的用例系统测试的用例 .1 “我的位置我的位置”测试用例测试用例 测试项目编号 001 测试项目名称当前位置数据获得 (1)输入:在餐饮系统主菜单界面点击“我的位置”按钮; (2)输出:在 baidu maps 界面显示当前位置信息。 测试结果如图 6.3.1 所示: android 平台餐饮推荐系统开发 -31- 图 6.3.1 “我的位置”测试结果示意图 .2 “按坐标查找位置按坐标查找位置”测试用例:测试用例: 测试项目编号 002 测试项目编号坐标位置数据获得 (1)输入:在餐饮系统主菜单界面点击“按坐标查找位置”按钮; (2)输入:在 baidu maps 界面输入经纬度坐标,并点击“定位”按钮,本次测试以北京城区 中心点坐标为例,地处北纬 39.9 度,东经 116.3 度。 (3)输出:在 baidu maps 界面显示坐标对应的位置信息,测试结果如图 6.3.2 所示: android 平台餐饮推荐系统开发 -32- 图 6.3.2 “按坐标查找位置”测试结果示意图 .3 “查询周边指定餐饮查询周边指定餐饮”测试用例:测试用例: 测试项目编号 003 测试项目名称周边餐饮数据获得 (1)输入:在餐饮系统主菜单界面点击“查询周边指定餐饮”按钮; (2)输出:在界面中显示当前位置周边的餐馆列表,测试结果如图 所示: android 平台餐饮推荐系统开发 -33- 图 “查询周边指定餐饮”测试结果示意图 (3)输入:在显示的餐馆列表界面中点击任意餐馆,本次测试以便宜坊烤鸭店(健翔桥店) 为例; (4)输出:在 baidu maps 界面显示便宜坊烤鸭店对应的位置信息,测试结果如图 所示: android 平台餐饮推荐系统开发 -34- 图 “查询周边指定餐饮”测试结果示意图 (5)输入:在 baidu maps 界面点击便宜坊烤鸭店的位置图标; (6)输出:在界面中显示便宜坊烤鸭店简介等信息,测试结果如图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论