• 251.50 KB
  • 2022-04-22 13:41:32 发布

android平台手机安卓短信通毕业设计论文.doc

  • 19页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'android平台手机安卓短信通毕业设计论文目录1引言51.1课题研究的背景51.2课题研究目标及意义52.主要技术简介53.系统分析与设计63.1系统简要说明63.2系统可行性分析63.2.1技术可行性63.2.2经济可行性63.2.3操作可行性73.3需求分析73.4功能模块分析84系统应用分析84.1应用程序交互模型(时序图)84.2应用程序交互模型(活动图)95.数据库设计95.1概述95.2数据库的特点95.3数据库表结构116系统实现126.1用户主界面分析126.2单号码连发界面分析146.3号码段发送界面分析186.4清单发送界面分析216.5定时短信界面分析247.程序调试与测试307.1程序调试307.2程序测试307.2.1测试目的307.2.2测试内容308.总结31致谢31参考文献3219 191引言1.1课题研究的背景目前android平台手机渗透到我们生活,20世纪末,电子技术获得了飞速的发展,在其推动下基于android平台手机的现代电子产品在我们生活的各个角落都能见到,有力地推动了社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。基于android平台手机的发展趋势,本设计以android平台手机为核心制作了一个短信通。本次设计运用android平台手机作为研究开发对象,配合Java语言程序设计以及面向对象思想设计了一种手机短信通。本设计完成后,能够实现以下功能:短信发送,短消息提示,短消息群发,查询发送状态。在设计时,按照设计的要求,从安全性,经济性,可靠性三个方面进行考虑,通过设计方案的比较,确定出来一套既经济又可行的方案。1.2课题研究目标及意义安卓在手机上的应用使得手机的功能有了很大改善,这使得越来越多的人主要依靠手机查询大量信息,而用户们不断提高的需求也决定了越来越多的基于安卓平台的应用软件及系统的产生。经过使用发现Android自带的短信发送功能十分简单,不支持单号码连发、定时短信等功能,然而Android开源的特性给开发者提供了一个完美的平台。本设计完成后,能够实现以下功能:短信发送,短消息提示,短消息群发,查询发送状态2.主要技术简介19 Java是由SunMicrosystems公司于1995年推出的Java程序设计语言和Java平台的总称。Java语言是Android开发人员所选的工具。Android运行时使用自己的虚拟机Dalvik,这并不是多数程序开发人员使用的普通Java虚拟机。Dalvik支持Java编程语言的大部分功能-但并不是全部。   Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。Eclipse最初是由IBM公司开发的替代商业软件VisualAgeforJava的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(EclipseFoundation)管理。2003年,Eclipse3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。2009年7月发布代号为GALILEO的3.5版等等,目前,最新是2011年6月22日发布代号为Indigo的3.7版。3.系统分析与设计3.1系统简要说明设计与实现一个在Android手机上运行的手机短信发送软件,实现手机短信的基本功能,包括:短信发送,短消息提示,短消息群发,查询发送状态等功能。3.2系统可行性分析从技术性、经济性和操作性方面研究软件编写的可执行性,确保软件能够在后期顺利执行,它是软件开发的最前沿和基础。3.2.1技术可行性  19 技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求。本软件用的是Java开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此技术上是绝独可行的。软件方面:相关的开发软件,可以方便的从网上下载,易于获得,且可以满足系统需求。3.2.2经济可行性  开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的软件系统、硬件平台等都易于获得,且不需要Android平台机器,用模拟器即可实现开发研究,开发成本低,容易实现,从经济角度来看,该系统可行。3.2.3操作可行性  该课题是利用自己的计算机,且使用Android模拟器,并且在本地上安装JDK、Android跟Eclipse作为软件的开发平台,使开发出来的系统有友好的用户界面、操作简单,因此在操作上是可行的。3.3需求分析根据手机功能使用调查显示,有八成以上的消费者使用手机短信功能。随着手机短信功能的不断加强与完善,手机短信对于人们的意义,已不仅仅只是简单的传递信息,而是向着个性化、人性化的方向发展。短信计数从无到有,从英文到中文,经过了十几年的发展历程,今后的发展趋势就是个性化打造不同的短信设计模板,以实现每个人对短信不同的要求。该系统针对的主要用户是Android手机用户。Android手机短信通系统包括以下主要内容:单号码连发短信,号码段群发短信,清单发送短信,定时发送短信。要设计一个良好的手机短信通软件,就必须首先明确该应用环境对系统的要求。Android手机短信应用背景:方便用户快捷通讯。因此,该系统需要满足以下几方面的需求:(1)短信的发送:添加直接联系人的号码,编写短信内容后,点击“发送短信”发送。(2)短消息提示:收到信息后直接提示用户。(3)短消息群发:用户可以单击“添加联系人”按钮在系统的通讯录中选择需要添加的联系人,然后单击“发送”向之前选择的多个联系人发送信息。(4)查询发送状态:填入正确的电话号码及短消息后单击“发送短信”按钮,便会提示发送的状态。19 3.4功能模块分析短信的发送查询发送状态短消息群发短消息提示Android手机短信通功能模块图3-14系统应用分析4.1应用程序交互模型(时序图)主界面安卓短信接口短信界面用户移动运营商短信接收人显示选择调用交付发送返回图4-119 用户4.2应用程序交互模型(活动图)进入短信通主界面进入短信通某一功能编辑短信短信内容为空发送列表为空短信待发送发送短信5系统实现5.1系统功能分析5.1.1短信的发送功能分析短信的发送界面如图所示19 图4-3功能模块如下用例名称短信的发送简述对一个号码发送短信参与者用户,移动运营商,短信接收人前置条件用户打开了短信发送的界面后置条件输入了短信接收人的手机号码和短信内容扩展用例无包含用例无触发事件用户点击主界面的发送短信项,用例开始基本操作流程1.用户填写手机号码2.填写要发送的短信内容,不能为空3.点击发送按钮,开始发送短信图4-4部分代码如下:packagewyf.ytl;Importandroid.app.Activity;….//该处省略了部分类的引入代码Importandroid.widge.Toast;PublicclassSample_11_1extendsActivity{PublicvoidonCreate(BundlesavedInstanceState){19 Super.onCreate(savedInstanceState);setContentView(R.layout.main);Buttonbdial=(Button)this.findViewById(R.id.Button01);Bdial.setOnClickListener(NewView.onClickListener(){EditTextetTel=(EditText)findViewById(R.id.EditText02);StringtelStr=etTel.getText().toString();EditTextetSms=(EditText)findViewById(R.id.EditText01);StringsmsStr=etSms.getText().toString();If(PhoneNumberUtils.isGlobalPhoneNumber(telStr)){v.setEnabled(false);sendSMS(telStr,smsStr,v);}Else{Toast.makeText(Sample_11_1.this,“电话号码不符合格式!!!”,5000).show();}}});}PrivatevoidsendSMS(StringtelNo,StringsmsStr,Viewv){PendingIntentpi=PendingIntent.getActivity(this,0,newIntent(this,Sample_11_1,class),0);SmsManagersms=SmsManager.getDefault();Sms.sendTextMessage(telNo,null,smsStr,pi,null);Toast.makeText(19 Sample_11_1.this,“恭喜你,短信发送成功!”,5000).show();v.setEnabled(true);}5.1.2短消息提示功能分析短消息提示界面如图所示图4-5功能模块如下所示用例名称短消息提示简述接收到消息后,以Toast的形式提示用户短信内容参与者用户,移动运营商,短信接收人前置条件用户手机处于开机状态后置条件用户收到了新的短信扩展用例无包含用例无触发事件收到新的短信后自动触发1.用户收到新的短信19 基本操作流程1.收到信息后直接到屏幕上提示用户短信发件人以及短信内容图4-6部分代码如下:packagewyf.ytl;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.os.Bundle;importandroid.telephony.gsm.SmsMessage;;importandroid.widget.Toast;publicclassMyBroadcastReceiverextendsBroadcastReceiver{publicvoidonReceive(Contextcontext,Intentintent){if(intent.getAction().equals(“android.provider.Telephony.SMS_RECEIVED”)){Bundlebundle=intent.getExtras();if(bundle!=null){Object[]myObject=(Object[])bundle.get(“pdus”);SmsMessage[]messages=newSmsMessage[myObject.length];For(inti=0;ipeoples=newHashMap();PublicvoidonCreate(BundlesavedInstanceState){Super.onCreate(savedInstanceState);setContentView(R.layout.main);select=(Button)this.findViewById(R.id.select);send=(Button)this.findViewById(R.id.sent);people=(EditText)this.findViewById(R.id.people);select.setonClickListener(this);send.setonClickListener(this);}PublicvoidonClick(Viewv){If(v==select){Uriuri=Uri.parse(“content://contacts/people”);Intentintent=newIntent(Intent.ACTION_PICK,uri);startActivityForResult(intent,1);}Elseif(v==send){19 v.setEnabled(false);EditTextetSms=(EditText)findViewById(R.id.smsBody);StringsmsStr=etSms.getText().toString();SetkeySet=peoples.keySet();Iteratorii=keySet.iterator();people.setText(“”);while(ii.hasNext()){Objectkey=ii.next();StringtempName=(String)key;StringtempPhone=peoples.get(key);If(PhoneNumberUtils.isGlobalPhoneNumber(tempPhone)){SendSMS(tempPhone,smsStr,v);}}}}privatevoidsendSMS(StringtelNo,StringsmsStr,Viewv){PendingIntentpi=PendingIntent.getActivity(this,0,newIntent(this,Sample_11_3.class),0);SmsManagersms=SmsManager.getDefault();sms.sendTextMessage(telNo,null,smsStr,pi,null);v.setEnabled(true);}6.5查询发送状态功能分析查询发送状态界面原型19 图4-9定时短信功能模块如下:用例名称查询发送状态简述对短信息发送后的状态进行查询参与者用户,移动运营商,短信接收人前置条件用户打开短信的发送的界面后置条件填写联系人,填写短信内容,点击“发送短信”扩展用例无包含用例无触发事件用户点击短信的发送“发送短信”按钮后,用例开始基本操作流程1.填写联系人,填写短信内容2.点击“发送短信”3.提示短信发送的状态可选操作流程无图4-10设计代码如下:packagewyf.ytl;importandroid.app.Activity;19 importandroid.app.PendingIntent;……importandroid.widget.EditText;importandroid.widget.Toast;publicclassSample_11_4extendsActivityimplememtsOnClickListener{EditTextnumber;EditTextbody;Buttonsend;PublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);send=(Button)this.findViewById(R.id.send);number=(EditText)this.findViewById(R.id.number);body=(EditText)this.findViewById(R.id.body);send.setOnClickListener(this);IntentFiltermyIntentFilter=newIntentFilter(“SMS_SEND_ACTION”);MyBroadcastReceivermyBroadcastReceiver=newMyBroadcastReceiver();registerReceiver(myBroadcastReceiver,myIntentFilter);}PublicvoidonClick(Viewv){If(v==send){Send.setEnabled(false);StringstrNumber=number.getText().toString();StringstrBody=body.getText().toString();SmsManagersmsManager=SmsManager.getDefault();IntentintentSemd=newIntent(“SMS_SEND_ACTION”);PendingIntentsendPI=PendingIntent.getBroadcast(getApplicationContext(),0,intentSemd,0);smsManager.sendTextMessage(strNumber,null,strBody,sendPI,null);19 send.setEnabled(true);}}PublicclassMyBroadcastReceiverextendsBroadcastReceiver{publicvoidonReceive(Contextcontext,Intentintent){switch(getResultCode()){caseActivity.RESULT_OK:Toast.makeText(context,“发送成功”,Toast.LENGTH_LONG).show();break;caseSmsManager.RESULT_ERROR_GENERIC_FAILURE:Toast.makeText(context,“发送失败”,Toast.LENGTH_LONG).show();break;default:Toast.makeText(context,“未知”,Toast.LENGTH_LONG).show();break;}}}}7.程序调试与测试7.1程序调试程序开发中难免会遇到各种问题,如语法的错误,程序设计的错误。程序开发是一个循序渐进的过程。开发完一个功能,需要及时的测试,待功能测试通过后,方可以进行下一个功能的开发,这样可以保证程序的质量。在程序开发中,使用了打印调试信息,debug调试等方法。7.2程序测试7.2.1测试目的19 程序没有错误,代码正确不代表程序能够正常运行,或者按照设计者的思路来运行,所以程序测试是有必要的。程序测试就是在程序投入运行前,对程序的需求分析、设计规格说明和编码的最终复审,是保证程序质量的关键步骤,如果要给程序测试下定义,可以这样讲,程序测试时为了发现错误而执行程序的过程。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。编程人员力求在每个阶段结束之前通过严格的技术审查,尽可能早的发现并纠正错误。7.2.2测试内容(1)功能测试经测试:该软件系统的添加联系人功能、查看联系人、编辑联系人、查找联系人功能皆正常。软件的质量可以达到保证。  (2)健壮性测试经测试:该软件系统在异常情况下能正常运行的能力。如:直接退出,没有点退出菜单,程序数据不会受到破坏,在配置较低的手机上运行。(3)性能测试经测试:该软件系统处理事务的速度快捷。正常该软件时,安装在手机上面运行良好。8.总结在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对安卓短信系统的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。尽管本短信19 系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。在这次课程设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法。对Java了解不够,不能很大发挥其语言功能,尤其在编写代码的时候不能够熟练使用,而是到处查阅资料,也不能够很准确的区别出相近功能指令的各自功能特点,使得在本系统的实现过程中,放弃了一些很好的设想和功能,也是一种遗憾。但是总的来说,这次的课程设计对我来说是一次非常难得的锻炼机会。使我对所学的专业课知识得到了融会贯通,得到了比任何一门课都大的提高和进步。在这期间也得到了指导老师和同学的支持和帮助。从毕业设计开始进行分析到最后的实现,总共用了三个多月的时间,前两个月在熟悉Android的设计思想、实现方法和进行短信通的需求分析和设计,后一个多月都在进行短信通的编码工作,并实现了短信发送,短消息提示,短消息群发,查询发送状态四个功能。致谢首先要由衷地感谢郑兆华老师。在这半年的时间里郑老师给我提供了很多参考资料,在程序设计上提出了很多指导意见,使我能够顺利地完成毕业设计,学到了很多Android系统应用软件开发知识。同时,郑老师还给我以后的人生道路提出了许多宝贵的意见和建议,使我在大学最后的时间里,再次上了一堂生动形象的课。在此还要感谢我的同学们的热心帮助,谢谢你们,正是因为你们的帮助,我才能克服一个个的困难。感谢院系老师对我的培育,让我学到了扎实的专业知识。感谢培育了我四年的大学。19 参考文献[1](美)哈希米.精通Android2开发移动系列.人民邮电出版社,2010[2]王向辉,张国印,沈洁.Android应用程序开发.清华大学出版社.2010[3]韩超,梁泉.Android系统原理及开发要点详解.电子工业出版社.2010[4]姚尚朗.Googleandroid开发入门与实践.人民邮电出版社,2009.7[5](美)伯内特.Android基础教程.人民邮电出版社,2009[6]吴亚峰.Android核心技术与实例详解.电子工业出版社,北京,1997[7](英)梅尔著,王鹏杰,霍建同 译.Android高级编程.清华大学出版社,北京,2010[8](美)巴拉赫,(美)兰宝著,车皓阳,杨眉译.UML面向对象建模与设计(第2版).人民邮电出版社,北京,2006[9](美)弗里曼(Freeman,E.) 等著,OreilyTaiwan公司 译.HeadFirst设计模式(中文版).中国电力出版社,北京,2007[10]谭云杰著.ThinkinginUML.水利水电出版社,北京,2009[11](美)布赫(Booch,G.)等著.UML用户指南(英文版·第2版).机械工业出版社,北京,2006[12]谭浩强.Java语言程序设计(第三版)[M].北京:清华大学出版社,2008.[13]张孝祥.Java就业培训教程[M].北京:清华大学出版社,2003.[14]王珊,萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社,2006.19'