版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TOC\o"1-5"\h\z1前言 12系统的需求分析 2需求分析 2基本功能需求 2系统用例分析 2总体设计方案 5系统模块关系与划分 53系统的概要设计 6通讯录需求分析 6新建、编辑联系人 6查找联系人 6通讯功能 6个人中心 7还原与备份功能 7系统界面设计 84系统编码实现 14随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,WindowsMobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与2007年11月推出了一个专为移动设备设计的软件平台——AndroidoAndroid是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关健的平台应用。Android是由Limix+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。Android(Google公司)是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序一一移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。(1)优点:具备触摸屏、高级图形显示和上网功能,界面强大,可以说是一种融入全部Web应用的单一平台(2)缺点:由于时时刻刻都需要和网络进行连接,因此在手机的能耗方面控制就较差,导致待机能力不足:又由于其开源性,过分依赖开发商,缺少标准配置。需求分析基本功能需求能要求:实现通信录的在线备份还原功能,能把系统的通信录一键导入导出。实现要求:客户端基于Android平台实现,服务端技术自定用例场景:小明丢了手机,只好去抢购了一个小米同时把手机卡补办回来,需要把之前手机的200个联系人补上。好在小明之前把所有联系人都备份到服务器了,只需要下载在线通信录后,登录平台,一键还原即可。系统用例分析图1-1显示了通话记录功能模块。包括了联系人详细信息查看,清空通话记录,在选择一个条目后,可以对其进行拨打电话,发送短信功能的操作,也可以进行删除。图1-2显示了联系人功能模块的用例。包括了查看联系人详细信息,编辑联系人信息,新建联系人,对选中的联系人,可以对其进行拨打电话、发送短信的操作。用户还可以进行联系人搜索,这样方便用户快速找到想找的联系人信息。
图1-2电话薄模块用例图图1-3为个人中心模块中设置个人详细信息子模块的用例。该模块的功能就是用户设置自己的个人基本信息。图12显示了联系人还原与备份的用例图。该模块的功能就是联系人的还原与备份
总体设计方案系统模块关系与划分一个好的系统设计的步骤决定了程序是否能按照设计者的目的按时完成,是否能在规定的时间内按照设计者的要求高质量的完成程序必要的功能。并且按照标准的设计步骤对程序进行调试,测试,以及后期的优化完善,使程序更加具有健壮性和可用性。通过对通讯录功能、系统模块、用户需求方面进行全方位的分析制定开发流程。采用标准的开发流程确定系统具有用户管理功能,联系人增删改功能,通讯功能,查找功能,备份等功能。联系人列表查看联系人搜查联系人编辑联系人
联系人列表查看联系人搜查联系人编辑联系人图1-5系统功能图通过对系统的功能结构的分析,设计后系统运行流程是系统运行后用户将进入通讯录主界面,可以看到联系人,增加联系人,。通过点击MENU界面的增加功能选项可以新增联系人,通过杳找按钮可以对联系人进行姓名、号码的操作。通过个人中心可以显示所有联系人、还原所有联系人、并备份功能。在联系人详细信息界面点击MENU键弹出通讯功能框选择拨打电话按钮或者发信息发邮件按键,系统的运行流程图如1-6所示。图1-6系统运行流程通讯录需求分析根据手机功能调杳显示,近十成消费者都会使用手机通讯录功能,随着手机通讯录功能的不断加强与完善,手机通讯录的意义,己不仅仅像电话薄一样显示电话号码,而是向着个性化、人性化的方向发展。通讯录从无到有,从英文到中文,经历了十几年的发展历程,今后的发展趋势就是从通讯录发展为名片夹,也就是在一个联系人之下有手机号码、固话号码、公司、住址、邮箱、备注等内容。手机通讯录扮演着与用户直接交互并且提供服务的重要角色,它需要提供良好的用户体验,方便用户操作,接收用户的操作并把这些操作转换成相应的命令,采用用户活动的方式完成各个服务的逻辑流程。其功能主要包括新建、删除、编辑联系人,查找联系人,通讯功能,个人中心,还原与备份。新建、删除、编辑联系人点击通信录界面中的新建按钮,进入新建联系人界面。输入联系人的基本信息,井可根据用户需求增加个性化信息如姓名、手机号码、、地址、性别这些信息,单击确认返回主界面。点击通信录中一个已存在的联系人,进入联系人编辑界面,可修改联系人的资料或者删除联系人,完成后退回到主界面。查找联系人用户点击边框的字母,根据联系人姓名的头字母来查看联系人,查到后,单后可以查看联系人的信息和修改联系人的资料。通讯功能用户在通讯录选择联系人进入联系人详细信息界面,这时点击menu键打开通信功能框,选择打电话、发信息还是发邮件的功能进行操作。个人中心功能通过对menu按键的点击,显示左边的菜单框,包含登录,注册,还原,备份功能,分别有登录用户,注册用户,还原所有联系人,备份所有联系人的功能还原与备份系统界面设计界面布局Android的资源文件保存在/res的子目录中。其中/reMkawable/目录中保存的是图像文件,/res/values目录中保存的是用来自定义字符串和颜色的文件,/【es/xml目录中保存的是XML格式的数据文件。所有在程序开发阶段可以被调用的资源都保存在这些目录中,在对界面进行绘制时要考虑到不同手机屏幕大小可能不一样,应尽量兼容大多数手机屏幕尺寸,使之显示无障碍。增加界面绘制代码如下:<?xmlversion="2.。"encoding="utf-8n?><RelativeLayoutxmlns:android="/apk/res/android"android:id="@+id/acbuwa_page”android:layout__width="fiLL_parent"android:layout_height=ufiLL_parent"android:background="#2197db”><RelativeLayoutandroid:id=n^id/acbuua_topbarnstyle=u^styLe/topbar_bg”android:layout_yjidth="fiLL_parent"android:layout_height="46.0dip"><Buttonandroid:id=11id/menuBtn11style="@styLe/topbar_Left_btn11android:background=u@drai\fabLe/menu_unfoLd"/><TextViewandroid:id=u^-id/topbar_titLe"style=n@styLe/topbar__text”android:text―联系A”/><Buttonandroid:id=u^-id/addContactBtn”style=n@styLe/topbar_right_btn”android:background=u@drai\fabLe/add_contactn/></RelativeLayout><xu.ye.view.ui.SlidingLinearLayoutandroid:id=u(ahFid/sLidingidnandroid:layout_yjidth="fiLL_parent"android:1ayout_height=n/itt_parentnandroid:layout_below="^id/acbuua_topbarn><ListViewandroid:id=11id/acbList"android:layout-width=n/iLL_parent"android:layout_height=,,/itt_parentnandroid:cacheColorHint=n#00000011android:divider="#00000000”android:fadingEdge="none"android:scrollbars=nnoneHandroid:scrollingCache=n/atse,fandroid:visibility="visibLe"/></xu.ye.viev^.ui.SlidingLinearLayout><xu.ye.vievy.ui.QuickAlphabeticBarandroid:id="(a^id/fast_scroLLer"android:layout_width=,r22dp”android:layout_height=t_parentnandroid:1ayout_alignParentRight="true"android:layout_below="^id/acbu^a_topbar"android:layout_gravity="top/right/center”android:layout_marginTop=n0c/ipnandroid:background=L11android:scaleType="centerinside”android:src="^drauabLe/dic_background11/><TextViewandroid:id=n@+id/fast_positionnandroid:layout_width=,r70dip”android:layout_height=n70dipnandroid:layout-centerInParent=Mtruenandroid:layout_gravity="center_horizontaL/top”android:layout_margin=n34dip11android:background=n(a)drauabLe/sort_icon__bg_cLickandroid:gravity="center"android:padding="2dip"android:textColor="#000000"android:textSize=u48dip11android:visibility="invisibLe"/></RelativeLayout>
2.2.2新建联系人功能在通讯录中最主要的功能操作,也就是联系人的添加操作的功能,在联系人增加界面中点击保存按钮实现对联系人信息的保存。首先在user类中定义了一个user函数从表单中获取数据,建立数据库帮助类,打开数据库并将use[保存到数据库中,增加界面如图2-1所示。图2T新建联系人界面2.2.3删除联系人功能通过光标选择删除的联系人,点击联系人然后选择删除可以删除联系人,并且在数据库中删除联系人,删除联系人功能如图2-2所示HDF1236-789-0405#ABCDEFGH—■•是否删除此联系人HDF1236-789-0405#ABCDEFGH—■•是否删除此联系人确定 取消1014-737-4288 sTUVWXYZ2.2.4查找联系人功能用户点击边框的字母,根据联系人姓名的头字母来查看联系人,查到后,单后可以查看联系人的信息和修改联系人的资料。>联系人心>联系人心2.2.5个人中心功能通过对menu按键的点击,显示左边的菜单框,包含登录,注册,还原,备份功能,分别有登录用户,注册用户,还原所有联系人,备份所有联系人的功能个人中心登录④注册㊉各份㊉还原2.2.6注册,登录功能要求用户必须注册,登录后才能使用还原联系人和备份联系人的功能
系统编码实现第3章系统编码实现3.1系统功能的实现代码备份newThread(newRunnable(){^Overridepublicvoidrun(){try(socket=newSocket(IpAdciress,Port);ObjectOutputStreamoos=newObjectOutputstream(socket.getOutputStream());ObjectInputstreamois=newObjectInputStream(socket.getlnputstream());Userobjectuserobject5=newUserobject();userObject5.setorder("备份”);Contactcontact=newContact();contact.backups(mContext);userObject5.setuser(user);userobject5.setName(contact.getName());userObject5.setNumber(contact.getNumber());oos.writeObject(userCbject5);UserobjectuserObject6;userObject6=(Userobject)ois.readObject();judge=userObject6.getJudge();还原
publicvoidrun()try{socket=newsocket(ipAddress,Port);objectoutputstreamoos=newcbjectoutputstream(socket.getOutputStream());ObjectInputStreamois=newObjectInputstream(socket.getlnputStream());UserCbjectuserObject5=newUserobject();user0bject5.setOrder还原”);usercbject5•setuser(user);oos.writeobject(userobjects);userobjectuserobjectG;while((userObjecto=(UserObject)ois.readobject())!=null){name=userObject6.getName();number=userCbject6.getNuniber();judge=Mlw;break;Terrupted();添加联系人publicvoidbackups<contextmcontext){ContentResolvercr=mcontext.getContentResolver();//纪符电话本中开蛤一项的光标,必缈先moveToNextU)Cursorcursor=cr.query(ContactsContract.Contacts.CONTENT_UP.Trnullrnull,null,null);while(cursor.moveToNext())(//取得联系人的名字索引intnameindex=cursor.getColumnlndex(PhoneLookup.DISPLAYNAA2E);stringcontact=cursor.getstring(nanieindQx);//取得耗否人的工D幸引僧Stringcontactld=cursor.getString(cursor.getColuinnlndex(ContactsContract.Contacts._TD));//查询谈位央系人的电话考孙英似的可以笠词Qmail,photoCursorphone=cr.query(ContactsContract•CommonDataKinds-Phone・CONTBNT_URIrnull,ContactsContract.ConunonDataKinds.Phone.CONTACTID+H=11//一牛人可能有几个号房while(phone.moveToNext()){StringstrPhoneNumber=phone//一牛人可能有几个号房while(phone.moveToNext()){StringstrPhoneNumber=phone.getstring(phone.getcolumnindex(ContactsContract.CommonDataKinds.Phone.number));name+=(contact+number+=(strPhoneNmnber+Mz,f);用户类(序列化对象)publicclassUserObjectimplementsjava.io.Serializableprivatestringorder;privateStringuser;privateStringpass;privateStringjudge;privateStringname;privateStringnumber;publicuserobject(){}publicUserobject(StringufStringp){user=u;pass=p;IpublicvoidsetJudge(stringj){judge=j;}publicvoidsetorder(stringo){order=o;)publicvoidsetuser(stringu){user=u;)publicvoidsetName(Stringn){name=n;注册publicvoidrun(){try(//Textviewt=(Textview)findViewByld(R.id.t);socket=newSocket(IpAddressrPort);ObjectOutputstreamoos=newObjectOutputStream(socket.getOutputStream());ObjectInputStreamois=newObjectInputStream{socket.getinputstream());userobjectuserobject3=newuserobject(user,pass);userobjact3・sutordar("注册");oos.writeobject(userobject3);userobjectuserobject4;userobject4=(userobject)ois.readobject();Messagemsg2=handler.obtainMessage();oos.flush();m3g2.what=Oxll;msg2>obj=userObject4.getJudge();handler.sendMessage(msg2);}catch(UnknownHostExceptionel){el.printstackTrace();)catch(ClassNotFoundExceptione){e.printstackTrace();}catch(工。Exceptionel){el・printstackTrace();登录newThread(newRunnable()goverridepublicvoidrun(){try(//Textviewt=(Textview)findviewByid(R.id.t);socket=newSocket(IpAddressfPort);ObjectOutputstreamoos=newObjectoutputStream(socket.getoutputstream());CbjectInputStreamois=newOtojectlnputStream(socket.getInputstream());UserobjectuserObjectl=newUserobject(userrpass);userobjectl.setorder("登录");oos.writeObject(userObjectl);UserobjectuserObject2;userobject2=(userobject)ois.readobject();Messagemsg2=handler.obtainMessage();oos.flush();msg2.what=Oxll;msg2.obj=userObject2.getJudge();handler.sendMessage(iusg2);服务端serversocket=newserversocket(Port);System,out.printin ,f);while(true){//tSfflserversocket^accept() ,医收客户缥发送的话求socketsocket=serversocket.accept();System.。〃匕.println("连接成功 n);CbjectOutputStreamoos=newObjectOutputStream(socket.getOutputStrearn());CbjectInputstxeamois=newCbjectInputStxeam(socket.getInputstream());Userobjectuserobjectl=(UserObject)ois.readobject();if(userobjectl.getOrder().equals(“登录")){LoginJciiDCloginjdbc=newLoginJciiDC();UserObjectuserobject2=newUserCbject();//把账号密码传入数据库匹配userobject2.setJudge(loginjdbc.login(userobjectl.getuser(),userobjectl.getPass()));oos.writecbject(userobject2);oos.flush();if(userobject2.getJudge().tostringO.trimO.equals(nlw)){system•out.printin("身份嬷证成功”);服务端备份数据publicclassBackUpsJdbc{privateStringcheck;pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 责任保险课程设计
- 绘画家长互动课程设计
- 长安大学钢桥课程设计
- 小学昆虫饲养课程设计
- 采购课程设计关于招标
- 通信原理的课程设计
- 手工荷花课程设计
- 饲料配方课程设计
- 衬套注塑模具课程设计
- 智能电子相册课程设计
- 人教版八年级物理-第二章:声现象复习完整课件
- 直播代运营服务合同范本版
- 2024年江苏苏州中考数学试卷及答案
- 2024年山东省高中自主招生数学模拟试卷试题(含答案)
- 算术平方根2课件
- 【人教版】九年级化学上册期末试卷及答案【【人教版】】
- 四年级数学上册期末试卷及答案【可打印】
- 人教版四年级数学下册课时作业本(含答案)
- 中小学人工智能教育方案
- 高三完形填空专项训练单选(部分答案)
- 护理查房高钾血症
评论
0/150
提交评论