嵌入式课程设计报告-基于Andriod系统的手机通讯录网络备份软件.doc_第1页
嵌入式课程设计报告-基于Andriod系统的手机通讯录网络备份软件.doc_第2页
嵌入式课程设计报告-基于Andriod系统的手机通讯录网络备份软件.doc_第3页
嵌入式课程设计报告-基于Andriod系统的手机通讯录网络备份软件.doc_第4页
嵌入式课程设计报告-基于Andriod系统的手机通讯录网络备份软件.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

各专业全套优秀毕业设计图纸嵌入式系统及应用设计(seminar)东南大学题 目:基于andriod系统的手机通讯录网络备份软件院 (系): 仪器科学与工程学院 学生姓名: 学 号: 22011315 评语1.绪论1.1项目开发背景进入90年代后,以计算机和软件为核心的数字化技术取得了迅猛发展,不仅广泛渗透到社会经济、军事、交通、通信等相关行业,而且深入到家电、娱乐、艺术、社会文化等各个领域,掀起了一场数字化技术革命。多媒体技术与internet的应用迅速普及,消费电子、计算机和通信一体化趋势日趋明显,嵌入式技术再度成为一个研究热点。嵌入式系统是指以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。广而言之,可以认为凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。嵌入式系统采用“量体裁衣”的方式把所需的功能嵌入到各种应用系统中,它融合了计算机软/硬件技术、通信技术和半导体微电子技术,是信息技术的最终产品。android是一种基于linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。android操作系统最初由andy rubin开发,主要支持手机。2005年8月由google收购注资。2007年11月,google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良android系统。随后google以apache开源许可证的授权方式,发布了android的源代码。随着手机的普及以及手机应用的深入人心,近几年“智能手机”成为了人们关注的话题。在现今这个智能手机系统群雄纷争的时候,。android凭借其开放性和良好的人机界面,受到广大手机生产商的重视,随着3g时代的到来,android有可能会改变现在智能手机市场的格局。android是由linux操作系统、中间件以及核心应用程序组成的专门为移动终端设备开发的层次软件集。在对android学习中,主要做了以下的研究:首先,android系统是一个层次的软件集,所以先从层次方面对android进行系统研究,主要对其运行时环境层以及android应用框架层的研究;其次,通过对android平台上应用的开发,更进一步了解android这个系统,在开发中,尤其注重android的intent机制的使用。android以其特有的开放性优势越来越受到人们和智能手机厂商的关注。对于第三放软件开发商来说,android是一个真正意义上的开放性移动设备综合平台,android系统是免费向开发人员提供的,这样就避免了开发中专利权的障碍。因此,就能够为第三方软件开发商省下大笔资金。对于设备制造商来说,android是一个免费的平台。当设备制造商每制造一台手机时,那些支付给手机系统制造商的费用也省去了,这样也降低了每台手机的生产费用,同时就降低了手机的价格,这样在市场上也提高了竞争力。对硬体开发厂商来说,android也是个开放的平台。使用android平台的厂商可以更具自己的需求以及能力为android开发具有该厂商特色的功能,但是这样的增加完全不用考虑版权的问题。同时android平台支持各种先进的网络、绘图、3d处理能力,可以用来提供更好的使用者体验。googleandroid系统作为一个完全开源的操作系统,是由操作系统(linux)、中间件以及核心应用程序组成的软件栈(softwarestack)。通过androidsdk提供的api以及相应的开发工具,程序员可以很方便的开发android平台上的应用程序。其整个系统由应用程序(application),应用程序框架(applicationframework),应用程序库(libraries),android运行库(androidruntime),linux内核(linuxkernel)五个部分组成。android操作系统内置了一部分应用程序,包括电子邮件客户端、sms程序、日历、地图、浏览器、通讯录以及其他的程序,值得一提的是这些所有的程序都是用java编写的。因为应用程序框架使得组件更易于重用,所以开发者的应用程序可以很容易的调用api函数实现我们想要的功能。在遵守应用程序框架的安全机制约束的前提下,开发者开发的一个应用程序可以使用其他程序所开发的功能。虽然android的应用程序是用java语言开发的,但是android给应用程序开发者提供了一系列的c/c+程序库,通过android的一些特殊的设计,我们开发者可以使用这些库。随着云计算这一概念的提出,云存储这个网络端的具体应用也随之产生。所谓云存储,就是在云计算概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。在本项目中,可以简单的将云存储理解为pc端存储盘,通过这一应用可以使任何网络用户随时随地享受一个自由的、安全的网络空间,将个人信息上传、下载,随时操作,既方便使用又方便管理。1.2项目开发意义手机通讯录作为手机的基本功能之一,每天我们都在频繁地使用着。根据手机功能使用调查显示,有八成以上的消费者使用手机通讯录功能。随着手机通讯录功能的不断加强与完善,手机通讯录对于人们的意义,已不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向发展,于此同时,人们对手机通讯里中信息的依赖性也变得越来越强。用户对通讯录信息的强大的依赖性就意味着如果这些信息遗失或者泄露将对用户日常生活造成很大的影响,考虑到这个因素,本项目应运而生。本项目的根本存在意义,就是让用户能够方便的无需通过手机数据线而是通过手机网络将手机通讯录这一重要信息在pc端予以备份和保存,同时,也提供用户随时随地通过手机网络从pc端将该信息更改并下载更新至手机。1.3国内外研究动态当前很多公司都为andriod手机用户提供了这一应用的下载,例如金山公司推出的手机t盘,它是新一代网盘,拥有超大云空间,能在手机、平板、电脑上使用,随时随地查看其中的图片、音乐、文档等文件,还支持即拍即传。又例如谷歌公司推出的google drive,结合了手机邮件功能,使得功能更加强大。当下较为流行的同类型手机端软件有:微盘、360云盘、百度云、google drive等。1.4主要技术路线 本项目中主要使用java编程技术,手机端软件结合android系统开发平台所提供的基于xml文件的可视化编程ui类库,服务器端结合mysql搭建数据库便于用户持久性使用,手机端与服务器端信息交互采用的是java socket编程技术。java是由sun microsystems公司于1995年5月推出的java程序设计语言和java平台的总称。java语言是 android 开发人员所选的工具。android 运行时使用自己的虚拟机 dalvik,这并不是多数程序开发人员使用的普通 java 虚拟机。dalvik 支持 java 编程语言的大部分功能但并不是全部。eclipse 是一个开放源代码的、基于java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。eclipse 附带了一个标准的插件集,包括 java 开发工具(java development tools,jdt)。 eclipse最初是由ibm公司开发的替代商业软件visual age for java的下一代ide开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟eclipse基金会(eclipse foundation)管理。 2003年,eclipse 3.0选择osgi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布。2008年6月发布代号为ganymede的3.4版。2009年7月发布代号为galileo的3.5版。在android里,用户接口由一些称之为视图的不同层次的类组成。一个视图就是一个简单的处理对象,而这些接口类就成为ui编程。在实际应用中很容易发现通过代码编程图形化界面是一件相当繁琐而复杂的过程,因而android提供了一个可变化的ui开发模块基于xml文件的ui设计。mysql是一个关系型数据库管理系统,由瑞典mysql ab公司开发,目前属于oracle公司。mysql是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。mysql的sql语言是用于访问数据库的最常用标准化语言。mysql软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择mysql作为网站数据库。由于其社区版的性能卓越,搭配php和apache可组成良好的开发环境。所谓socket通常也称作套接字,用于描述ip地址和端口,是一个通信链的句柄。应用程序通常通过套接字向网络发出请求或者应答网络请求。以j2sdk-1.3为例,socket和serversocket类库位于包中。serversocket用于服务器端,socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是socket还是serversocket它们的工作都是通过socketimpl类及其子类完成的。2.项目综述2.1项目名称基于andriod系统的手机通讯录网络备份软件maillistbackup2.2项目简介本项目包括三个部分:手机端软件、pc端服务器、pc端数据库。主要设计与实现一个在android系统上运行的手机通讯备份软件,实现手机通讯录备份的基本功能,提供手机上传、下载数据的功能。手机端软件应用于android 4.0系统及以上,提供用户注册、登陆、数据打包上传、下载的功能。pc端服务器与数据库绑定在一起,应用于java 1.6平台,提供手机端软件的后台支持,通过与手机端消息的交互,提示手机端的相应操作,同时在你数据库中填写相应的用户使用表项,以及接收手机端软件发送来的备份文件和打包发送手机端需要读取的已备份文件。2.3可行性研究开题阶段通过对系统目标的初步调试和分析,提出可行性方案并进行论证,这里主要从经济可行性、技术可行性、和操作可行性等方面进行分析。2.3.1经济可行性开发该项目所需的相关资料可以通过已存在的相关系统进行调查采集,所需的java jdk、eclipse、android sdk、android adt、android ve等软件系统平台从网上可以下载易于获得,小组内成员有两台android系统手机,故硬件平台方便使用,本项目的开发开发成本低,容易实现,从经济角度来看,该项目可行。2.3.2技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求。本软件多数采用的是java开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此编程方面是可行的。同时,android开发方面,虽没有过相关学习,但是可以通过网络查阅相关资料进行,相对可行。2.3.3操作可行性可操作性是对组织结构的的影响。该软件界面简洁,操作十分简单,相关检错以及提示机制完善,便于用户使用,所以从运行操作角度上看,该软件是可行的。综上三点所述,该项目的开发从经济、技术、运行等方面完全可行。2.4项目特色无数据线数据导出功能是该软件的一个特色,可以实现联系人数据导出到文本,实现数据备份。大家生活当中经常遇到手机丢失,出现故障,和其他一些事故。最担心的就是丢失手机里的电话号码。我相信这款软件,可以很好的满足android手机用户的需求。另外,本项目实现了记住用户名密码功能,方便用户首次登陆成功后后续的使用。3.需求分析根据手机功能使用调查显示,有八成以上的消费者使用手机通讯录功能。随着手机通讯录功能的不断加强与完善,手机通讯录对于人们的意义,已不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向发展,于此同时,人们对手机通讯里中信息的依赖性也变得越来越强。用户对通讯录信息的强大的依赖性就意味着如果这些信息遗失或者泄露将对用户日常生活造成很大的影响。数据备份是绝大多数用户比较关心的问题。大家都害怕手机丢失,手机损坏。该系统与其他手机通讯录的区别是具有数据导入导出功能。导入导出不是从手机导入到存储卡,或从存储卡导到手机,而是指该系统可以连接服务器,把手机上联系人的数据保存在服务器上,需要的时候可以冲服务器进行下载,导入到手机中。或吧联系人数据导入到文本,保存在手机上。也可以从文本中导入联系人。本项目主要适用于android手机用户,项目主体为手机端软件,主体功能为数据的导入和导出。因此,本项目需要满足以下几个需求:l 用户登陆。考虑信息安全的因素,用户需要提供合法的用户名密码才能登陆到服务器进行相关数据导入导出的操作。涉及服务器端数据库相应表项的查阅,以及消息的交互;l 用户注册。方便新用户的注册。涉及服务器数据库的填写和正误检验;l 通讯录文件打包上传。用于用户对其手机通讯录文件进行pc端的备份。涉及手机本地通讯录数据库的调用、数据流的操作、网络通信;l 手机用户从服务器更新本地通讯录。涉及服务器发送消息、发送文件、手机本地通讯录数据库的填写、网络通信;l 检错机制。提示相关的操作,便于用户使用。l 加密解密机制。考虑信息不泄露的安全因素,对用户名密码和文件流进行了加密解密操作。4.模块设计4.1项目功能模块设计图本项目共有三个主要部分构成,每一个部分下属三到四个模块,模块之间通过消息进行联系与沟通,其中,pc端服务器与数据库绑定在一起。手机端软件下属有登陆界面、注册界面、功能界面三个视图类,功能界面包含有导出文件、导入文件两个模块;pc端服务器和数据库下属socket建立模块、消息处理模块、文件流、表项建立、表项查询、填写表项六个模块。另外,在手机与pc消息传递沟通的过程中还需要建立加密解密模块和信息提示模块。4.2项目流程设计图5.具体模块实现5.1手机端软件l 实现平台:ecplise + android 4.0.3l 主要实现方法:java基于android的ui编程;java socket编程、数据流的传输;基于android提供的类库实现手机通讯录的读取和转换。l 主要功能:登陆、注册;通讯录文件的上传和下载;相应的加密检错机制。5.1.1登陆界面模块具体功能为:用户输入用户名密码点击登陆按钮,根据服务器端返回结果提示用户是否登陆成功;点击注册按钮系统跳转到注册界面;勾选记住用户名密码选择框时,在用户登陆成功后保持该用户名密码填写完整;提供相应的检错机制对输入的用户名密码判断是否符合格式要求 ;网络是否连接正常;添加加密机制,对用户密码进行加密处理。界面实现使用如下ui接口:5.1.2注册界面模块具体功能:用户输入用户名密码并确认后点击注册按钮,根据服务器端返回结果提示用户是否注册成功;点击清空按钮以上三个输入框清空;提供相应的检错机制对输入的用户名密码判断是否符合格式要求 ;两次密码是否相同;用户名是否重名;网络是否连接正常。界面实现使用如下ui接口:5.1.3功能主界面模块具体功能:用户选择所要进行的操作,点击确定系统开始完成相应操作,并在完成后提示用户是否成功;点击手机菜单键可以选择退出软件;提供相应的检错提示机制导出导入是否成功;网络是否连接正常。界面实现使用如下ui接口:导出到服务器l 读取手机通讯录数据库,摘录出所需要的姓名和电话号码两个表项;l 将摘录出的所有表项存入手机sd卡内,设定文件名为注册用户名;l 通过java socket 数据流的传输将该文件上传到服务器。 从服务器导入l 通过java socket 数据流的传输将服务器端存取的文件下载到手机sd卡;l 读取sd卡对应文件,识别信息后添加至手机通讯录。 l 更新手机通讯录。5.2pc端服务器l 实现平台:ecplise + java1.6l 主要实现方法和功能:使用java socket编程来实现服务器端的功能,建立服务器与手机客户端之间的连接;通过这种方法来实现两端数据的实时传输;实现手机客户端通讯录信息的上传和下载功能。5.2.1服务器socket模块l 先建立serversocket的实例来监听端口port; int port = 5554; final serversocket server = new serversocket(port);l 等待socket连接的建立,以实现服务器与手机客户端直接的数据交互; socket socket = null; socket = server.accept(); l 当客户端建立连接后 accept()返回一个socket实例;l 循环的接收消息,并对消息进行响应和反馈5.2.2服务器消息处理模块1. 收到注册消息”0_resgiter$name$password”,从中提取出用户名name和密码password(密码是加密后的)。l 若在数据库中没有name的表项,则返回注册成功消息“a_registersuccess”并在数据库中添加一个新表项;l 否则就重名返回注册成功的消息“b_registerfail”。2. 收到登录信息”1_enter$name$password”,提取用户名name和密码password。l 若在数据库中存在(name,password)完全匹配的表项,则返回登录成功消息“c_entersuccess”;l 若在数据库中存在name相同但password不匹配的表项,则返回密码错误消息“e_falsepassword”;l 若在数据库中不存在name的表项,则返回未注册的消息“d_notregister”。3. 收到上传消息”2_upload”,则将手机客户端通讯录打包形成的txt文件通过socket传递到服务器上,在服务器上建立相应的文件夹保存该文件,返回上传成功消息“f_uploadsuccess”并将数据库中的backup改为1;4. 收到下载消息”3_download”,则应查看数据库判断该用户是否在服务器端存有通讯录的备份。l 若存有备份则从服务器端取该用户的通讯录文件通过socket传递给客户端,返回下载成功消息“g_downloadsuccess”;l 否则返回无法下载的消息“h_cannotdownload”;5. 收到退出消息”4_exit”,则应断开socket连接,结束对客户端的服务。6. 最终关闭数据的输入输出流,结束程序。5.3pc端数据库l 实现平台:mysqll 主要实现方法和功能:与服务器绑定,通过对sql语句的操作对手机端软件传来的消息予以提取和保存。l 在数据库中建立一个用户信息表,如下:idnamepasswordbackup备注:name-用户名 password-密码backup-是否在服务器端保存有通讯录的备份文件6.项目测试6.1程序调试本项目开发过程中遇到多次程序奔溃的状况,尤其是手机端软件,由于对android ui 编程的不熟悉导致出现多个错误无法通过代码细读寻找出来,最终采取debug、打印调试信息等方法来调试程序,得以完成。6.2项目调试在手机端软件和服务器端软件分别完成后,开始进行项目的综合调试,出现了如下问题:socket连接无法建立;消息检验出错;文件导出失败;文件导入错误。6.2.1测试步骤采取测试步骤如下:1. 模块测试。分别在各个模块中通过debug方法找寻问题所在,并及时解决;2. 系统测试。整体找寻程序设计中存在的错误,更改程序设计上的不足,及时改进添加新流程;3. 错误测试。在这一步骤中,通过设计多个异常错误来验收本项目综合应对能力是否完善,并及时添加新功能,弥补不足。6.2.2测试内容为了保证测试的质量,测试过程包括:代码审查、单元测试、集成测试、确认测试以及系统测试。代码审查 代码审查为了发现代码中冗余的部分,不合理的部分。单元测试 单元测试(模块测试)是编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。1. 集成测试集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试已经完成,集成测试中所使用的对象是已经经过单元测试的软件单元。如果不经过单元测试,集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价。2. 确认测试确认测试又称有效性测试。有效性测试是在模拟的环境下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。任务是验证软件的功能和性能及其他特性是否与需求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定,它包含的信息就是软件确认测试的基础。3. 系统测试系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。(1)功能测试经测试:该软件系统的登陆、注册、导入导出功能皆正常。软件的质量可以达到保证。(2)健壮性测试经测试:该软件系统在异常情况下能正常运行的能力。如:直接退出,没有点退出菜单,程序数据不会受到破坏。(3)性能测试经测试:该软件系统处理事务的速度快捷。测试过程中运存占用平均为0.7mb左右。正常该软件时,手机的耗电量并未明显增加。(4)界面测试。经测试:该软件系统的易用性较强,可操作性强,界面视觉效果而等。6.2.3测试结果最终测试数据如下:功能模块测试方法测试结果登陆不存在用户登陆正常登陆非法登陆正常登陆正常登陆正常注册注册新用户正常注册注册已存在用户正常注册非法注册正常导出到服务器导出手机通讯录正常从服务器导入导入服务器更改的文件正常总体测试正常7.开发过程中遇到的问题在设计开发过程中遇到以下几个难题较难解决:1. android ui 编程对xml布局文件的编写;2. 对手机本地通讯录文件的使用和读取;3. socket数据流的传输问题;4. android 界面中使用多线程进行socket的搭建问题。8.后期打算经过为时八周的课程设计,虽有很多坎坷,本项目最终得以完成,但是仍有很多不足。希望日后能够继续完善以下功能:1. 丰富软件功能,不止备份通讯录文件,还可以尝试实现对手机中其他重要文件的备份;2. 考虑安全因素,要对导出导入的加密模块增添一定的复杂性;3. 考虑通过手机网络直接实现手机和服务器的连接,而非通过手机或者pc建立热点。4. 尝试对服务器打包为一个有界面的图形化软件。

温馨提示

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

评论

0/150

提交评论