毕业设计(论文)-基于Android平台的照片分享应用.doc_第1页
毕业设计(论文)-基于Android平台的照片分享应用.doc_第2页
毕业设计(论文)-基于Android平台的照片分享应用.doc_第3页
毕业设计(论文)-基于Android平台的照片分享应用.doc_第4页
毕业设计(论文)-基于Android平台的照片分享应用.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

全套设计加扣3012250582湖湖南南软软件件职职业业学学院院毕业设计毕业设计毕毕业业选选题题:基于Android平台的照片分享应用学学生生姓姓名名:院院系系名名称称:软件工程系所所学学专专业业:软件技术所所在在班班级级:Java1304学学生生学学号号:提提交交日日期期:2015年12月19日全套设计加扣3012250582i目目录录第一章第一章绪论绪论.-11-1.1项目概述.-1-1.1.1项目开发背景.-1-1.1.2项目的意义.-1-1.2手机软件的现状.-2-1.3项目的运行与开发环境.-2-第二章第二章相关的技术支持相关的技术支持.-33-2.1ANDROID的相关框架.-3-2.2APACHETOMCAT.-4-第三章第三章系统分析系统分析.-55-3.1研究目标.-5-3.2需求分析.-5-3.3数据流图.-5-第四章第四章系统设计系统设计.-9-4.1系统总体分析.-9-4.2系统的模块设计.-10-4.2.2服务器端的主要功能模块.-11-第五章第五章系统的详细设计系统的详细设计.-1212-5.1程序结构.-12-5.1.1客户端程序结构.-12-5.1.2服务器端程序结构.-13-5.2主要的流程图.-13-第六章第六章系统的实现系统的实现.-1515-6.1系统主要问题.-15-6.2UI实现.-16-6.2.1应用的开始页面.-16-6.2.3应用主界面的实现.-20-6.3.应用的功能实现.-21-全套设计加扣3012250582ii6.3.1选择图片功能的实现.-21-6.3.2手机拍照的实现.-23-第七章第七章模块测试模块测试.-2424-7.1测试方法.-24-7.2测试的过程.-24-7.2.1注册模块测试.-24-7.2.2显示图片测试.-25-总结总结.-2626-参考文献参考文献.-2727-致致谢谢.-2828-全套设计加扣3012250582iii全套设计加扣3012250582-1-第一章第一章绪论绪论该应用是一个基于安卓的照片分享应用,旨在提供一个平台给人们来分享自己的生活与点滴,从而来拓展自己的社交圈子。我也通过该应用的设计来实践我的理论知识。1.11.1项目概述项目概述该应用是一个基于Android的照片分享应用,利用Java语言和Eclipse开发工具进行代码编写。.1项目开发背景项目开发背景我们国家的移动方面的发展势头猛烈,越来越多的手机厂商,开始设计到安卓系统的手机中来了,然而安卓的系统被优化的越来越好。在很多的调查当中,搭载安卓智能系统的装备非常的多,而我们的国家到处都是安卓的系统,很多名人纷纷做其手机来,但是我们还是处于一个上升的阶段,要很多的技术人员。因为人们的生活水平的提高,还有的就是人的Share精神越来越高涨,更重要的一点,每个人都有手机,可以很容易的分享每一个人当前的状态,所以我就为了人们的方便,就想设计一个可以随手分享照片片的一个android应用。目前软件市场上的照片片分享应用不多,所以还是很有必要的去开发一个这样的应用,去提供一个平台给需要的人们把他们生活的东西分享给自己的好友,亲人,让大家享受分享的乐趣。全套设计加扣3012250582-2-.2项目的意义项目的意义Android技术高速的发展带来了很多的机会,人们的日常生活脱离不了手机,所以在人们欣赏身边的有趣的事物的时候,也忘不了给自己的好友来分享一下。所以我们这个项目就显得非常的有意义了,可以说这个应用满足了人们生活中对乐趣的追求。还有这个项目提供给用户一些有趣的图片。可以给用户烦闷的生活带去一丝丝的暖意。1.21.2手机软件的现状手机软件的现状其他国家的通讯运营商已经开始4G的网,在我们国家,3G的网络也在逐步的普及,使得移动设备的网络体验有了很大的体升。尽管我们国家现阶段的网络没有办法跟上主流国家的网络速度,但是我们的3G网络在应付我们的日常生活中的常规的网络问题,都已经没有压力。在软件应用这一个大的方向,用户对手机软件的需求,都差不多一致,为生活服务,和一些游戏应用。所以我们更要开发关于图片的分享应用。对于国内外的热门社交服务,基本上都移动端开发了相应的软件,因此对于移动端的高速发展,我们应该加大力度在手机端的研发,对于本应用来说,这是一个机会也是一个挑战。1.31.3项目的运行与开发环境项目的运行与开发环境电脑的环境:操作系统:Windows764位旗舰版CPU:酷睿i3370M内存:6G开发工具与环境:EclipseIndigo版本、AndroidSDK22.2.1MyEclipse10.1apache-tomcat-7.0.42全套设计加扣3012250582-3-运行环境:Android4.0(最低要求)第二章第二章相关的技术支持相关的技术支持2.12.1AndroidAndroid的相关框架的相关框架下面是安卓的系统框架图如图3-3所示:图图3-33-3安卓系统框架图安卓系统框架图Android的系统是采用分层设计,由四个等级,和三种模式,由表及里是最高层的Application层、中间层是黄色与绿色两部分、及在最底下的是Linux系统。Applications(应用层)全套设计加扣3012250582-4-Android的应用层主要是面向开发者去开发,这里配置了很多的应用集,提供给我们开发。ApplicationFramework(应用框架层)主要是开发者能用到系统提供出来的本地功能。让我们更快的去使用它们,降低我们的学习成本。AndroidRuntimeAndLibraries(安卓运行与库)这个是安卓的一个库的集合,专门提供给系统在运行时每一个组件都可以去调用。这样会给那些内存小和处理器比较落后的机器发挥更大的功能。Linuxkernel(内核层)安卓基于Linux2.6。它作为最底层的。它就像一个管家一样给其他的器件提供各种的功能。内核层作为一个中继者,它把所有的细节都放到内部去了,开发者只需用它的服务即可。2.22.2ApacheApacheTomcatTomcatTomcat是一个开源的服务器平台。在中小型的服务器平台上,它可以说是一面独大,因为它的开源性,和稳定性,还有最终的一点是它是免费的,这给了人们去使用它的理由。现在Tomcat是几个比较流行的服务器其中之一。全套设计加扣3012250582-5-第三章第三章系统分析系统分析3.13.1研究目标研究目标了解Android成熟的设计和开发的过程,自己去深入学习了安卓的SDK,使用多种内置的组件来满足开发的要求。了解网络通讯的原理,掌握服务器编程。3.23.2需求分析需求分析本软件是一个CS类型架构的软件。用户可以直接点击签到,然后拍照上传即可。本应用为用户提供了如下的功能:(1)店铺签到。(2)本地拍照或上传。3.33.3数据流图数据流图(1)根据上面的需求分析,我们可以得到顶层数据流图如图3-5所示:全套设计加扣3012250582-6-图图3-53-5注册流程图注册流程图(2)登录的数据流程图如图3-6所示:图图3-63-6登录流程图登录流程图用户登录一层数据流图如图3-7所示全套设计加扣3012250582-7-图图3-73-7户登陆一层流程图户登陆一层流程图(3)用户登陆二层DFD图的如图3-8所示图图3-83-8登陆二流程图登陆二流程图全套设计加扣3012250582-8-3.4.数据字典数据字典从上面的数据流图单中,我们可以的得到的数据字典用户注册数据字典如表1所示:名称:用户注册信息描述:系统用户的注册时候的信息定义:用户的账号,密码,昵称,性别功能:用于用户注册的数据表表表11-用户注册数据用户注册数据用户登陆的数据字典如表2所示:名称:用户登陆信息描述:每个用户登陆的时候必须要填写信息定义:登陆时用户的账号与密码功能:用于用户登陆的数据表表表22-用户登录数据用户登录数据图像信息数据字典如表3所示:名称:图像信息描述:对于每一张图像包含的信息定义:主要包含图片的显示功能:用于显示在客户端的界面表表33-图像信息数据图像信息数据全套设计加扣3012250582-9-第四章第四章系统设计系统设计4.14.1系统总体分析系统总体分析本设计是基于安卓的图片分享应用,手机端通过网络来与服务器连接从而达到用户在安卓客户端操作获得所需要的结果。客户端是由安卓工程建立的。服务器则采用Tomcat与Servlet的混合模式来搭建。手机端采用网络的传输协议获得服务器的内容。还有本应用涉及到的界面比较多,需要很多的设计混合的界面,就如主界面有使用了ViewPage和SlideMenu,这两个Api都是安卓用来做出较好的交互效果。整个设计的大概模型如图4-1所示:图图4-14-1模型图模型图对于整个系统来说,操作还是相对的简单,界面友好,用户会很容易的上手。不需要很多时间去学习如何操做应用。这对于一些基本用户来说,降低了用户的学习成全套设计加扣3012250582-10-本。4.24.2系统的模块设计系统的模块设计.2.1.客户端的功能模块设计客户端的功能模块设计从系统的需求分析来看,本设计的客户端应用主要包括的是二大功能模块:主要是图乐相册模块,图乐拍照模。其中图乐相册和拍照都可以分享照片。图图4-24-2系统基础架构图系统基础架构图客户端各功能的详细介绍:图乐相册模块:这个功能主要是把用户手机的所有相册罗列出来,用户可以根据自己喜好来选择图片进行查看,或者是上传到服务器进行分享。图乐拍照模块:这个功能全套设计加扣3012250582-11-模块是用户可以直接使用手机的拍照的功能来进行选择图片,然后在进行上传到服务器来分享。.2服务器端的主要功能模块服务器端的主要功能模块服务器主要的功能模块有两大模块,分别是用户管理和图片管理。而用户模块中包括了注册与登录,用户添加好友,用户删除好友。图片管理模块则是包括了趣图管理,和用户图片的管理。下面是服务器端的功能模块:服务器端的详细功能介绍:用户管路模块:包括了注册用户的账号,好友的添加与删除,还有就就是更新自己的信息。图片管理模块:这里面包括了用户自己图片的管理。全套设计加扣3012250582-12-第五章第五章系统的详细设计系统的详细设计5.15.1程序结构程序结构.1客户端程序结构客户端程序结构首先确定开发的工程名中文名为图乐,英文为phtotoUtils,根据功能模块建立工程,还有按照AndroidSDK的开发要求来组织,应用的工程结构图如图5-1所示:图图5-15-1客户端工程目录客户端工程目录为了使源代码的结构清晰,我在工程设计的时候设计了多个包名来存放不同的类文件,为了更好的区分不同类的功能。全套设计加扣3012250582-13-.2服务器端程序结构服务器端程序结构服务器端的工程名为gen,Tomcat部署的名字是test,服务器的代码框架如图5-2所示:图图5-25-2服务器工程目录服务器工程目录目录中包含的src目录下的com.photo.utils包中包含了所有处理服务器动作的PhotoUtilsA类。而在com.photo.utils包中就是一些自定义的数据模型,其他的就是辅助类。5.25.2主要的流程图主要的流程图这个应用主要包含的流程主要发生在应用开始的时候,当用户第一次打开应用时直接可以登陆到系统。需要到一个登陆界面去登陆,所以应用就主要这两个流程。其他的用户进到这界面后,都会有分块的操作,所以其他流程不用详细介绍了。全套设计加扣3012250582-14-第六章第六章系统的实现系统的实现6.16.1系统主要问题系统主要问题系统的实现,我把它分成了两个模块,第一个是UI设计,第二个就是详细的代码设计。我认为非常UI的设计是非常的重要,因为这个是跟用户打交道的的,假如你功能做得再好,你的交互差,用户也不会接受,所以在这里我花了很大的功夫。因为涉及到的窗体比较多,所以UI设计起来是非常的繁琐与复杂。另外就是一个客户端与服务器的通讯问题,这一部分涉及到了网络编程。也是非常难,也是一个重点。接下来就是本应用的设计。首先来熟悉一下应用的流程:如图6-1所示:图图6-16-1应用的启动流程应用的启动流程全套设计加扣3012250582-15-6.26.2UIUI实现实现.1应用的开始页面应用的开始页面首先是界面的代码设计如下:publicclassPhotoUtilsActivityextendsActivityprivatestaticfinalintMAX_COUNT=100privateButtonmbackSuppressWarnings(unused)privateButtonmcomitprivateImageButtonmcameraSuppressWarnings(unused)privateTextViewmtitlemTextViewmsignprivateEditTextmSuggestSuppressWarnings(unused)privateCheckBoxmtencentmsinamqqmrenrenmqzoonmdoubanprivateBitmapbitmapprivateLinearLayoutll_imgsOverrideprotectedvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState)全套设计加扣3012250582-16-requestWindowFeature(Window.FEATURE_NO_TITLE)setContentView(R.layout.activity_sos)ll_imgs=(LinearLayout)findViewById(R.id.ll_imgs)mback=(Button)findViewById(R.id.back)mcomit=(Button)findViewById(Rit)mtitle=(TextView)findViewById(R.id.title)mSuggest=(EditText)findViewById(R.id.suggest)mSuggest.setSingleLine(false)mSuggest.addTextChangedListener(mTextWatcher)mSuggest.setSelection(mSuggest.length()mTextView=(TextView)findViewById(R.id.count)setLeftCount()mcamera=(ImageButton)findViewById(R.id.camera)msign=(TextView)findViewById(R.id.sign)msina=(CheckBox)findViewById(R.id.sina)mtencent=(CheckBox)findViewById(R.id.tencent)mqq=(CheckBox)findViewById(R.id.qq)mrenren=(CheckBox)findViewById(R.id.renren)mqzoon=(CheckBox)findViewById(R.id.qzoon)mdouban=(CheckBox)findViewById(R.id.douban)mback.setOnClickListener(newOnClickListener()OverridepublicvoidonClick(Viewv)全套设计加扣3012250582-17-PhotoUtilsActivity.this.finish()mcamera.setOnClickListener(newOnClickListener()OverridepublicvoidonClick(Viewv)showCustomAlertDialog()privatevoidshowCustomAlertDialog()finalAlertDialogalertDialog=newAlertDialog.Builder(this).create()alertDialog.show()Windowwin=alertDialog.getWindow()WindowManager.LayoutParamslp=win.getAttributes()win.setGravity(Gravity.LEFT|Gravity.BOTTOM)lp.alpha=0.7fwin.setAttributes(lp)win.setContentView(R.layout.dialog)ButtoncancelBtn=(Button)win.findViewById(R.id.camera_cancel)cancelBtn.setOnClickListener(newOnClickListener()Override全套设计加扣3012250582-18-publicvoidonClick(Viewv)TODOAuto-generatedstubalertDialog.cancel()Buttoncamera_phone=(Button)win.findViewById(R.id.camera_phone)camera_phone.setOnClickListener(newOnClickListener()OverridepublicvoidonClick(Viewv)TODOAuto-generatedstubsystemPhoto()Buttoncamera_camera=(Button)win.findViewById(R.id.camera_camera)camera_camera.setOnClickListener(newOnClickListener()OverridepublicvoidonClick(Viewv)TODOAuto-generatedstubcameraPhoto()全套设计加扣3012250582-19-privatefinalintSYS_INTENT_REQUEST=0XFF01privatefinalintCAMERA_INTENT_REQUEST=0XFF0.3应用主界面的实现应用主界面的实现为了让主界面看起来平易近人,我采用了把4个ImageView平均分布在页面的下面,这样看起来非常的整齐,然后就是整个程序看起来,功能是非常清楚,让人一目了然。主界面包含3个按钮,用户通过3个按钮可以体验不同的功能,分别是上传,手机相册,还有返回。主界面如6-2图所示。图图6-26-2应用的界面图应用的界面图由于这个界面的实现比较简单,所以相关的XML代码参照源代码。全套设计加扣3012250582-20-具体代码如下:paramparamdata拍照后获取照片privateprivatevoidvoidcameraCamera(Intentdata)SimpleDateatatter=newnewSimpleDateat(yyyyMMddHHmmssSSS)Stringname=atter.at(System.currentTimeMillis()+.jpgLog.i(zhiwei.zhaoimagename:+name)Toast.makeText(thisthisnameToast.LENGTH_LONG).show()Bundlebundle=data.getExtras()获取相机返回的数据,并转换为Bitmap图片格式Bitmapbitmap=(Bitmap)bundle.get(data)FileOutputStreamb=nullnull.应用的功能实现应用的功能实现.1选择图片功能的实现选择图片功能的实现下面是选择图片的相关代码:全套设计加扣3012250582-21-privatevoidshowImgs(BitmapbitmapbooleanisSysUp)if(ll_imgs.getChildCount()2)Toast.makeText(this最多上传三张图片,可点击删除已选择的图片!Toast.LENGTH_SHORT).show()returnBitmap_bitmap=compressionBigBitmap(bitmapisSysUp)finalImageViewim=newImageView(this)im.setPadding(10000)im.setImageBitmap(_bitmap)ll_imgs.addView(im)im.setOnClickListener(newOnClickListener()OverridepublicvoidonClick(Viewv)BitmapDrawablebitmapDrawable=(BitmapDrawable)im.getDrawable()if(bitmapDrawable!=null&!bitmapDrawable.getBitmap().isRecycled()bitmapDrawable.getBitmap().recycle()ll_imgs.removeView(im)全套设计加扣3012250582-22-).2手机拍照的实现手机拍照的实现手机拍照的实现相对来说比较简单,只需要调用系统提供的相关类就可以了,实现拍照的相关代码如下所示:paramdata拍照后获取照片privatevoidcameraCamera(Intentdata)SimpleDateatatter=newSimpleDateat(yyyyMMddHHmmssSSS)Stringname=atter.at(System.currentTimeMillis()+.jpgLog.i(zhiwei.zhaoimagename:+name)Toast.makeText(thisnameToast.LENGTH_LONG).show()Bundlebundle=data.getExtras()获取相机返回的数据,并转换为Bitmap图片格式Bitmapbitmap=(Bitmap)bundle.get(data)FileOutputStreamb=null全套设计加扣3012250582-23-第七章第七章模块测试模块测试在完成编码和功能的整合之后,为了减少程序的错误率,需要对应用进行系统的测试,来测试应用存在的错误。让应用更加的完善。7.17.1测试方法测试方法这个是基于安卓的应用程序,所以我把应用打包安装到手机上进行测试。本次测试主要采用的是黑盒子测试,黑盒子测试不用理会内部的结构,不考虑程序的内部逻辑,通过操作来验证应用的完善性和可用性。测试的手机包含有中兴U817、三星的N7108、模拟器则采用Genymotion。7.27.2测试的过程测试的过程.1注册模块测试注册模块测试分别如表6-3,6-4所示:测试项目操作预期结果是否符合预期输入用户名输入空用户名提示用户名不能为空符合预期输入非法字符输入用户名¥f提示图乐仅支持数字英文,下划线符合预期表表6-36-3测试数据测试数据密码长度测试分别输入少于6和大于16的密码提示请输入正确的密码符合预期重复密码测试输入与原密码不同两次输入密码不相同符合预期昵称测试输入空的昵称提示不正确符合预期重复昵称测试输入一个已有昵称提示昵称已存在符合预期重复账户输入重复账户提示账户已存在符合预期全套设计加扣3012250582-24-表表6-46-4测试数据测试数据.2显示图片测试显示图片测试如表6-5所示测试项目操作预期结果是否符合预期显示图片在Wifi网

温馨提示

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

评论

0/150

提交评论