毕业论文-基于Android的校园邮件客户端设计与实现_第1页
毕业论文-基于Android的校园邮件客户端设计与实现_第2页
毕业论文-基于Android的校园邮件客户端设计与实现_第3页
毕业论文-基于Android的校园邮件客户端设计与实现_第4页
毕业论文-基于Android的校园邮件客户端设计与实现_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

大连东软信息学院毕业设计(论文)摘要I大连东软信息学院本科毕业设计(论文)论文题目论文题目:基于Android的校园邮件客户端设计与实现系所:电子工程系专业:电子信息工程(嵌入式系统工程方向)学生姓名:学生学号:指导教师:导师职称:讲师完成日期:2014年5月2日大连东软信息学院DalianNeusoftUniversityofInformation东北大学东软信息学院毕业设计(论文)摘要V基于Android的校园邮件客户端设计与实现摘要伴随着网络技术、计算机技术和通信技术的发展与应用,信息化正在改变我们长久以来形成的信息传递方式。在这样的信息化社会里,对信息的获取、应用和处理的能力是一个人在社会生活中必须具备的能力,而对于信息的获得,是信息化社会中最为重要的一部分,我们获取信息的方式从之前的电报、电话到如今的手机、互联网,获取信息的途径是在不断的升级,同时,也正是因为网络的兴起以及不断的升级让电子邮件这种更适合网络、更廉价、更快捷的信息传递方式在各个领域普遍的应用开来。电子邮件还被称为电子信箱又或者电子邮政,它是—种基于网络、用电子等手段进行信息交换的通信方式。是Internet为基础的应用最广的服务之一:通过基于网络的电子邮件系统,用户可以仅仅花费最低的价格,以能达到的最快速的方式,与网络中任何一个区域的网络用户联系,这些电子邮件所包含的内容多种多样,可以由文字或者图像亦或者声音等各种方式组成。同时,用户可以得到由网络提供的海量的、免费的新闻、专题邮件等等,除此之外还可以实现轻松的信息搜索。在Android平台上的邮件客户端不仅仅让程序拥有了一个稳定又普及的平台,更让软件有了一个更长远的发展空间。本文分以下几部分阐述了基于Android的邮件客户端的实现,采用POP3以及SMTP协议进行对于邮件服务器的访问以及对邮件的收发功能。程序的绝大本分的机能都是由Java.Mail这个package实现的。本文在充分理解Android的开发原理及流程的基础上,整合Java.Mail的技术,自定义适应学校学生的UI用户界面,开发一款面向于在学校生的邮件收发客户端,让学生能够更方便、更快捷的获取来自各个方面的邮件信息,走在信息浪潮的前沿。关键词:Android,POP3,SMTP,邮件客户端大连东软信息学院毕业设计(论文)AbstractDesignandDevelopmentofE-mailClientforCampusBaseonAndroidAbstractAlongwiththeadvantageoftheNetworktechnology,computertechnologyandthecommunicationstechnology,InformationtechnologyischangingthewayofTransmissionofinformationofourlifewhathasbeenusedsincethousandsyears.IntheworldoftheInformationtechnology.InthesocietyoftheInformationtechnology,thewayofacquisition,processinganduseofinformationisthenecessaryabilityofapersoninsociallife.Andthewayofacquisitionofinformationisthebestimportantpointinthesocietyoftheinformation.Thewayofwegettheinformationhadchangedtomobilephoneandtheinternetfromthetelegraphandthephone.Itisupgradingstepbystep,Atthesametime,becauseoftherisingoftheinternet,ItmakesE-mailwhatisakindofwayoftransmissionofinformationmorefittointernetandmorecheaperandmoreefficient.E-mail,itisanelectronicmeansfortheexchangeofinformationcommunication.Itisthemostwidelyusedservice.Userscanconnecteveryonewhotheywanttocommunicatewhereverinaveryfastwayandaverylowprice.TheE-mailcanbewords,imageandthevoiceandsoon.Besides,userscangetvariesoffreeinformation,specialmailandsearchinaneasyway.TheE-mailclientintheAndroidplatformcouldexecutestabilityandletthesoftwareownafurtherspaceofadvantage.Inthispaper,itdescriptionthatimplementtheclientofE-mailbaseontheAndroidplatforminthefollowingpoints.TheprogramcanconnecttheserverofmailandreceiveandsendmailthroughthePOP3andSMTPprotocol.ThisprogramimplementbyJava.mailpackage.ThispaperprocessakindofE-mailclientfacetostudentbaseonthefullunderstandingofthedevelopmentofAndroidprincipleandprocess,IntegratedthetechnologyofJava.mail,customtheUIwhatfittothestudent.Itmakestudentreceivevariesinformationinamoreconvenientandmoreefficientwayandstandthefrontofinformationwave.Keywords:Android,POP3,SMTP,Mailclient大连东软信息学院毕业设计(论文)目录目录TOC\o"1-3"\u摘要 IAbstract II第1章绪论 11.1课题研究背景与意义 11.2论文研究主要内容 11.3国内外研究现状 1第2章关键技术介绍 22.1邮件相关技术的介绍 22.1.1POP3协议 22.1.2SMTP协议 22.1.3Java.Mail包 22.2Android相关技术介绍 22.2.1Sharedpreferences 22.2.2Session 32.2.3Message 32.2.4Transport 32.2.5Store和Folder 3第3章系统分析 53.1构架概述 53.1.1功能构架 53.1.2功能需求描述 63.2开发环境 63.2.1AndroidSDK2.2版本 63.2.2Eclipse开发平台 73.3系统可行性分析 73.3.1技术可行性 73.3.2平台可行性 8第4章系统设计 94.1设计的原则 94.2系统机能设计 94.2.1接收邮件机能的设计 94.2.2发送邮件机能的设计 104.2.3转发、回复邮件机能的设计 114.3系统界面设计 114.4系统控制流程设计 12第5章系统实现 145.1数据交互控制类实现 145.1.1内部数据交互控制类 145.1.2与服务器交互数据控制类 145.2界面控制类实现 155.2.1欢迎界面 155.2.2机能选择界面 165.2.3接收邮件界面 165.2.4邮件详细界面 175.2.5发送邮件界面 18第6章系统测试 206.1软件测试的方法与意义 206.1.1软件测试的方法 206.1.2软件测试的意义 206.2功能测试 206.2.1接收邮件 206.2.2发送邮件 226.2.3回复、转发邮件 23第7章结论 26参考文献 27致谢 28附录A 29大连东软信息学院毕业设计(论文)-第1章绪论1.1课题研究背景与意义Android是一种基于Linux的开放源码操作系统,主要使用于PDA等便携设备。目前依旧没有冠以统一的中文名称,中国大陆地区较多人使用安卓(非官方)或安致(官方)。Android操作系统最初由AndyRubin开发,最初主要用于支持手机。2005年由Google收购注资,并组建、开放手机联盟的开发与改良,随其发展,现在已经逐渐扩展到平板电脑及其他领域上。子邮件还被称为电子信箱又或者电子邮政,它是—种基于网络、用电子等手段进行信息交换的通信方式。是Internet为基础的应用最广的服务之一:通过基于网络的电子邮件系统,用户可以仅仅花费最低的价格,以能达到的最快速的方式,与网络中任何一个区域的网络用户联系,这些电子邮件所包含的内容多种多样,可以由文字或者图像亦或者声音等各种方式组成。同时,用户可以得到由网络提供的海量的、免费的新闻、专题邮件等等,除此之外还可以实现轻松的信息搜索。在Android平台上的邮件客户端不仅仅让程序拥有了一个稳定又普及的平台,更让软件有了一个更长远的发展空间。1.2论文研究主要内容使用Java.Mail在Android平台上进行邮件客户端的开发。通过自定义的UI用户界面使操作界面更能适应在校的学生。通过Wi-Fi的链接或者网络供应商提供的移动网络,建立起对于邮件服务器的链接,做相关处理,将处理结果返回客户端。1.3国内外研究现状信息时代的到来,邮件更是在网络生活中扮演不可或缺的角色。当下,网络邮件收发频率要远远大于现在的邮递员送信。节约了很多成本,也让我们的生活更加的方便。Android以前是一家旧金山的公司,之后被谷歌收购。到如今已经拥有智能设备市场上的半壁江山。如今的Android已经成为了一种平台和生态系统。虽然Java.Mail是Sun公司的API之一,但它目前还没有被加在标准的java开发工具包中(JDK,JavaDevelopmentKit),这就意味着开发者在使用前必须另外下载Java.Mail文件的jar文件。除此以外,开发者还需要有Sun的JavaBeansActivationFramework(JAF,JavaBeansActivationFramework)。JavaBeansActivationFramework的运行很复杂,在这里简单的说就是Java.Mail的运行必须得依赖于它的支持。大连东软信息学院毕业设计(论文)第2章关键技术介绍2.1邮件相关技术的介绍2.1.1POP3协议POP3(PostOfficeProtocol3)即邮局协议的第3个版本,它规定了个人PC机如何连接到互联网上的邮箱服务器进行收发邮件的协议。它是互联网在关于电子邮件的方面第一个离线协议标准,POP3存在的意义是允许用户将服务器的邮件存储到本地主机(即自己的PC机)上,同时根据用户对于客户端的操作(例如:删除或保存)同时可以对于邮件服务器上的邮件进行操作,而POP3服务器就是运用这种协议并遵照此协议的接收邮件服务器,来进行接收电子邮件操作的。POP3协议是TCP/IP协议族中的一员。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。2.1.2SMTP协议SMTP(SimpleMailTransferProtocol)即简单邮件传输协议,它是一组用于由源地址发出邮件到目的地址接收邮件的传送邮件的基本规则所组成的,并且通过它来控制信件与中转的方式。SMTP协议是TCP/IP的协议族,其作用是每台个人PC机在邮件的发送或中转信件时通过此协议来找到接下来的目的地。通过SMTP协议中所指定的服务器,通过互联网就可以把E-mail发送到对方的服务器上了,整个过程仅仅只要很短的时间,这也正是电子邮件的特点所在。而所谓的SMTP服务器就是遵照SMTP协议进行工作的发送邮件服务器,用来中转或发送出用户的电子邮件。2.1.3Java.Mail包虽然Java.Mail是Sun公司的API之一,但它目前还没有被加在标准的java开发工具包中JDK(JDK,JavaDevelopmentKit),这就意味着开发者在使用前必须另外下载Java.Mail文件的jar文件。除此以外,开发者还需要有Sun的JavaBeansActivationFramework(JAF,JavaBeansActivationFramework)。JavaBeansActivationFramework的运行很复杂,在这里简单的说就是Java.Mail的运行必须得依赖于它的支持。JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息。2.2Android相关技术介绍2.2.1SharedpreferencesSharedpreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用Sharedpreferences完成,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存。Sharedpreferences类似过去Windows系统上的ini配置文件,但是它内部分有多种权限,可以全局共享访问,最终是以XML文件的方式来进行保存,整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml处理时Dalvik会通过自带底层的本地XMLParser解析,比如XMLPull方式,这样对于内存资源占用的控制来说比较好。2.2.2SessionSession类定义了基本的邮件会话。就如同Http会话之类的那样,Java.Mail进行收发邮件的基本工作都是基于这个会话而进行的。Session对象使用java.util.Properties对象从而获得了邮件服务器,用户名还有密码信息等等,初次之外,整个应用程序所使用的共享信息依然是要通过它来完成。Session类有一个特点,它的构造方法是私有的,所以调用时可以使用Session类内部提供的getDefaultInstance()这个静态的获取方法获得一个已经默认的Session对象。2.2.3Message当Session对象被实例化之后,便可以使用用来被发送的构造信息体了。在这里SUN提供了Message类型来帮助广大的开发者来完成这项工作。由于Message这个类的特殊,它是一个抽象类,所以,在大多数情况下,都是使用已经被提供的继承自它的一个ernet.MimeMessage这个子类,该类使用的类型是MIME类型、MIME信息头。除此之外,信息头只能使用的编码类型是US-ASCII字符,而非ASCII字符的编码将通过编码转换为ASCII的方式之后才能使用。2.2.4Transport在发送信息时,Transport类将被用到。这个类实现了发送信息的协议(通称为SMTP),此类是一个抽象类,可以使用这个类的静态方法send()来发送消息。2.2.5Store和Folder程序接收邮件和发送邮件的机能很类似都需要使用到Session。不过在实例化一个Session后,需要从Session中获取特定类型的Store对象,在之后,实现连接到Store的操作,这时的Store对象就是存储邮件的邮件服务器。在Store的连接过程中,极有可能需要用到用户名以及用户密码。完成Store的连接后,通过实例化一个Folder对象,作为邮箱的目录的返回值通过Store的getFolder()方法被返回,程序就可通过这个Folder对象读取邮件信息了。大连东软信息学院毕业设计(论文)第3章系统分析3.1构架概述3.1.1功能构架其中,Welcome类为欢迎界面控制类,在这个类中,要求用户输入邮箱的有户名及密码还有所需的POP以及SMTP服务器的地址,输入完成后可点击登陆按钮进入下一个界面。ReceiveAndSend类为软件主界面,这个界面可供用户选择软件的主机能执行,分别为接收邮件以及发送邮件。如果用户选择接收邮件,程序开始从服务器上读取邮件,并作为List显示在屏幕上,在进行长按之后,程序进入邮件的详细界面,这个界面显示邮件的详细内容,包括:发件人、主题、时间、邮件主要内容。在主界面选择发送机能的时,进入邮件发送画面,这个画面需要用户输入需要的邮箱地址以及输入邮件主题和邮件主要内容,在点击发送按钮之后,邮件进行发送。以上所述为程序的主要功能模块的实现类,按照用户的基本需求而设计成的,同时机能设置简单明了,操作界面浅显易懂,适合大多数人的使用。根据需求确定本程序主要包括以下功能类,如图3.1所示。图3.1系统体系结构3.1.2功能需求描述(1)邮件接收在主要机能选择页面选择接收邮件后,需要对话框提示正在接受邮件,接收的邮件用List表示,显示邮件的主题,可以通过点击事件进入邮件详细画面,显示具体的发件人、发送时间、主题、内容。(2)邮件发送在主要机能画面点击发送邮件后进入邮件发送界面,显示收件人、主题、内容可编辑的文本框,在编辑之后,有可供点击的发送按钮进行发送事件,已发送的邮件保存至已发送List中,可以通过操作进入此文件目录,显示已经发送的邮件,进行选择操作后可以看到已发送的详细内容,与邮件接收类似。(3)邮件回复、转发在接收邮件的详细界面上,可以通过Menu时间进行回复以及转发操作,点击选择操作之后进入邮件发送状态,回复状态下,收件人以及主题、内容为已填入项,收件人为接收邮件显示的发件人信息,主题在收件原主题的基础上加上Re:标识,内容显示原邮件的内容由横线分割。转发状态为收件人为空,需要用户进行输入操作,主题为原邮件主题加上Fw:标识,内容为原邮件内容添加横线分割,与邮件回复类似。3.2开发环境3.2.1AndroidSDK2.2版本谷歌于北京时间2010年5月20日晚上10:30点在旧金山Moscone会展中心举办GoogleI/O2010大会,第二天,Google正式发布了Android操作系统2.2版。首先来看看全新发布的Android2.2。正如所期盼的那样全新的Android2.2将会在很大的层面上改变之前Android系统在多个方面所存在的问题,这不仅仅因为它所带来的全新功能,同时也是这个系统对于之前Android系统不足的修正。下面是Android2.2给我们带来了那些方面的改变:(1)整体性能大幅度的提升。(2)3G网络共享功能。(3)Flash的支持。(4)App2sd功能。(5)全新的软件商店。(6)更多的Web应用API接口的开发。Android2.2系统平台在优势方面,首先就是其开发性,任何移动厂商都可以开发Android的终端。显著的开放性让跟多开发者愿意参与其中,随着用户的增加和应用的丰富,Android的平台短短几年已经成熟。开发性对于Android的发展而言,是使用者迅速增长的重要因素,这里的人气包括厂家和消费者,对于消费者来说,丰富的软件资源使其备受消费者青睐。开放的平台也会带来更大竞争,如此一来,消费者同时可以用更低的价位购得性价比更高的手机。3.2.2Eclipse开发平台此次开发的编译器为Eclipse,Eclipse是一个开放源代码、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件和组件而被构建而成的开发环境。其中值得一提的是,Eclipse还附带了一个额外的、标准的插件集,其中还包括了Java的开发工具(JavaDevelopmentKit,JDK)。大多数的用户都愿意将Eclipse当作一个集成了Java的开发环境来使用,但着眼于Eclipse的实际目标却不可能仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件的存在的意义是主要希望对于Eclipse进行拓展的软件开发人员来说的,因为它允许这些软件开发人员构建相对于Eclipse环境来说相对的无缝集成的工具。Eclipse中的每一样东西其实都是插件而已,所以对于给Eclipse提供插件的开发人员,以及能够给用户提供统一的集成开发环境,所有工具对于发人员来说实际上都是具有同等的。这种相对的平等性和相对的一致性并不仅限于Java开发工具。尽管Eclipse这个工具是使用Java语言进行研制和开发的,但它的用途早已经仅限于Java语言的束缚了,例如,支持比如C/C++和COBOL等编程语言的插件已经可以被开发者所使用。除此之外,Eclipse框架还可以被用作与软件开发无关的那些其他应用程序类型的研制和开发基础,比如某些管理系统等等。3.3系统可行性分析3.3.1技术可行性(1)本系统使用Java.Mail包,Java.Mail是可选包,因此如果需要使用的话需要首先从下载。目前最新版本JavaMail1.4,使用Java.Mail的时候需要JavabeanActivationFramework的支持,因此也需要下载JAF。安装Java.Mail只是需要把他们加入到CLASSPATH中去,如果不想修改CLASSPATH的话,可以直接把他们的jar包直接copy到JAVA_HOME/lib/ext下。这样Java.Mail就安装好了。Java.Mail包中包含用于电子邮件所用到的基本的核心类。使用Session定义了一个基本的邮件会话,它需要从Properties中读取有关邮件服务器,用户名和密码等一些信息。(2)本系统接收邮件使用POP3协议,POP3协议为POP的第三版,POP原文为(PostOfficeProtocol)POP适用于C/S结构的脱机模型的电子邮件协议,所谓的脱机模型就是不能在线操作,POP不支持对服务器邮件进行扩展操作,此过程需要更高级的IMAP4协议来完成。支持POP协议使用ASCII码来传输数据消息,这些数据消息可以是指令,同时也可以是应答。(3)本系统发送邮件使用SMTP协议,SMTP协议原文为(SimpleMailTransferProtocol),SMTP这个协议是独立于特定的传输子系统,而且,仅仅需要提供给它可靠有序的数据流信道的支持。SMTP最重要特性之一就是,它能跨越网络来进行传输邮件,即“SMTP邮件中继”。一般情况下,一个网络可以由广域互联网上可相互访问的主机、基于防火墙所分隔的TCP/IP网络上可相互访问的主机,及其它通过LAN/WAN中的主机利用非TCP传输层协议组成。使用SMTP这个协议,可实现相同网络上PC机之间的邮件传输,PC机与其它邮件在网络中的传送是通过中继器或网关来实现的。如果是这种方式的话,发送邮件的过程就可能经过从发送端到接收端网络路径上的存在的大量的中间中继器或者网关主机。域名服务系统的邮件交换服务器是要用来表明出传输邮件过程中的所要访问的下一个IP地址。3.3.2平台可行性AndroidSDK2.2,采用了分层的架构。Android分为四个层,从高层到底层分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层。Android是以Linux为核心的操作平台,作为一款开源的操作系统,随着Android迅猛的发展,如今已经允许使用多种编程语言来对于Android应用程序进行开发,而不再是只能使用Java开发这种有局限性的规定了,正是因为Android应用程序如此的变化,让其受到众多开发者的欢迎,成为真正意义上的开放式操作系统。在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程,还有其他诸如:Qt、Mono等一些著名编程框架也渐渐的开始支持Android的编程操作,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来进行开发。大连东软信息学院毕业设计(论文)第4章系统设计4.1设计的原则软件设计主要有如下10个原则:(1)可靠性。软件系统规模越做越大越复杂,其可靠性就如今越难确保。应用本身有着很高的要求对于系统运行的可靠性而言,自身的生存发展的竞争能力与软件的可靠性有很大联系。避免可能发生故障的能力就是所说的软件可靠性的测试,一旦出现问题后,必须要有排除故障和解脱故障的能力。硬件可靠性和软件可靠性本质区别在于,前者为物理机理的老化和衰变等原因所致,而后者是由于设计和实现的缺陷所致。在软件的设计阶段就应该确定下来的就是软件的可靠性。(2)健壮性。它也称鲁棒性,是指不符合规范要求的输入能够被软件判断其是否符合规范的能力,并能够进行合理的处理方式将其解决。软件健壮性是一个较为模糊的概念,但是却是一个非常重要的软件外部量度的标准。软件设计的健壮与否将会直接反应了分析设计水平。(3)可修改性。要求以科学的方法设计软件,要求拥有良好的结构和可供阅读的文档,使系统性能易于调整。(4)容易理解。软件的可理解性决定了可靠性和可修改性。它并不仅仅是文档是否具有可读性的问题,同时也要求了软件本身也要具有简单明了的结构。这在很大程度上是设计者的洞察力和创造性的体现,以及对设计对象的信息的掌握透彻程度的一种表现,当然它还依赖于设计工具和方法的运用的是否适当。(5)程序简便。是否简便直接体现了程序的高效性。(6)可测试性。可测试性就是准备一组适当的数据,用来测试既存的系统,并保证系统得到全面的、合理的测试。(7)效率性。软件的效率性的度量标准是用程序的执行时间和所占用的内存容量来度量的。在达到所要求的前提下,运行所需时间越短和存储容量越小,则效率愈高。(8)标准化原则。在结构上实现开放,基于开放式标准,符合信息产业部的规范。(9)先进性。首先是满足客户需求,并且保证系统性能可靠,同时易于维护。(10)可扩展性。软件设计时就应该要留有升级接口和升级空间。4.2系统机能设计4.2.1接收邮件机能的设计首先,作为一款基于网络服务的软件,程序就必须拥有访问网络的权限,而对应的使用何种网络,比如:是Wifi网络还是使用网络供应商提供的网络这一点可以通过实际情况进行不同的处理。同时,对于邮件的接收用户名及密码是必不可少的,可以在欢迎界面进行对于用户名以及密码的录入,不仅如此,对于邮件接收需要使用相应的协议,本程序使用的邮件协议为POP3,因此,需要用户录入相应的邮箱的POP3服务器地址或域名,才能相应的对服务器进行访问,从而达到接收邮件的目的。进行邮件接收时,使用Properties、Session、Store三种Java.mail的核心类进行对邮件服务器的访问。在连接服务器之后,使用Folder类对邮箱中的INBOX文件夹进行控制,从而获取收件箱的邮件。在可以控制收件箱中的邮件之后,必须考虑一个问题,邮件是没一封都是独立的个体,而收件箱对于程序来说才是操控的单位,所以,在这个过程中,需要将每一封邮件放到一个容器中,从而实现对于整个收件箱的控制。因此,List就成为了邮件存储的容器。将每一封邮件均放入List中,最后对整个List进行操作,这个操作不仅仅方便,同时也保证了服务器上的邮件不被替换和操作的安全性。对于一款邮件软件来说,接收邮件的功能不能止步于从服务器获取邮件,同时,还应该将邮件的相关内容,例如:主题、发件人、发送时间等相应内容展示给用户,这个时候就必须进行对于邮件内容的处理,将邮件的多种信息整合、分类想,显示在用户界面上以供用户进行阅读。如图4.1所示。图4.1邮件的接收过程4.2.2发送邮件机能的设计相对于接收邮件,发送邮件同样需要进行对于服务器的连接。同样的,发送邮件也需要相应的邮件协议进行支持,本程序发送邮件使用SMTP协议,同时需要用户在登陆界面录入相应的SMTP服务器的地址或域名。进行邮件发送的时候,需要使用MimeMessage、Properties、Session、Store、Transport这四种核心类,通过这个类的相互作用建立起程序与服务器之间的链接,同时将信息通过服务器发送出去。发送邮件之后,可以提供一个List将已发送的邮件存储其中,作为发件箱存在于程序之中,而对于发件箱的布局仿照收件箱,也可以使用同一套XML,为程序的编写和界面的编写提供方便。如图4.2所示。图4.2图片的发送过程4.2.3转发、回复邮件机能的设计 邮件的回复和转发是在邮件接收阅读后的拓展功能,基于邮件阅读后的一个拓展的操作,允许用户在已接收的邮件的基础上进行回复和转发的操作。邮件的回复和转发在机能上划分也属于发送邮件的一部分,只不过相应的邮件内容与邮件主题等邮件信息固定,所以转发和回复依旧使用邮件发送的机能代码,只不过需求在邮件的主题、内容方面从已收到的邮件获取相应的信息,通过SharedPreferences类将此操作需要的信息传递给邮件发送类即可。4.3系统界面设计程序XML文件为6个,如图4.3所示。图4.3画面XML文件其中, item.xml为一封的邮件XML,其中仅仅定义了邮件的题目和部分信息,listmenu.xml为收件箱List显示画面,按条显示从邮件服务器Index文件夹取出的邮件,每条邮件只显示item.xml的内容。Main.xml显示邮件的详细信息,包括:标题、发件人、时间以及邮件正文内容,主要由可编辑文本框以及文本框构造而成。receive_send.xml为欢迎画面后的机能选择画面,在此画面选择程序将执行的主要机能,分为:接收邮件、发送邮件,选择之后将进入相对应的机能画面,画面主要有接收邮件的收件箱,以及发送邮件的新邮件两个按钮。send_email.xml为发送邮件的主要画面,此画面包括:收件人、主题、邮件正文,画面同邮件详细画面类似,由可编辑文本框以及文本框组成,与之不同的是,有一个发送邮件的按钮,点击此按钮会将邮件按照用户输入的相关信息进行发送,并退出发送界面,如果完成,显示成功发送。welcome.xml为欢迎画面,此画面由邮箱有户名输入文本框、密码输入文本框、POP服务器地址输入文本框、SMTP服务器地址输入文本框组成,在用户输入合法的用户名、密码、POP服务器地址、SMTP服务器地址之后,可点击登陆按钮进入主要机能选择界面。4.4系统控制流程设计系统主要由以下几个部分组成,首先程序运行进入欢迎画面,显示需求用户输入的用户名、密码、POP服务器地址、SMTP服务器地址,并显示登录邮箱按钮,此按钮在输入合法是才变成可点击状态,在未输入以及输入不合法时为不可点击状态。登陆邮箱之后显示程序主界面(亦主要机能选择界面),显示程序主要机能接收邮件的收件箱以及发送邮件的新邮件按钮进入对应的机能界面。当点击进入接收邮件的机能界面后,程序将通过POP协议获取服务器上的所有邮件,并按照List显示在画面上,选择对应的邮件进入邮件详细画面,显示想对应的邮件信息,查看邮件之后可点击返回主菜单的按钮返回程序主界面,在进行下一步操作,同时也可以使用返回按钮,返回邮件List画面查看其它邮件,亦或者点击回复或转发按钮进入邮件发送界面,相对应的信息将被自动填写在新邮件的对应位置。在主界面点击新邮件按钮进入邮件发送界面,要求用户输入收件人、主题、邮件正文后,进行发送操作,发送之后提示发送成功,返回主界面。具体流程如图4.4所示。图4.4图4.4程序流程图合法的输入欢迎界面主要机能选择接收邮件List邮件发送邮件详细登陆按钮NoYes收件箱新邮件发送按钮选择邮件转发或回复返回主界面大连东软信息学院毕业设计(论文)第5章系统实现5.1数据交互控制类实现5.1.1内部数据交互控制类本程序的内部数据传输主要是由SharedPreferences来实现的,通过SharedPreferences创建的对象来进行在类与类之间的数据传输与交换,创建SharedPreferences需要两个参数,这两个参数用静态全局变量来实现,第二个参数为模式,规定了对于SharedPreferences的操作是存入还是读出。使用时,用SharedPreferences的Editor声明对象,并调用edit()方法,同时为了方便读取,将写入的字符串内容进行一定程度的分割和组合,之后调用commit()方法进行编译器内容的提交。具体代码如下:SharedPreferences.Editoreditor=getSharedPreferences( SAVE_INFORMATION,MODE_WORLD_WRITEABLE).edit();editor.putString("save",txtEmailAddress.getText().toString() +";"+txtPWD.getText().toString()+";" +txtpopser.getText().toString()+";" +txtstmpser.getText().toString());mit();5.1.2与服务器交互数据控制类本程序的的与服务器交互的实现主要借助Java.mail包所自带的核心类来实现。首先实例化一个Properties的对象,此对象作为实例化Session对象的方法参数传递给getDefaultInstance()方法,再通过已实例化的session实例化一个Store,使程序可以取得pop3协议的邮件服务器。取得服务器之后通过Store提供的connect()方法进行对于pop服务器的连接。之后,通过Store提供的getFolder()方法获得名为INBOX的文件夹实例化一个Folder对象,再通过这个对象设置对于邮箱收件箱的读写操作,这里,将它设定为只读,这样的设定可以保证服务器上的收件箱里面的邮件的安全性和正确性。通过已实例化的Folder对象再次实例化一个Message对象,通过这个对象,就可以实现了对于收件箱内部所有的邮件的控制。同时,在本地实例化一个List,通过一个简单的For循环,将Message对象的内容存储到List中去。同时,在For循环中,通过自定义类Resolvemail进行对于邮件详细内容的解析和管理,从而获取邮件中的标题和时间信息,最后将信息存放到List中。在使用Store以及Folder之后要将其关闭。代码如下:Propertiesprops=newProperties();Sessionsession=Session.getDefaultInstance(props);Storestore=session.getStore("pop3");store.connect(popserver,username,password);Folderfolder=store.getFolder("INBOX");folder.open(Folder.READ_ONLY);Messagemessage[]=folder.getMessages();ArrayList<HashMap<String,String>>list=newArrayList<HashMap<String,String>>();for(inti=0;i<message.length;i++){ResolveMailreceivemail=newResolveMail((MimeMessage)message[i]);Title=receivemail.getSubject();Date=receivemail.getSentDate();HashMap<String,String>map=newHashMap<String,String>();map.put("title",Title);map.put("info",Date);list.add(map);SimpleAdapterlistAdapter=newSimpleAdapter(this,list,R.layout.item,newString[]{"title","info"},newint[]{R.id.title,R.});listview.setAdapter(listAdapter);}folder.close(true);store.close();5.2界面控制类实现5.2.1欢迎界面欢迎界面的布局采取的较为容易的绝对布局,画面主体为9个控件,分别是4个TextView、4个EditText和一个Button组成,TextView均为EditText的提示语,而4个EditText分别为需要用户输入的邮箱账户、密码、POP服务器地址、SMTP服务器地址。在代码中,当点击了登录邮箱按钮之后,程序会将用户输入的信息保存到编辑器当中。界面截图如图5.1所示。图5.1欢迎界面设计结果5.2.2机能选择界面机能选择界面主要由三个按钮、一个时钟、一个TextView组成,同样使用的是绝对布局。代码中,对于按键事件均有监听,通过点击按钮都会使程序发生画面迁移。具体画面如图5.2所示。图5.2机能选择界面设计结果5.2.3接收邮件界面接收邮件由两部分组成,列表界面和详细界面。列表界面有一个显示标题的TextView,一个ListView和一个表示Logo的ImageView组成。整体的画面为线性布局,同时在ListView中又嵌套了一个线性布局。List的内容显示格式是通过另外一个XML提供的,在设定ListView的适配器时,将两者结合在一起。List界面如图5.3所示。图5.3接收邮件List界面设计结果5.2.4邮件详细界面当长按选择的List时,程序进入接收邮件的详细界面,详细界面同样为线性布局,布局文件中包含4个TextView,4个EditText。同样,TextView是为了每个EditText提供说明,分别显示了,邮件的题目、邮件的发件人、邮件发送的时间以及邮件的正文。邮件的这几项内容都是通过Resolvemail实现的,分别将其赋值到对应的显示栏中。详细界面效果图如图5.4所示。图5.4邮件详细界面设计结果5.2.5发送邮件界面邮件的发送界面,同时也是邮件的回复以及转发界面,在实现过程中,因为三个界面的需求相似,所以将三个机能归并为同一个画面,从而大大的减少了代码量。发送界面同样适用线性布局,包括3个TextView、3个EditText和1个Button。在回复邮件时,收件人一栏会自动成为所回复邮件的发件人,而主题则在收到邮件的主题的基础上,在前面添加Re:标识,同时在邮件的内容的基础上在正文的正上方添加一行分割线来标识回复邮件和原邮件。在转发邮件时,收件人一栏正常为空,主题一栏则在收到邮件的主题的基础上,在前面添加Fw:标识,同时在邮件的内容的基础上在正文的正上方添加一行分隔符来标识收到的原邮件与转发邮件。在正常发送新邮件的时候,以上均为空,需要用户手动输入。发送界面的效果图如图5.5所示。图5.5邮件发送界面设计结果大连东软信息学院毕业设计(论文)第6章系统测试6.1软件测试的方法与意义6.1.1软件测试的方法软件测试从测试角度分为三种:白盒测试、黑盒测试、灰盒测试。所谓白盒测试,它是按照程序内部的体系结构进行程序的测试,通过测试来检测程序内部的机能是否按照设计的要求正常的进行,检验程序中的每个分支是否都能按要求进行正确的工作。这一方法把测试对象看作一个打开的盒子,测试人员参照程序内部所体现的逻辑结构,设计测试用例与数据,对程序所有的逻辑进行测试,在不同的测试点检查程序的状态,确定测试出的状态是否与预期的状态相同。所谓黑盒测试,它是通过检测每个功能是否都能正常的调用。在测试中,测试人员将程序看作一个不能打开的盒子,在完全不考虑程序内部结构和内部逻辑的情况下,仅仅使用程序接口来进行测试,它只检查程序功能是否按照需求说明书的规定能否正常使用,程序是否能在适当地接收输入数据而产生正确的输出信息。黑盒测试关注的是程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能的测试。而灰盒测试时介于白盒与黑盒之间的测试方法,在此就不一一说明了。6.1.2软件测试的意义软件测试是以发现软件的缺陷为目的,使软件运行、将软件运行所产生的危险性降低到允许的范围内,是为发现错误而执行程序的一个过程。软件测试的作用大致分为以下几条:(1)检验了代码中对象之间的相互作用。(2)检验了所有的组件是否正确的集成。(3)检验了所有用户的需求是否正确的实现。(4)确保了软件产品中的问题在分发之前被准确的定位。软件测试在最大程度上保证了软件的产品的质量,极大地提高了开发的效率。6.2功能测试6.2.1接收邮件首先程序正常开始执行,进入欢迎界面,在欢迎界面的账户输入栏内输入账户“wangyiqiang10@”,输入之后再密码栏内输入账户密码“********”(因安全因素,不在本文内显示),之后输入POP服务器IP地址“”,再输入SMTP服务器地址“”,因学校服务器的设定原因,故两个服务器的IP地址相同。输入无误后,点击“登录邮箱”按钮,进入主要机能选择画面,在此画面点击收件箱,进行收件操作,此操作根据收件箱内的邮件所占空间大小而导致收件的时间长短不一,如果邮件过多,时间会随之延长。收件成功后显示邮件的List界面,如图6.1所示。图6.1成功接收邮件后显示的List界面在此画面,选择想要查看的邮件后,进行长按操作,即可进入又邮件的详细界面,如图6.2所示。图6.2邮件详细界面画面显示正常,测试成功。6.2.2发送邮件发送邮件的前提条件与接收邮件相同,需要在欢迎界面录入邮箱的账户名以及密码。在技能选择界面选择“新邮件”按钮,进入邮件发送界面,如图6.3所示。图6.3邮件发送界面在此界面输入相应的收件人、主题、邮件正文之后点击“clickSendMSG”按钮,即可进行发送邮件的操作,发送成功后显示悬浮窗口,提示“邮件发送成功”,如图6.4所示。图6.4发送成功提示画面邮件发送成功后显示主要机能选择画面,发送功能测试结束,测试成功。6.2.3回复、转发邮件在邮件的详细界面下,点击“menu”按钮,即可呼出menu界面,界面为回复和转发两个按钮,如图6.5所示。图6.5邮件拓展机能选择点击回复按钮进入邮件发送界面,Title为“Re:”加上原有主题,收件人为邮件接收的发件人,主要内容将原有邮件内容加上“-”组成的分割线,如图6.6所示。图6.6回复发送界面在邮件详细界面下的Menu按钮中,点击转发时,进入邮件转发发送界面,收件人为空,主题为“Fw:”加上原先的邮件主题,主要内容将原有邮件内容加上“-”组成的分割线,点击发送按钮,即可进行发送。如图6.7所示。图6.7邮件转发界面邮件回复、转发测试结束,测试成功。大连东软信息学院毕业设计(论文)第7章结论通过对Android手机平台的邮件客户端软件的开发,对Android邮件客户端系统的整体设计有了一个深入的了解,对整个的开发流程也都有了一个较为清晰的认识。开发Android的邮件客户端这个软件,要抓住开发的核心部分,邮件发送大体由接收邮件、发送邮件、转发邮件、对于附件的处理这几个部分组成,这次的开发也是围绕着这几个部分依次开始的,其中邮件的接收、发送是必不可少的功能,否则就不能算作邮件客户端了。此次编写的邮件客户端程序,是在熟悉了专门用于发送邮件的POP3以及SMTP协议的基础上,运用Sun公司的Java.Mail包的便利性和灵活性,借助于Android的API的强大,通过Android提供的Intent机制,从协议的基本命令做起,一步步的与服务器进行交互操作,最终实现邮件的接收和发送的功能。当前,随着手机平台的不断发展,Android已经站在的引领手机平台的发展的前沿,基于Android的手机客户端也就拥有了非常好的发展前景。同时,越来越多的人对于邮件的需求正在加大,而一款易于上手,简单快捷的接收、发送邮件的软件就成为了许多依赖于邮件进行沟通、联系的人们日常工作学习生活中最为需求的工具。而这次开发的程序正好可以满足大部分人对于邮件的需求,为他们带来真正信息化的沟通方式。虽然,这个软件目前的运行状况良好,但是现在的代码的依旧不够健壮,在整个工程的公司方面也有稍许的不足,用户界面还不够足够的赏心悦目和灵活这些问题还需要在今后一步一步的进行解决。与此同时,这个软件还需要拓展一些其他的功能,比如说自动checkmail这样比较人性化的机能,使其本身的功能更加的强大,带给用户更好地体验以及信息的快速获得。大连东软信息学院毕业设计(论文)参考文献[1].\o"杨丰盛"杨丰盛.Android应用开发揭秘[M],机械工业出版社,2010[2].\o"李刚"李刚.疯狂Android讲义[M],电子工业出版社,2011[3].\o"杨丰盛"杨丰盛.Android技术内幕:系统卷[M],机械工业出版社,2011[4].\o"柯元旦"柯元旦.Android内核剖析[M],电子工业出版社,2011[5].\o"余志龙"余志龙.Google

Android

SDK开发范例大全[M],人民邮电出版社,2011[6].杜佳荣,马建红,滕振宇.移动开发全平台解决方案Android/iOS/WindowsPhone海洋出版社[M],2011.[7].哈诺德.\o"Java网络编程技术与实践(配光盘)(网络编程系列丛书)"Java网络编程技术与实践(配光盘)(网络编程系列丛书)[M],清华大学出版社,2008.[8].\o"任毅"任毅.\o"Java网络编程(第3版)——O’ReillyJava系列"Java网络编程(第3版)O’ReillyJava系列[M],中国电力出版社,2005.[9].\o"张孝祥"张孝祥,\o"方立勋"方立勋.邮件服务器配置与管理[M],西安电子科技大学出版社,2010.[10].张孝祥.JAVA邮件开发详解[M],北京电子工业出版社,2007.[11].JamesSteele.NelsonTo,TheAndroidDeveloper'sCookbook[M],Addison-WesleyProfessional,2010[12].百度百科./[EB/OL],2012[13].李宁.\o"Android开发权威指南"Android开发权威指南[M],北京HYPERLINK"/?key=&key3=%C8%CB%C3%F1

温馨提示

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

评论

0/150

提交评论