毕业论文-基于android系统的投票软件设计_第1页
毕业论文-基于android系统的投票软件设计_第2页
毕业论文-基于android系统的投票软件设计_第3页
毕业论文-基于android系统的投票软件设计_第4页
毕业论文-基于android系统的投票软件设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

完整源代码及整套相关文件QQ68661508,完整电路设计图纸,程序设计源代码请联系本人,参见豆丁备注和信息。HTTP/WWWDOCINCOM/LZJ781219目录1绪论111研究背景及研究意义112ANDROID应用的发展趋势213研究内容214论文结构22系统开发工具与相关技术介绍321框架概述322SQLITE(SQLITE数据库)323ECLIPSE424ANDROIDSDK525JAVA语言63ANDROID程序结构731ANDROID的API732ANDROID应用程序结构84需求分析1241总体需求分析1242资料调研分析1242市场需求分析1243可行性分析1344手机软件开发平台的选择1345各个模块功能需求分析145系统详细设计2051本系统测试实施2052测试结果21结论36致谢37参考文献381绪论近年来,随着移动互联网的迅速发展为人们面临的选择也多了起来。本课题拟设一个网上投票的应用,用户可以通过发起一个投票让自己的好友、陌生人或是“上帝”来帮你选择,正所谓,当局者迷,旁观者清,此应用对于总是纠结二选一或多选地的业主具有一定的推广应用价值。ANDROID是一种以LINUX为基础的开放源码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国内陆地区较多的人使用安卓非官方或安致官方。ANDROID在2005年的时候由GOOGLE公司收购注资,2010年的年末得出的数据显示,仅仅正式推出两年的ANDROID操作的系统的已经超越了称霸了世界十年的诺基亚的SYMBIAN操作系统,一跃成为全球最受欢迎的智能的手机平台之一。ANDROID中的UI框架设计有些类似于网站开发的MVC框架1,它具有标准化编程,容易修改等一些特点,非常容易上手,操作,非常的方便,同时也非常的符合现阶段的流行的背景。因此,本系统采用的ANDROID系统提供的UI布局进行框架设计。在UI的基础上进行各种程序和各种功能的编写,面向用户,让用户有更加舒适的体验。11研究背景及研究意义据2013年市场研究公司IDC公司研究报告显示出GOOGLE的ANDROID操作系统和苹果公司的IOS操作系统已经占据全球智能手机市场大概911,而其中,使用ANDROID操作系统的手机占据市场的701,远远领先排名第二的IOS。本系统描述的是在日常的生活中,人们面临问题时而不知从何下手或是不知从选择哪个结果,与此同时仅仅正式推出两年的ANDROID操作系统的已经超越称霸十年的诺基亚的SYMBIAN系统一跃全球最受欢迎的智能手机平台之一。而如今社会条件水平的提高人们面临的选择也多了起来。由此一来,人们便可以通过本应用向自己的好友发起一个投票,来确认最终的答案。12ANDROID应用的发展趋势随着3G移动互联网应用的不断的开发推广,用户会越来越需要更加的个性化、优质化的多媒体信息的数据服务,用户们都希望能够随时、随地无缝地利用3G网络来进行办公、网上交易、游戏娱乐、欣赏电影电视节目、收听广播和下载音乐等。根据系统的调查,在不久的以后,移动手机终端一定会在以下的很多方面具有创新性的发展3。在安全性上也将会更加出色,能够十分有效帮助用户对获取到的内容进行管理,可以保护用户隐私和基于手机的内部金融活动。例如电子钱包、在线支付、支付宝、在线贸易等部分功能的安全,成为我们的生活中不可缺少的一大部分。13研究内容该软件主要针对自己拿不定主意的人。比如说面对一个问题自己有了A、B、C多个选项,而自己又只能有一个选择却不知从哪下手选哪一个。而这款软件就是可以帮你选择,你发起一个投票,让你的好友,或是陌生人,或是上帝来帮你选择,如果你方便说出来,你也可以匿名来向你的好友投票。14论文结构本文第2章对实现系统所有的技术和工具进行了介绍;第3章对系统关键技术ANDROID程序结构进行了简单的介绍;第4章对系统需求进行了详细的分析以及所遇到的关键问题及解决方案做了阐述;第5章对系统进行了测试。2系统开发工具与相关技术介绍21框架概述本设计主要讲述了发起一个投票到列表展示,基于ANDROID平台的软件开发,数据库的设计方法,设计最终达到了发起投票、列表展示、投票分类、投票收藏的基本功能,并且系统能够正常的运行,各个页面的交互性比较好。在整个设计中基本运用是基础的ANDROID开发语言进行编程。同时也运用了一些UI控件进行人机交互,来完成投票类别的筛选功能,通过SQLITEDATASE语言进行与数据库的链接,详细的展示了系统的各个功能模块,并给出了主要运行界面图,该系统目前已经有比较完善的管理与使用功能。22SQLITE(SQLITE数据库)SQLITE提供结构化的数据存取。SQLITE是一款轻型的数据库,它的设计最初目标是嵌入式的,目前已经在很多嵌入式产品使用了它,它占用的资源非常低。它能够支持例如WINDOWS/LINUX/UNIX等主流的操作系统,同时能够跟很多程序语言相结合,比如PHP,JAVA等,SQLITE是无数据类型的数据库。虽然在生成表结构的时候,要声明每个域的数据类型是按照开发人员的需求进行设计,但SQLITE并不做任何检查。开发人员要靠自己的程序控制输入与读出数据的类型是正确的。这里有一个例外,就是当主键为整型值时,如果要插入一个非整型值时会产生异常。另外,虽然在插入或读出数据的时候是不区分类型的,但在比较的时候,不同数据类型是有区别的。SQLITE实现了完备的、可嵌入的、零配置的SQL数据库引擎。它的特点包括1事务处理是原子的、一致的、独立的和持久的(ACID),即使在系统崩溃和掉电以后。2零配置,即不需要设置和管理。3实现了绝大部分的SQL92标准。4一个单独的跨平台的磁盘文件存储一个完整的数据库。5支持数据库文件大小至2TB,支持G级别的串和二进制大对象。6代码量小,即小于30K的C代码行和小于250K的代码空间(GCC在I486上)7对于绝大多数普通操作来说,比流行的C/S模式的数据库引擎运行速度快。8API简单、易用。9数据库文件在机器之间可自由共享。10自包含没有外部依赖性。11字符串和BLOG的大小只受限于可用存储器容量;数据库用SQLITEEXPERTPERSONAL打开如图21所示图21SQLITEEXPERTPERSONAL23ECLIPSE本系统使用ECLIPSE43开普勒来开发。ECLIPSE是一个源代码开放的、基于JAVA的可扩展的开发平台如图22所示。就其本身而言,它只是一个框架和一组服务,用于通过插件和组件来构建开发环境。幸运的是,ECLIPSE附带了一个标准的插件集,包括JAVA的开发工具(JAVADEVELOPMENTKIT,JDK)7。ECLIPSE是使用JAVA语言开发的,但是它的用途并不限仅于JAVA语言;例如,支持诸如C/C、COBOL等编程语言的插件都已经可用,或预计将会推出。ECLIPSE框架还可用来作为与软件开发无关的开发的其他应用程序类型的基础,比如内容管理系统8。图22ECLIPSE开发工具24ANDROIDSDK使用ECLIPSE开发ANDROID应用需要下载ANDROIDSDK(SOFTWAREDEVELOPMENTKIT,软件开发工具包)下载好ANDROIDSDK后,开始安装,ANDROIDSDK采用了JAVA语言,所以需要先安装JDK50及以上版本。直接下载JDK安装文件安装最为方便。ANDROIDSDK的使用不用安装,下载后,直接解压即可,将下载后的SDK的压缩包解压到适当的位置,就是这么简单。使用ECLIPSE进行ANDROID应用开发需要给ECLIPSE装ADT插件,这样ECLIPSE就可以和ANDROIDSDK建立好连接,然后就可以在ECLIPSE中启动ANDROID虚拟机进行程序调试等ADT插件安装这里不再累赘,直接下载ADT的ZIP包安装安装完插件后,只需要做一些简单的配置在ECLIPSE中,选择WINDOW菜单在下拉菜单中选择PREFERENCE;从左侧的菜单中,选择ANDROID项;设置SDKLOCATION,点BROWSE选择SDK的安装根目录如图23所示;完成,开始进行ANDROID应用开发。图23为ECLIPSE添加SDK25JAVA语言JAVA是一种简单的,跨平台的,面向对象编程(OBJECTORIENTEDPROGRAMMING,OOP)的,分布式的,解释型的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的学院派语言。当1995年SUN推出JAVA语言之后,全世界的目光都被这个神奇的语言所吸引。JAVA语言具有七大特性1平台无关性是指JAVA能运行于不同的平台。JAVA引进虚拟机原理,并运行于虚拟机,实现不同平台的JAVA接口之间。使用JAVA编写的程序能在世界范围内共享。JAVA的数据类型与机器无关,JAVA虚拟机(JAVAVIRTUALMACHINE)是建立在硬件和操作系统之上,实现JAVA二进制代码的解释执行功能,提供于不同平台的接口的。2安全性JAVA的编程类似C,学习过C的读者将很快掌握JAVA的精髓。JAVA对程序提供了安全管理器,防止程序的非法访问。3面向对象JAVA吸取了C面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性4分布式JAVA建立在扩展TCP/IP网络平台上。5健壮性JAVA致力于检查程序在编译和运行时的错误。6解释型JAVA是把程序编译成称为自字节码的一种“中间代码”。字节码是很接近机器码的文件,可以在提供了JAVA虚拟机(JAVAVIRTUALMACHINE,JVM)的任何系统上被解释执行7动态JAVA程序的基本组成单元就是类9。3ANDROID程序结构本段从ANDROID的API、应用程序、INTENT、ANDROIDACTIVITY的生命周期及FRAGMENT的生命周期对ANDROID应用程序结构进行了介绍。31ANDROID的APIANDROID的API主要包括下面几部分311注册清单ANDROIDMANIFESTXML是系统的控制文件,是ANDROID控件和组建进行注册和配置的位置它告诉系统如何处理所创建的所有应用组件尤其是ACTIVITY,服务SERVICE,INTENTINTENTRECEIVER和内容提供者CONTENTPROVIDER。312活动ACTIVITY就是一个有生命周期的对象。一个ACTIVITY就是完成某些工作的代码块,这部分工作还可能包括对用户UI界面的显示。313视图视图可以将其自身绘制到屏幕上。ANDROID的用户界面由一系列的视图树构成。接口都是由一组以树的形式出现的视图组成的。开发者可以通过创建一个新的视图的方法来使用自定义的图形处理技术比如开发游戏,或者是使用了不常用的用户图形窗口界面。314意图INTENT是一个简单的消息对象,它表示程序想做某事的“意图”。比如应用程序想要显示一个网页,那么它可以通过创建一个INTENT实例并将其传递给系统来表示INTENT浏览这个URI。系统将定位到能处理这一INTENT的代码在当前情况下就是浏览器,并运行之。INTENT也可以用于广播系统范围内的有效事件例如通知事件。315服务SERVICE是运行在后台的一段代码。它可以运行于它自己的进程,也可以运行在其他应用程序的进程里,这取决于自身的需要。其它的组件可以绑定到一个服务上来,通过远程过程调用AIDL来调用这个方法10。316通知通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互来接收消息。最常见的通知包括短信息、通话记录和语音邮件,但是应用程序也可以创建它们自己的通知事件。317内容提供者CONTENTPROVIDER是用来提供对设备上数据进行访问。典型的例子就是使用CONTENTPROVIDER来访问联系人列表。应用程序也可以使用其它程序通过CONTENTPROVIDER提供的数据,同时也可以定义自己的CONTENTPROVIDER来向其它应用提供数据访问服务。32ANDROID应用程序结构通常由以下五个组件来构建一个完整的ANDROID应用程序1)ACTIVITY2)INTENT3)SERVICE4)CONTENTPROVIDER5)BROADCASTRECEIVER然而,并不是所有的ANDROID应用程序都必须具备上面的四个组件,可以由上面的一个或几个来组建。当决定使用以上哪些组件来构建ANDROID应用程序时,需要将它们在ANDROIDMANIFESTXML清单配置文件中注册,这是一个XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个清单配置文件是每个ANDROID应用程序都必不可少的。321ACTIVITYACTIVITY是以上四个组件中最常用的一个。每个ACTIVITY都是ACTIVITY的子类,并实现了一些独有的功能,如管理UI显示和UI的反馈事件。一个ACTIVITY就相当于应用程序的一个用户界面,由事件响应以及视图等组成。大多数的应用程序通常包括多个界面。例如一个文本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置界面、一个聊天记录查询界面等等。每个界面其实都可看作是一个ACTIVITY。显示一个新界面就相当于生成一个对应的ACTIVITY对象。ACTIVITY生命周期ACTIVITY一生中有七种不同的状态。生命周期分为创建、启动、开始、霸屏、暂停、停止、销毁。是进行ANDROID程序开发的重要一环,不了解ACTIVITY的生命周期就不知道在每一个部分的内容该怎么写,哪一部分的代码写到哪里,所以设备的主屏是大多数任务的启动位置,当用户触摸一个应用程序启动器图标(或者APP快捷图标),应用程序的任务就会在前台显示。如果相关应用程序的任务不存在,那么就会有一个新的任务被创建,并且应用程序打开的“主”ACTIVITY会作为任务中的根ACTIVITY。ACTIVITY的生命周期如图31所示图31ACTIVITY的生命周期ANDROID的四种启动模式1)STANDARD(STANDARD是系统默认的启动模式)标准启动模式,每次激活ACTIVITY时都会创建ACTIVITY,并放入任务栈中。如果启动此ACTIVITY的INTENT中没有设置FLAG_ACTIVITY_NEW_TASK标志,则这个ACTIVITY与启动他的ACTIVITY在同一个TASK中,如果设置了ACTIVITY请参考上面FLAG_ACTIVITY_NEW_TASK的详细说明,“LAUNCHMODE“设置为“STANDARD“的ACTIVITY可以被实例化多次,可以在TASK中的任何位置,对于一个新的INTENT请求就会实例化一次11。2)SINGLETOP如果在任务的栈顶正好存在该ACTIVITY的实例,就重用该实例,而不会创建新的ACTIVITY对象,不过它会调用ONNEWINTENT方法。如果栈顶部不存在就会创建新的实例并放入栈顶即使栈中已经存在该ACTIVITY实例,只要不在栈顶,都会创建实例。如果启动此ACTIVITY的INTENT中没有设置FLAG_ACTIVITY_NEW_TASK标志,则这个ACTIVITY与启动他的ACTIVITY在同一个TASK中,如果设置了ACTIVITY请参考上面FLAG_ACTIVITY_NEW_TASK的详细说明,“LAUNCHMODE“设置为“SINGLETOP“ACTIVITY可以被实例化多次,可以在TASK中的任何位置,对于一个新的INTENT请求如果在TASK栈顶,则会用栈顶的ACTIVITY响影INTENT请求,而不会重新实例化对象接收请求,如果没有在栈顶,则会实例化一个新的对象接收INTENT请求3)SINGLETASK如果在栈中已经有该ACTIVITY的实例,就重用该实例会调用实例的ONNEWINTENT。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。和SINGLETOP在名字上即可看出区别,即SINGLETOP每次只检测当前栈顶的ACTIVITY是否是我们需要请求创建的,而SINGLETASK则会检测栈中全部的ACTIVITY对象,从上向下,如果检测到是我们所请求的则会消灭此ACTIVITY对象上面的对象,直接把检测到的我们需要的ACTIVITY置为栈顶。“LAUNCHMODE“设置为“SINGLETASK“的ACTIVITY总是在栈底,只能被实例化一次,它允许其它ACTIVITY压入“SINGLETASK“的ACTIVITY所在的TASK栈,如果有新的INTENT请求有此标志的ACTIVITY,则系统会清除有此标志的TASK栈中的全部ACTIVITY,并把此ACTIVITY显示出来。4)SINGLEINSTANCE在一个新栈中创建该ACTIVITY实例,并让多个应用共享该ACTIVITY实例。一旦这种模式的ACTIVITY实例存在于某个栈中,任何应用再激活这个ACTIVITY时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该ACTIVITY都会进入同一个应用中。此启动模式和我们使用的浏览器工作原理类似,在多个程序中访问浏览器时,如果当前浏览器没有打开,则打开浏览器,否则会在当前打开的浏览器中访问。此模式会节省大量的系统资源,因为他能保证要请求的ACTIVITY对象在当前的栈中只存在一个。322INTENTINTENT用于封装程序的”调用意图“。两个ACTIVITY之间,可以把需要交换的数据封装成BUNDLE对象,然后使用INTENT携带BUNDLE对象,实现两个ACTIVITY之间的数据交换;INTENT还是各种应用程序组件之间通信的重要媒介。不管想启动一个ACITIVITY、SERVICE还是BROADCASTRECEIVER,ANDROID均使用统一的INTENT对象来封装这种启动意图很明显使用INTENT提供了一致的编程模型INTENT还有一个好处,如果应用程序只是想启动具有某种特征的组件,并不想和某个具体的组件耦合,则可以通过在INTENTFILTER中配置相应的属性进行处理,与STUCTS2中的MVC框架思路类似。INTENT对象大致包括7大属性COMPONENTNAME、ACTION、CATEGORY、DATA、TYPE、EXTRA、FLAGS。INTENT启动ACTIVITY的FLAG属性用法例如如果依次启动了四个ACTIVITYA、B、C、D。在DACTIVITY里,跳到BACTIVITY,同时希望D和C都FINISH掉,可以在STARTACTIVITYINTENT里的INTENT里添加FLAGS标记,如下所示INTENTINTENTNEWINTENTTHIS,BCLASSINTENTSETFLAGSINTENTFLAG_ACTIVITY_CLEAR_TOPSTARTACTIVITYINTENT这样启动BACTIVITY的同时,就会把D、C都FINISHED掉。如果BACTIVITY的LAUNCHMODE是默认的“STANDARD”,则BACTIVITY会首先FINISHED掉旧的B页面,再启动一个新的ACTIVITYB。如果不想重新再创建一个新的BACTIVITY,而是重用之前的BACTIVITY,可以将BACTIVITY的LAUNCHMODE设置为“SINGLETASK”。特别需要注意的是在部分手机中,如三星手机。即便是SINGLETASK也会产生新的页面,而不是重用之前的页面。323FRAGMENTFRAGMENT是在ANDROID30APILEVEL11开始引入新的API技术。为了提高代码重用性和改善用户体验,我们将ACTIVITY中的UI组件进行分组和模块化管理。这些分组后的UI组件就是FRAGMENT。一个ACTIVITY页面中可以包含多个FRAGMENT模块,而同一个FRAGMENT模块也可以被多个ACTIVITY使用。每个FRAGMENT有自己的布局,有自己的生命周期。虽然FRAGMENT拥有自己的生命周期,但因为FRAGMENT必须被嵌入到ACTIVITY中使用,因此FRAGMENT的生命周期是受其ACTIVITY宿主的生命周期所控制的。当ACTIVITY暂停时,该ACTIVTIY内的所有FRAGMENT都会暂停;当ACTIVITY被销毁时,该ACTIVITY内的所有FRAGMENT都会被销毁。4需求分析41总体需求分析在网络飞速发展的今天,在社会更新换代的今朝,很多自己纠结的问题但又不好意思打电话问朋友,依靠这款软件不仅可以匿名向好友说出自己纠结的问题,也可以帮助其他朋友解决一些纠结的问题。这样既帮助了自己也帮助了他人。42市场需求分析GOOGLE推出ANDROID手机操作以来,被各大手机厂商争相追捧,HTC、摩托罗拉、三星、LG、魅族、联想、中兴、华为等手机厂商纷纷采用ANDROID手机操作系统。自价值1999的高配置小米手机盛行以来,ANDROID系统更是被普遍应用。中国三大运营商中国移动、中国联通、中国电信更是推出了3G手机4G手机合约购机计划12。43可行性分析可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决,是否值得解决。在前期调查的基础上,复查并确定系统的目标,规模和功能,对所开发项目的背景和意义进行分析,并草拟初步的开发计划,主要从技术可行性和操作可行性两方面研究分析15。431技术可行性分析技术可行性是对要开发项目的功能性能和限制条件进行分析,使用现在的技术能否实现系统达到的目标。ANDROID是近年来推出的新型手机操作系统平台,技术先进。ANDROID房屋租售信息检索系统要求UI简洁大方,操控简单易用,注重用户体验(ANDROID在这一点上,做的非常优秀)。软件中有一些数据需要存储,如浏览房屋历史、收藏的房屋等等,这些数据都可以存在ANDROID内置的SQLITE数据库中。此外,ANDROID房屋测试后需要将测试结果提交给开发人员,这些功能在ANDROID平台的手机上都可以做到。432操作可行性分析在需求分析中已明确了此手机软件项目的需求,根据项目需求和自己现在所掌握的知识,本人认为完全有能力在现有的时间完成这款软件的开发与测试。并且测试软件的界面设计时,会更多的考虑用户使用时的感受,设计出方便操作且简洁大方的界面。44手机软件开发平台的选择手机软件开发平台有很多,目前国内主流的有苹果的IOS(IPHONEOS),谷歌的ANDROID,微软的WM(WINDOWSMOBILE)等等。本项目采用了ANDROID开发平台,主要平台无关性。苹果IOS平台的应用软件需要在装有MAC操作系统的计算机上开发,ANDROID平台上的应用软件可以在装有WINDOWS,LINUX,或MAC等多种操作系统的计算机上开发,考虑到MAC操作系统的诸多不便,所以放弃了IOS平台;此外,WM(WINDOWSMOBILE)平台应用软件的开发语言是C,开发环境是VISUALSTUDIO,而ANDRIOD的开发语言是JAVA,开发环境是ECLIPSE,考虑到对JAVAECLIPSE的开发环境更为熟悉,所以本项目采用了ANDROID平台开发。45各个模块功能需求分析451系统总体需求分析根据前面的分析,绘制系统需求图,如图41所示图41系统需求图452各个模块需求分析A广场模块利用一个书签选项卡将广场分为两个部分一个投票一个活动。两个模块均使用LISTVIEW进行列表的展示,使用户可以更直观的看到最新信息、并且利用VIEWPAGER可以实现两个模块的侧滑效果,这样使用户的体验会更好。通过筛选功能可以对广场的投票进行筛选。广场投票、活动广场筛选B票夹模块票夹模块主要分为投票、活动、收藏;投票模块主要展示自己发起的、参与过的投票;而活动模块主要展示了自己发起和参与的活动而收藏模块主是展示自己收藏过的投票(现在还没有收藏活动的功能),这三个模块均使用了LISTVIEW进行数据的展示。在票夹中利用LISTVIEW的自定义适配器BASEADAPTER,进行数据填充,实现了一个简单的时间轴效果。票夹C发起模块发起模块分为发起文本票、数字票以及活动。这个大模块也是这后来主要负责的一个模块;发起文本票和发起数字由于界面十分相似,所以他们用了一个界面。发起文本票中选项模块利用代码实现动态添加每个选项,预置结果利用了自定义的SPINNER实现了一个理想状态的下拉选项卡。而截止时间选择器是模仿了IOS的滚轮选择效果,这样用户体验也十分的好。选择媒体文件,可以通过拍摄和相册选择两种方法得到图片,拍照利用了ANDROID中自带的方法INTENTINTENTNEWINTENTMEDIASTOREACTION_IMAGE_CAPTUREINTENTPUTEXTRAMEDIASTOREEXTRA_OUTPUT,URIFROMFILENEWFILEENVIRONMENTGETEXTERNALSTORAGEDIRECTORY,“TEMPJPG“STARTACTIVITYFORRESULTINTENT,PHOTO_GRAPH最后通过ONACTIVITYRESULT方法便可以拿到刚刚拍摄的照片。而通过相册中选图片则是自己写的一个方法、他先读取SD卡中有照片的文件夹,在依次遍历所有文件夹下的图片。发起活动中,增加了地图功能,可以搜索位置定位自己想去的地方,然后将搜索出来的地址利用接口回调到上一页面,地图利用的是高德地图SDKD朋友圈模块朋友圈模块主要展示了自己的好友、票功能。E我的模块我的模块分为我的信息、个人设置、豆豆三个模块;我的信息主要展示自己的一些基本信息,个人设置主要设置我的基本信息、豆豆模块主要展示了自己豆豆收支、求捐信息。豆豆界面也利用和同票夹一样的方法也同样实现了一个简单的时间轴效果。我的设置豆豆5系统测试在软件项目开发和设计过程中,软件的测试是必不可少的。通过不断的调试软件,才能检测到软件的BUG。本项目通过ECLIPSE中的LOGCAT插件打印的错误报告。找到异常,从而解决问题。动态测试有两种主要的方法黑盒测试和白盒测试。51本系统测试实施511软件调试在编写这个软件的过程中遇见很多异常,在这里只写几个吧,就不一一列举了。AANR异常在访问网络时迟迟得不到响应。这个时候就会产生ANR(APPLICATIONNOTRESPONSES)异常。对于这样的问题,可以启动一个异步任务ASYNCTASK(封装了HANDLERLOOPER),让这些耗时的操作在子线程中完成,从而释放主线程来进行UI(USERINTERFACE)操作。B空指针异常定义的对象没有初始化。导致后面的出现找不到对象的情况。C权限访问异常说明在进行编程的时候忘记添加系统的各种权限从而导致的异常,该异常经常出现在访问网络的时候停止响应,因为没有权限去访问网络,访问SDCARD的时候停止响应,说明很可能没有添加访问SDCARD的权限,调用系统功能的时候异常,说明没有添加对应的权限。所以在ANDROID开发的时候要注意为APP添加权限,以避免因为权限问题而导致的各种异常。512数据库测试在数据库编程中,创建的数据库名和表名都不能重复。否则查询不到。找到在ECLIPSE中的DDMS试图下的FILEEXPLORER下的DATADATA目录下的包名下的DATABASES下的数据库,导出到任意位置如图71。然后使用SQLITEEXPERTPERSONAL进行查看如图72,查看表结构是否完整。图71导出数据库图72查看数据库52测试结果在本系统测试实施中,各个功能模块进行程序调试及单元测试,发现错误后对其进行更改。单元测试结束后,将相关的功能模块连接起来,进行集成测试,逐步组合,直到整个系统调试成功。下面为系统部分测试结果如表71所示表71测试结果表NO场景测试步骤预期结果测试结果备注1欢迎界面运行系统显示欢迎界面符合无2进入主界面默认广场进入程序主界面符合无3票夹点击票夹展示票夹信息符合无4发起投票极值选择数字写上最大最小值超出范围给出提示,否则正常发符合无5发起投票特殊符号写东西的时候正常发起符合无写上特殊特号6发起投票时间选择选择时间时写上0时0分,以及过去时间给出相应提醒符合无7发起图片选择选择不同的图片上传正常上传符合无8退出功能点击返回TOAST吐丝提示符合无结论经过测试,本设计的所以模块均可正常运行,基本达到了预期的效果。与此同时本设计还存在这很多的不足之处。下面,我对本设计进行一些总体阐述。本设计以基于ADK的JAVA语言进行开发,SQLITE数据库作文后台支撑,MVC框架作为UI审计的基本框架来进行UI的设计,本设计的界面特点是界面简洁大方,便于维护和操作,基本上都是人机交互进行应用操作,能够很好的完成数据处理

温馨提示

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

评论

0/150

提交评论