美食家网站的Android手机客户端的设计与实现-毕业设计论文_第1页
美食家网站的Android手机客户端的设计与实现-毕业设计论文_第2页
美食家网站的Android手机客户端的设计与实现-毕业设计论文_第3页
美食家网站的Android手机客户端的设计与实现-毕业设计论文_第4页
美食家网站的Android手机客户端的设计与实现-毕业设计论文_第5页
免费预览已结束,剩余30页可下载查看

下载本文档

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

文档简介

北华航天工业学院毕业论文毕业设计报告(论文)报告(论文)题目: 美食家网站的Android手机 客户端的设计与实现 作者所在系部: 计算机科学与工程系 作者所在专业: 计算机科学与技术 作者所在班级: 作 者 姓 名 : 作 者 学 号 : 指导教师姓名: 完 成 时 间 : 年 月 北华航天工业学院教务处制IV摘 要 随着3G技术的发展,移动客户端已成为信息系统的发布平台,使用Internet向手机客户端发送讯息、供给用户浏览和使用技术是信息系统发展的必然趋势。手机客户端是指跟据网站搭建的体系的观点,经过过计算机、网络。客户端等现代化工具和器材,运用HTTP的传输协议的方式,跟用户的网络系统更加方便的交互和体验,带来更好的3G互联网感受。它通过对资源进行采集、处理、存储、管理、检索和传输,向用户提供帮助信息。 美食家Android手机客户端主要通过基于java语言编写的软件编程,在Android的运行平台把网站的信息通过Android手机客户端的形式展示给用户。能够方面的进行用户登录和注册以及美食和商家信息的浏览。本系统基于JDK,androidsdk和Android虚拟机使用android的智能手机系统提供的丰富资源,巧妙的完成了android平台下的可操作的软件。 通过利用目前高速发展的3G网络,该客户端减少了网络访问的限制。同时通过用户的操作去更新的数据,给用户提供了大量的美食信息和选择的精力,并能充分利用商家发布的讯息及时的与用户交互,给用户提供了更好的美食选择平台和卫生安全保障。关键词:美食家android手机客户端 网站 JAVA AbstractWith the development of 3G technology, mobile client information systems has become a publishing platform, and use the Internet to send messages to the mobile client, supplying users to browse and use of technology is an inevitable trend in the development of information systems. Mobile client refers According to the site to build the system point of view, passing through computers, networks. Client and other modern tools and equipment, the use of Intent transmission mode, and gives the user the service management Human information processing system combined. It is through the resource acquisition, processing, storage, management, retrieval and transmission of information to assist the user.Gourmet Android mobile client based on java language primarily through software programming, running the Android platform in the form of the information through the website Android mobile client for display to the user. Aspects of the user can log in and register and browse dishes and businesses information. The system is based on JDK, resource-rich android sdk and Android virtual machine using android smart phone system, the ingenious completed operational software android platform.By using the current rapid development of 3G network, the client reduces restrict network access. At the same operation by the user to update the data, to provide a lot of information and the selection of food energy, and can take advantage of merchants and timely release of information interact with the user, to provide a better platform of choice for food and health security protection.Key words: android mobile client site gourmet website JAVA目 录摘 要IAbstractII目 录III第1章 绪 论11.1 课题研究现状11.1.1 课题研究现状分析11.1.2 本领域内已开展的研究工作11.2 选题的目的及意义21.3 课题研究的主要内容21.3.1课题简要说明21.3.2 可行性研究2第2章 系统需求分析42.1 问题的提出42.2 系统的设计目标42.3 用户登录业务需求52.4 美食业务需求52.5 菜谱业务需求52.6 商家模块管理52.7 系统的整体运行的需求62.7.1 硬件设备需求。62.7.2 软件的设备要求6第3章 相关技术及架构简介73.1 Android体系结构73.1.1 Android的体系的概述73.1.2 Android应用程序运行原理83.1.3 Android操作系统的优势93.2 SlideMenu 侧滑框架93.2.1 slidemenu架构简介93.2.2 slidemenu框架的优点103.3 Java 面向对象语言103.3.1 Java 语言简介103.3.2 Java 语言优点和优势103.4 SQLite数据库113.4.1 SQLite数据库简介113.4.2 SQLite数据库的特点113.5 Volley框架113.5.1 Volley简介113.5.2 Volley的特点123.6 Universal-Image-Loader框架123.6.1 Universal-Image_Loader简介123.6.2 Universal-Image_Loader的特点和优点12第4章 系统分析134.1 系统概述134.2 系统功能模块134.3 用户登录流程144.4 登录设计功能设计144.5 数据库、表及说明15第5章 系统实现175.1 系统设计实现说明175.2 系统部署运行175.3用户登录模块185.4菜谱模块20第6章 系统测试与运行256.1程序的调试256.2 程序测试模块256.3 测试方法和模块256.4 系统调试遇到的部分问题266.4.1 程序的乱码问题266.4.2 连接真机调试26第7章 结 论287.1 系统评价287.2 系统的不足28致 谢29参考文献30第1章 绪 论1.1 课题研究现状1.1.1 课题研究现状分析Android是一种以Linux为基础的开源智能的OS,主要使用在Android于手机和平板。Android最初由Andy Rubin个人研发直至今日越来越多的人都在从事于Android的项目中,最初主要支持手机等移动设备。2005年由Google收购并开始注资,并组建开放手机和平板的联盟进行开发改良,使得三星,Sony,htc,LG,小米,魅族,华为,中兴等国内外知名的电子产品供应商进行手机的开发和改良,逐渐扩展到平板电脑和智能家居及其他领域上。Android的主要竞争对手是IOS和WindowPhone。随着移动互联网时代的到来和高速发展,移动互联网开发人才的需求量和产品开发也是与日俱增。比如android市场,国外Android市场正在不断的增长,据IDC发布研究报告称Android手机的的使用量会在今年的全球份额达到78.9%,其主要分布在三星,索尼等国际知名的厂商,而在国内Android手机的使用量也是不断增长,例如小米,锤子手机都是比较有发展潜力的。在目前开来Android的使用率已经远远的超过了IOS,据最新数据表明Android的使用率应经达到了全球的78%。远远比IOS的19%多出很多倍。但是这不代表着Android应超越了IOS,Android在用户体验上还是比IOS要稍逊一点,但是随着Google的不断优化安卓手机的讲来一定会超越IOS的用户体验。目前在中国大陆包括港澳台等地区,中国已经拥有世界上最大的手机用户群,越来越多人来从事安卓的开发,将推出对整个行业的巨大革新,全世界的大中小型数码产业和手机制造商都在招聘工程师,相信安卓一定会继续发展下去。再次我们相信安卓手机会和英语一样在全球通用。安卓的革命现在才刚刚开始。 1.1.2 本领域内已开展的研究工作发展为复合型图书馆资源管理系统是图书馆自动化管理系统的发展趋势之一。将“资源、服务、管理”的理念引进到幼儿绘本网上借阅后台管理系统,让管理系统真正体现管理思路,将图书管理的重点从单一的书籍检索变成资源、服务、管理三大要素的结合。资源、管理、服务是相互关联、相辅相成的。如何把幼儿绘本网上借阅后台管理系统做到快速高效、灵活方便、功能齐全,并利用该系统把数字图书馆系统和传统图书馆系统整合起来,是本系统及维护人员今后长期的艰巨任务。1.2 选题的目的及意义在中国对于美食和旅游,我们都有着坚定的信念我们普及健康食材和新鲜食材,引导品质和生态的生活方式。所以开发一款美食家网站的android的手机应用是非常贴切生活,对人们的饮食安全和饮食健康都十分具有意义和挑战性的事情。而且这也是本人对美食的一种致敬的方式。所以对美食提出严格的要求是我们做客户端的良心所在。推广海南美食也是我个人的爱好和最喜欢的生活方式,我非常享受这个软件的制作过程,并用真心去做好它、实现它。1.3 课题研究的主要内容在国内有关于美食网站和该网站的android客户端已经很多家在做,并在不断的发展当中,美食家网站和美食家Android客户端,本受经济客户端打造专业的饮食行业门户、构筑饮食行业移动在线销售为目标,以广大餐饮商家和当地的美食为基础,依托高速发展的专业的互联网信息和服务,并将发展成为海南本土最专业、最客观、最实惠的商家美食美食消费者交流的平台。第2章 系统需求分析2.1 问题的提出目前美食健康和旅游都存在不安全因素。线下的销售存在以下缺点:(1)销售效率低下,销售渠道少;(2)食材的不安全、不卫生;(3)劳动力低廉,造成工作质量不高;(4)经营者的销售单一;(5)不容易跟随市场的需求放生变化总之,缺少美食的正确理解和卫生安全意识。由于中国市场广大,美食的信息量大,对美食的选择已经成为最近人们关注的惹点,通过线下购买食品的方式会导致很多不安全的事件发生,出现食品卫生的问题不容易得到解决。商家通过发布美食的方式对美食信息、美食的材料情况,以食品的卫生信息进行公开的处理。由于美食信息的增多,随着日复一日,商家对美食的管理出现的混乱;对于客户的购买食品的信息的了解、食品的数量和客户对食品的购买记录信息,商家就可以根据市场的需求对食品的加工和销售进一步了解,从而销售客户喜爱购买的食品制作食品,从而对自己手里的资料发挥到极致,从而避免食品的浪费,金钱的浪费和人力资源的使用的得到一定的控制。在目前国内,有许多商家,包括很多大的连锁店,还是小范围的商铺等不同规模的饭店和连锁店,都依据商家的具体情况,采用数据的分析,分析市场的需求对手里资源的发挥到极致,响应国家不浮夸,不浪费的号召,随着市场的变化去销售美食。2.2 系统的设计目标(1) 本系统采用SlideMenu架构开发,使用Eclipse作为开发开发工具,使用Sqlite数据库.使用Volley框架进行图片的缓存和异步的访问 。(2) 美食家网站的Android手机的客户端无需登录就可以进行系统的操作。在用户登录,需要输入用户名、密码就可以登录,如果登录失败,则通过吐司的方式提示用户。(3) 美食模块:在这个模块里使用Volley对图片进行缓存处理提高用户体验等;(4) 菜谱管理:对多类的菜谱信息进行分类管理用户可通过此模块了解美食的制作;(5) 商家管理:包括对商家的信息进行整合的处理信息,发布的信息供给用户浏览。2.3 用户登录业务需求用户登录管理。(1)添加用户:以拥有本款应用为单位,进行用户注册。(2)用户登录:等用户注册并拥有个人的账号和密码,用户即可进行登录操作用户注册是必须填入用户名和密码以及电话,邮箱。等如正确后才而已拥有值的账号和密码。2.4 美食业务需求美食信息业务管理:(1)美食信息发布:以网站发布的信息为主,现在暂时不支持用户自己发布美食信息上传网上。必须有网站管理员来管理。(2)网站美食的管理:网站的美食信息由网站管理员统一管理,客户端的开发不涉及到管理美食信息。2.5 菜谱业务需求菜谱信息业务管理:(1) 菜谱信息的发布:以网站所拥有的菜谱信心为基准。通过Android的设计功能用户浏览,但是不可以下载相关的菜谱资料。仅供浏览使用。(2) 网站的菜谱的管理:网站的菜谱信息由网站管理员管理,客户端的开发人员无权修改网站的信息。2.6 商家模块管理(1) 商家模块管理:在网站设计阶段,暂未实现商家自己管理的美食信息,商家无权管理和更改自己发布的相关的信息。(2) 网站的商家管理:网站的商家新由网站管理员管理。客户端的开发无法设计管理商家的信息。2.7 系统的整体运行的需求2.7.1 硬件设备需求。(1) Android智能手机或是平板电脑等设备。(2) 无需SDCard。(3) 高通骁龙的cpu.(4) 512MB运行内存。(5) 1G的手机内部存储。2.7.2 软件的设备要求(1) Android2.3-4.4智能操作系统(2) Android模拟器。30第3章 相关技术及架构简介3.1 Android体系结构3.1.1 Android的体系的概述 对于Android体系的架构相信网上的介绍会比较全面,安卓的架构一共分为四层:(1)Linux Kernel层 Android以Linux2.6核心提供服务,里面有提供一些内存管理和进程管理等等服务。(2)Android Runtime和libraries层 Android拥有一个核心的库的集合,提供Java语言的可用功能,每个应用都有一个Dalvik虚拟机实例。Libraries包含了C/C+的库集合。 (3)Application Framework层 在这个层里,开发者可以完全利用开源的APIs.开发者利用硬件的优势。(4)Application层在这个层里,安卓自带了很多应用,比如浏览器,信心,联系人等等核心应用。Android四层架构如图3-1 所示。图3-1 Android四层架构3.1.2 Android应用程序运行原理Android应用运行原理如图3-2 所示。 图3-2 Android应用运行的原理在安卓里通过aapt工具把文件和数据,资源文件打包成一个apk.这个apk在bin下面存放着。在Linux下可以通过semc-buide命令将其进行编译。安卓在默认的情况下都有一个Linux的进程中去运行。每个进程有自己的虚拟机,并拥有唯一的Linux user ID。3.1.3 Android操作系统的优势(1)开放性。 开放源码,一直以来都是安卓对抗任何操作系统的优势。它允许开发商对其进行修改,并根据自己的需求进行封装,比如小米的MIUI和sony的Xprea。(2)丰富的硬件选择。在安卓的开发中,各个厂家都会进行自己的需求去封装和修改,基本上国内外知名的厂商都根据自己的硬件平台去开发自己基于安卓的系统,但是现在的高端手机一般都是基于高通骁龙,中低端的都是基于MTK平台。(3)兼容谷歌的应用。 谷歌的主打产品,地图,邮件和搜索等都完美结合在了Android的手机里,在这一点上像摩托罗拉就是很明显的例子。3.2 SlideMenu 侧滑框架3.2.1 slidemenu架构简介 Slidemenu的出现是为了替代tab(菜单栏)导航的效果,用来提高用户体验的。把原来属于菜单栏的栏目放到了左侧滑,右侧滑上,这样使得activity和fragment有了充分的空间,不受导航栏的影响从而使得UI的设计不受任何约束给用户耳目一新的感觉。在国内很多应用都使用了slidemenu,比如酷狗音乐,新浪新闻和易信。(1) slidemenu框架不是导进Eclipse就直接可以使用的,它需要一个开源库ActionBarSherkLock。(2) 众所周知,谷歌从Android的3.0以后就开始可以使用actionBar了,这样Android3.0以后就大大提高了用户体验,但是Android的3.0一下的版本确享受不到这种模式,于是便有来自己封装侧滑功能,在github上发布了自己封装的ActionBarSharlock.(3) 使用slidemenu这个框架需要注意它的v4包,因为在actionbarsharklock里已经导入了v4包,所要删除当前工程的v4包。3.2.2 slidemenu框架的优点 (1)创新性使用slidemenu框架可以很好的替代tab上的导航的栏目,使得界面的设计不受导航栏的约束。更方便程序员或这是美工人员去进行UI的美化。从而提高用户体验。 (2)丰富的样式 在slidemenu的设计中它是一个具有很多样式和很多策划效果的侧滑功能,它可以用来替代老套的tab导航。 (3)开源性 Sslidemenu追随了Android的设计理念,开源代码提供给硬件和手机生产上进行封装,使用它的人员而已根据自己的需求从而进行更改。3.3 Java 面向对象语言3.3.1 Java 语言简介 Java语言的是右oak语言转变过来的,它是一种面向对象而且高效的高级程序语言。Java是一种跨平台的的语言,在这方面Java与其它语言相比具有很多的优势和特点。3.3.2 Java 语言优点和优势(1)Java的设计理念和风格类似c/c+。(2)Java语言易学而且面向对象让学习的人很容易理解它,掌握它。(3)Java可以跨平台。Java语言编写的代码可以一次编译到处执行,只要有Java虚拟机的环境,它就可以执行。(4)Java语言具有可移植的特点,Java经过编译会生成.class文件,这个.class文件就可以被移植到任何平台上。(5)Java支持多线程,而且还可以为多线程提供同步机制。3.4 SQLite数据库3.4.1 SQLite数据库简介如果在Linux下开发数据库一般是以图形界面直观的呈现在开发人员面前的,但是SQLite Expert Professional的出现解决了这一个问题,它是一款可视化的数据库工具可以直接操作SQLite 上执行创建、编辑、复制、索取等。这个工具大大的提高了开发的效率,使得程序员更加宏观的把控整个软件的开发。现在SQLite Expert现在完全免费的Personal Edition,大多初学者都是使用它,不收费使得程序的开发成本大大降低了,对于初学者也是一个好消息。3.4.2 SQLite数据库的特点(1)SQLite是轻巧型的数据库。(2)SQLite比MySQL和SqlServe等中大型数据库处理速度快。(3)SQLite占有的资源非常低。(4)提供多种语言对它进行数据的操作。(5)SQLite是开源免费的。(6)SQLite使用标准的sql语句。3.5 Volley框架3.5.1 Volley简介Volley框架是谷歌在2013年发布的。对访问网络比较频繁的的操作是,使用volley使得程序更健壮,方便,快捷。3.5.2 Volley的特点(1)提供JSON数据和图片等开启异步下载;(2)提供网络访问排序和网络优先级处理(3)提供缓存机制,对图片进行缓存。(4)和activity有着生命周期的寄存关系,当activity销毁的时候,它也跟着一起结束网络访问。3.6 Universal-Image-Loader框架3.6.1 Universal-Image_Loader简介Universal-Image-Loader它是UI的开源的组件,它提供了异步加载图片和缓存显示。在图片的一部加载的过程中,要考虑很多的问题,比如Android的多线程问题,缓存问题,OOM等很多方面。但是有了Universal-Image-Loader它的很多特性就可以帮助程序员去解决这种问题。它的设计理念加入了线程测,首先指定了缓存空间的大小,使用对生命周期,文件约束条件都有对应的策略。3.6.2 Universal-Image_Loader的特点和优点(1)开源性,程序员可根据需求自己封装 Universal-Image_Loader。(2)使用多线程对图片进行加载。(3)调用分离选项自定义图像的显示。(4)支持Android1.5以上的版本(5)支持widget等视频,图片和小动画。第4章 系统分析4.1 系统概述本应用是基于美食家网站的设计的Android的手机客户端。其主要的目的是为美食提供一个崭新的平台,提供在线浏览美食信息的功能。对美食信息进行进一步的筛选,打造出一块适合大众口味的美食平台的应用。以打造健康美食。卫生美食为目的,做到在线为商家提供的销售的平台,给用户新的体验移动互联网带来的革新和美好的美食味蕾。4.2 系统功能模块本系统一共包含4个功能模块,用户管理模块,菜谱管理模块,商家管理模块,美食管理模块。功能模块如图4-1所示。图4-1 功能模块图(1) 用户管理模块:用户可以对用户信息的维护。包括注册用户的信息添加及用户原有的信息进行修改等操作。然后由后台网站验证用户输入的信息是否合法,如果合法给予修改,不合法请用户重新填写修改和注册的信息。(2) 菜谱管理模块:在这个模块用户可以通过自己感兴趣的菜色进行浏览。得到自己想要了解美食的制作过程但是只是文字描述,没有图片和实物从而了解菜谱。(3) 商家管理模块:该模块用于展示商家提供的美食及商家的地址和联系方式用户可以通过此模块联系商家和了解美食。 (4)美食管理模块:用户可以通过客户端美食信息去查看自己喜欢的美食信息。手机客户端可以通过上拉刷新,下拉加载去更新美食的信息。4.3 用户登录流程在使用用户登录,用户需要注册自己的用户名和密码,提供自己设置的用户名,密码,邮箱,电话号码进行注册才能拥有自己的用户名和密码。在注册成功之后,用户需要在登录界面去完成登录。如果用户没有注册账号和密码则不予许登录。4.4 用户登录的流程图登录界面的设计功能流程:如图4-2所示图4-3登录界面设计在登录模块这里的设计上:(1) 用户通过安装应用去使用,首先到达系统的界面。(2) 用户通过点击或是侧滑的功能到达登录界面。(3) 在用户名和密码编辑框里输入用户名和密码(4) 用户名和密码正确则登录成功。(5) 如果密码不正确就吐司一下提醒用户去注册一个(6) 当用户根据要求注册成功了,在再到登录界面登录。4.5 数据库、表及说明开发使用的环境:SQLite 。数据库名称为 tea,本数据库一共设计到有5个表操作,具体的表的概述如下:(1) fristdata表的设计 fristdata表主要是收集了美食的一点信息。如表4-1所示:表4-1 fristdata表字段名数据类型是否允许为空说明_idinteger否是主键,自增长idyidTypelessness是URL的拼接的idtitleTypelessness是用于显示标题authorTypelessness是用于显示发布者的信息(2) leftfragment表的设计 leftfragment表主要存放了左侧滑title信息。如表4-2所示。表4-2leftfragment表字段名数据类型是否允许为空说明_idinteger否是主键,自增长idnameTypelessness是用于显示左侧滑的标题idTypelessness是用于存放拼接链接的id(3) Starge表的设计 Starge表里可以存放商家发布的信息如。如表4-3所示。表4-3 Starge表_idinteger否是主键,自增长idyidTypelessness是URL的拼接的idtitleTypelessness是用于显示标题authorTypelessness是用于显示发布者的信息imgTypelessness是用于存放图片的地址(4) theme表的设计Theme表里存放一些菜谱相关的信息。如表4-4所示。这个表还没实现存放数据表4-4theme表_idinteger否是主键,自增长idtitleTypelessness是用于显示标题imgTypelessness是用于存放图片的地址(5) User表的设计这个表里存放用户的信息。这个表没有实现。如表4-5所示。因为用户的信息在sharedpreferences里。表4-5User表_idinteger否是主键,自增长idusernameTypelessness是用于显示标题passwordTypelessness是用于存放图片的地址emailTypelessness是用于存放用户的邮箱phoneTypelessness是用于存放用户的电话第5章 系统实现5.1 系统设计实现说明本系统的实现采用了三个框架的使用,Volley,Universal-Image-Loader,slideMenu.在技术简介已经对其进行了介绍。在这就不一一说明了。本系统采用fragment和activity的混合使用,对用安卓的的四大组件也就使用了activity,并不涉及Service,Content Provider,和BroadcastReceiver的使用和设计。对于安卓的版本支持从2.3-4.4但是最优的开发是在4.1上进行的。5.2 系统部署运行本系统对配置的要求不高,只需要Android2.3到4.4的安卓智能的手机一部或是安卓的模拟器。本机器测试机器是小米1,配置如下:处理器:高通骁龙SnapdragonMSM8260。内存:1GMB硬件空间:16GB系统主要采用的语言和工具:数据库:SQLite。编程语言 JAVA开发环境:Windows7开发工具:Eclipse 5.3用户登录模块用户可以对用户信息的维护。包括注册用户的信息添加及用户原有的信息进行修改等操作。然后由后台网站验证用户输入的信息是否合法,如果合法给予修改,不合法请用户重新填写修改和注册的信息。如下图5-1所示: 图5-1登录模块。(1)这个运行的效果是通过一个fragment占据了一整个activity,首先在布局的放两个editText并加入Android:hint属性实现输入框的显示提示的文字。在放入两个checkBox提供用户去选择。提供登录和注册的两个button提供用户操作。(2)如果用户已经注册就可以根据自己的登录的用户密码去登录。如果用户没有注册则需要到注册界面去进行注册。(3)注册页面是一个activity,在它的layout文件里放4个editText和两个button提供用户操作。通过正则表达式去判断用户输入的注册条件是否正确。(4)用户注册的信息正确的话给予注册并将信息保存在shared_prefs里。如果注册不成功则通过Toast或是dialog的方式提示给用户的信息。主要代码如下:class CheckBoxClickListener implements OnCheckedChangeListener Overridepublic void onCheckedChanged(CompoundButton buttonView,boolean isChecked) switch (buttonView.getId() / 记住密码case R.id.checkBox_rightfragment_rempwd:if (checkBox_rightfragment_remPwd.isChecked() Log.d(TAG, 记住密码已选中);prefs.edit().putBoolean(ISCHECK, true).commit(); else Log.d(TAG, 记住密码没有选中);prefs.edit().putBoolean(ISCHECK, false).commit();break;/ 自动登录case R.id.checkBox_rightfragment_autologin:if (checkBox_rightfragment_autologin.isChecked() Log.d(TAG, 自动登录已选中);prefs.edit().putBoolean(AUTO_ISCHECK, true).commit(); else Log.d(TAG, 自动登录没有选中);prefs.edit().putBoolean(AUTO_ISCHECK, false).commit();break;5.4菜谱模块在这个模块用户可以通过自己感兴趣的菜色进行浏览。得到自己想要了解美食的制作过程但是只是文字描述,没有图片和实物。运行界面如图5-2所示:图5-2菜谱的信息在这个模块里主要是同过网络访问的方式访问网络的数据,并对其进行解析。(1) 通过网络访问的httpclient方式去从网上获取数据,从网络返回的是数据流,先把流转化成string的字符串,然后通过json的方式去解析它,的到一个list。(2) 在这个list里包含了map以键-值方式存储。然后通过这个list去给自定的listview去适配数据,图片的处理用了universol-image-loader框架去实现图的适配的BM格式和缓存的处理。在使用这个框架的时候只需要设置好options的属性。(3) 通过图片的URL就可以获取图片并放在listview上了。当然在给listview适配数据的时候必须的用到自定的adapter里。首先自定一个类去继承baseAdapter然后重写他们里面的五个方法,最重要的就是getView()在。主要代码如下:public View getView(int position, View convertView, ViewGroup parent) ViewHodler mHodler;if (convertView=null) mHodler=new ViewHodler();LayoutInflater inflater=LayoutInflater.from(context);convertView=inflater.inflate(R.layout.item_fragment_theme_listview_show, null);else mHodler=(ViewHodler) convertView.getTag();imageLoader.displayImage(img_url,mHodler.imageView_fragment_theme_listView,options,null );Log.i(TAG, =1+1);return convertView;class ViewHodler private ImageView imageView_fragment_theme_listView;private TextView text_fragment_theme_listView;5.5美食模块该模块用于展示美食的信息,运行的结果图5-3如下:图5-3美食的信息(1) 在这个页面里放置了放置了一个viewPager和一个自定的listView。(2) 在viewPager 里在本地的value里放置内置几张图片用一个int数组里把图片在R文件注册的id拿到,然后通过setImageResouce()方法把图片放到viewPager里,然后在viewPager里去设置监听。(3) 通过setOnItemClick去获取用户的点击的下标,然后通过下标取list的链接的id,然后通过拼接链接去访问相应的内容。这里图片的缓存用的用的是Volley框架。(4) 先声明一类去继承ImageCache,然后实现它里面的的方法。在使用的时候声明RequestQueue和ImageLoader的对象。这样就实现了Volley框架的使用。主要代码如下:public View getView(int position, View convertView, ViewGroup parent) final ViewHolder mHolder;if (convertView=null) mHolder=new ViewHolder();convertView=LayoutInflater.from(context).inflate(R.layout.item_listview_strategy_fragment, null,false);else mHolder=(ViewHolder) convertView.getTag();mLoader.get(urlStr, new ImageListener() class ViewHolderprivate TextView title;private TextView author;private ImageView img;5.6更多模块此模块用于展示我的资料,我的位置清除缓存,帮助信息,意见反馈等信息。运行效果如图5-6所示:图5-6在这个模块里使用了这个模块里只是涉及了一些以后即将添加的功能模块,具体的实现还未完成只是将layout放在fragment上面。主要代码如下:public class MoreFragment extends Fragment private String arrList=new String我的资料,我的位置,清空缓存,帮助信息,意见反馈,版本更新;private ListViewClickListener listener_list;Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) view= inflater.inflate(R.layout.fragment_more, container,false);/Intent intent=getActivity().getIntent();listener_list = new ListViewClickListener();initUI();Stringusername= (UILApplication)MoreFragment.this.getActivity().getApplication().getUserName();text_morefragment_username.setText(username);return view;SimpleAdapter adapter=new SimpleAdapter(getActivity(), list, R.layout.item_listview_morefragment, new Stringsetting, new intR.id.item_textview_morefragment_setting);listView_morefragment_setting.setAdapter(adapter);listView_morefragment_setting.setOnItemClickListener(listener_list);第6章 系统测试与运行为了确保本系统能够满足用户的基本需求,保证系统能够正常运行,除了在设计和编写程序时进行功能测试和单元测试外,还需要在系统完成发布之后再进行一次较全面的系统测试。6.1程序的调试在应用设计与实现的过程中,必然会存在一些不合理的地方。对于这种不合理的地方,我们应该加以测试,这样才能提高用户的体验。所以程序的测试这个环节我们不应该忽视,反而应该重视起来。6.2 程序测试模块在整个应用行业中,客户的在线使用数量表明这款应用是否做的出色,一些程序员往往会忽略了测试的重要性,以为实现功能才是重点,但是测试页是重要的环节。忽略测试往往是一个不成熟的程序员会犯的错误。因为测试关系到系统的安全和用户的体验。如果失去了这两点,这款应用就应该抛弃。往往测试不被重视的原因是:认为自己写的代码完善的,测试又是一项枯燥无味的事情。对自己的盲目自信。一个健全的应用都会被无数次的经过测试。测试的目的是让程序运行不发成异常,不发生信息泄露,保证程序的健全性和安全性,在这个基础上增加用户的体验。6.3 测试方法和模块在程序测试的时候。在安卓程序里我们一般会以日志的方式输出。(1) 模块测试 在编写代码的时候,美食家Android的系统一般都是用Log.i()或是Log.d()的方式输出日志。 在这个阶段主要是对美食,商家,用户,菜谱模块的进行测试。测试结果如表6-1:表6-1 功能模块的测试测试模块测试的功能功能是否正常 说明美食模块ViewPager监听事件是经测试此模块正常运行菜谱模块Listview监听事件是经测试此模块正常运行商家模块Listview监听事件是经测试此模块正常运行用户模块Button监听事件是经测试此模块正常运行(2) 系统测试这个测试模块是对系统的整体的框架SlideMenu 框架的左,右侧滑的效果和Fragment的加载进行测试.如表6-2。 表6-2侧滑效果的测试侧滑和fragment切换测试测试的功能功能是否正常 说明左侧滑左侧滑的效果是经测试此模块正常运行右侧滑右侧滑的效果是经测试此模块正常运行Fragment的切换Button对应

温馨提示

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

评论

0/150

提交评论