安卓开发课程设计报告_第1页
安卓开发课程设计报告_第2页
安卓开发课程设计报告_第3页
安卓开发课程设计报告_第4页
安卓开发课程设计报告_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

下载可编写武汉理工大学华夏学院课程报告课程名称:智好手机软件开发题目:鉴于Android的手机通信录的设计与实现专业信息工程系班级学号姓名成绩指导教师2015年3月23日至2015年6月12日.专业.整理.智好手机软件开发大作业依据所学的Android手机开发的知识,采纳Eclipse、JAVA开发一个鉴于Android平台的手机通信录软件,详细要求以下:要发该软件能够在Android4.0以上的平台上运转。要求软件界面雅观,操作方便,切合平时使用规范。能够经过该手机通信录来增添新的联系人,用来寄存联系人的姓名、单位、电话、QQ地点等信息。能够经过该手机通信录来编写联系人信息,来改正联系人的个人信息。5.能够经过该手机通信录来调用系统的通信接口,直接给用户发短信,打电话。在手机通信录中,增添适合的菜单,来操作手机通信录。将开发的过程写成报告,要求内容完好,格式规范,条理清楚。下载可编写设计目的跟着手机通信录功能的不停增强与完美,手机通信录对于人们的意义,已不不过像记事簿相同显示通信地点,而是向着个性化、人性化的方向发展挪动终端的应用软件和需要的服务将会有很大的发展空间。依据这个特色,设计一个鉴于Android平台的通信录系统,能依据手机的特色,储存,管理,改正联系人信息,并且能够依据选定的联系人,对其拨打电话,发送短信等。手机通信录作为手机的基本功能之一,每日我们都在屡次地使用着。依据手机功能使用检查显示,通信录从无到有,从英文到中文,经过了十几年的发展历程,此后的发展趋向就是从通信录发展为名片夹,也就是在一个人名下,可以储存座机、手机、单位、地点、电子邮件等内容。所以手机通信录功能愈来愈齐备,满足了人们的需求。开发环境因为该android通信录是一个鉴于Java语言开发软件,所以选择了Eclipse3.4作为开发平台,作为插件,它能够安装AndroidSDK进而能够安装使用Android虚构机,使得程序得以开发,亦更为方便。本通信录系统就是在Eclipse3.4+Android平台环境下编写设计而成的。需求剖析该系统针对的主要用户是Android手机用户。Android手机通信管理系统包含以下主要内容:(1)用户经过联系人功能能够保留联系人的详尽信息,能够春联系人进行编写、删除、拨打电话、发送短信能够依据索引条件搜寻联系人。用户通太短信记录功能能够发送短信,删除短信记录。用户经过SD卡所储藏信息向通信录批量导入联系人信息。.专业.整理.(4)用户经过个人中心能够设置自己的详尽信息,这样方便其余人认识自己,也可以将拥有相同名字的联系人归并。要设计一个优秀的手机通信录,就一定第一明确该应用环境对系统的要求。Android手机通信录应用背景:方便用户快捷通信。近似于传统手机通信录的联系人的增添、改正、查找、删除功能。指定联系人后,录音并发送给该联系人的留言功能。经过通信录接见联系人的微博以实现与联系人互动的功能。接收短信、电话、语音留言和微博留言的信息并提示用户。保留用户自己的个人信息以用于与别人联系时显示身份。纲要设计下边数据流图是对于Android手机通信管理软件主要功能模块包含的简单构造图:联系人查察、联系人编写、联系人增添、联系人删除、呼喊、发送短信、搜寻,如图所示:图4.1Android手机通信管理软件主要功能模块下载可编写联系人列表界面主菜单中包含增添联系人、搜寻联系人、对于及查察系统版本号、退出菜单项。点击增添联系人,则进入联系人增添界面,增添成功后返回列表界面。点击搜寻菜单,则进入联系人搜寻界面,输入联系人的全名或一个字,即可查找有关系系人,点击联系人会进入联系人查察界面,能够春联系人进行编写、删除、拨打电话、发送短信。以下列图所示的Android手机通信管理软件业务流程图?图4.2Android手机通信管理软件业务流程图数据库设计5.1SQLite数据库简介SQLite,是一款轻型的数据库,是恪守ACID的关系式数据库管理系统,它的设计.专业.整理.目标是嵌入式的,并且当前已经在好多嵌入式产品中使用了它,它占用资源特别的低,在嵌入式设施中,可能只要要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟好多程序语言相联合,比方Tel、C#PHPJava等,还有ODBC接口,相同比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的办理速度比他们都快。SQLite第一个Alpha版本出生于2000年5月.到现在已经有10个年头,SQLite也迎来了一个版本SQLite3已经发布。本系统采纳的是Android系统自带的SQLite轻型数据库数据库。所以占用资源非常小。5.2数据库表构造第一创立数据库,在数据库中创立表用来储存联系人数据,此中包含联系人姓名、手机号、QQ地点等联系方式。详尽设计与实现6.1联系人阅读模块进入首界面,显示联系人列表。点击某个联系人会进入查察联系人界面,能够查察联系人的详尽信息,春联系人进行编写、删除、拨打电话发送短信等。截图所示:下载可编写图通信录联系人列表模块界面点击菜单按钮时,就会显示增添、查找、对于和退出功能。假如点击退出菜单,则会退出该软件。以下图:图通信录主菜单项模块.专业.整理.长按菜单显示Android手机通信截图以下图:图通信录联系人界面菜单模块6.2查察联系人模块在联系人界面点中击某个联系人,则会跳转到该界面。该软件实现了给联系人拨打电话和发送短信的功能。查察联系人界面截图以下图:图6.2手机通信查察联系人模块界面下载可编写6.3编写联系人模块联系人编写界面设置了返回列表菜单和删除联系人菜单。点击返回列表菜单,会返回到联系人阅读界面。编写联系人界面以下图:图6.3手机通信录编写联系人界面模块6.4查找联系人模块查找到全部包含该部分的联系人,并在ListView中显示出来全部的联系人的姓名和手机号码,截图以下图:图6.4通信录查找联系人模块界面总结这学期的智好手机开发课程的学习,让我认识得手机开发端应用的宽泛性,.专业.整理.以及对自己所学知识的总结,做手机通信录,让我认识得手机已经成为平时生活中不行分割的一部分,所以手机上的功能知足人们的需求,才是手机通信录开的重要性。对于此次的课程设计,使我发现了自己所掌握的知识是真切这样的缺少,自己综合应用所学的专业知识能力是这样的不足经过此次开发项目,我们学会了怎样在一个项目中集成多种技术,怎样合理的耦合各样小功能,怎样解决各样开发中出现的问题。同时在此次开发中出现的问题也裸露出了我们对java程序设计的一些问题,以及自己的着手能力还需要提升,并且做一个项目第一要理解这个项目的中心思想,这样才有目的去设计。经过课程设计,使我深深领会到,干任何事都一定耐心,仔细,课程设计过程中,许多诱惑有时难免令我感觉有些心慌意乱,有几次因为不当心而犯错,只能绝不情义地重来。但一想起老师对我们耐心的教育,仔细对待的优秀习惯?这次课程设计使我在工作作风上获得了一次难得的磨炼,一个人的性格很大程度上决定一件事情的进展以及对工作的态度和生活的态度,所以养成好的习惯能够帮助我战胜各样磨难,能够帮助我在此后的学习中脚扎实地的工作。经过此次手机开发通信录课程设计,我能够更为深刻的认识得手机通信录开发的远景以及所需的知识,总之在此后的学习中自己应当认识此刻社会上开发手机通信录所需的最新的技术,不可以千篇一律,只看书籍上的知识,养成自我学习的优秀习惯。参照文件[1]罗伟?鉴于Android平台的即时通信系统的研究与实现[D]?湖南师范大学,2009.李刚,《疯狂Java讲义》,电子工业第一版社,2008程峰,《JAVA核心技术》,机械工业第一版社,2007[4]王鹏,《JAVA语言程序设计》,大连理工第一版社,2005附录源代码publicclassDBHelper{/*下载可编写*操作数据库和各个表*/publicstaticfinalStringDATABASE_NAME="CONTACT_DB";publicstaticfinalStringTABLE_CONTACTER="contact_person";publicstaticfinalStringTABLE_MOBLIEPHONE="phone_number";publicstaticfinalStringTABLE_GROUP="mygroup";publicstaticfinalStringTABLE_EMAIL="email";publicstaticfinalStringTABLE_QQ="qq";publicstaticfinalStringTABLE_HOMEPHONE="home_phone_number";publicstaticfinalStringTABLE_ADDRESS="address";publicstaticfinalStringTABLE_FAX="fax";创立表的SQL语句publicstaticString[]CreateTabelSQL;privatestaticSQLiteDatabasedblnstanee;publicstaticfinalintVERSION=4;privateMyDBHelpermyDBHelper;privateContextcontext;publicDBHelper(Contextcontext,String[]createtablesql){this.context=context;this.CreateTabelSQL=createtablesql;}publicDBHelper(Contextcontext){this.context=context;}I**翻开数据库*IpublicvoidopenDatabase( ){if(dbInstance==null){创立数据库myDBHelper=newMyDBHelper(context,DATABASE_NAME,VERSION);dbInstance=myDBHelper.getWritableDatabase( );}/**返回全部联系人*/publicArrayList<HashMap<String,Object>>getAllContacter(Stringcondition){ArrayList<HashMap<String,Object>>contaclist=newArrayList( );Cursorcursor;if(condition==null||condition.trim( ).equals(""))cursor=dbInstance.query(TABLE_CONTACTER,.专业.整理.newString[]{"id","name","headImage"},null,null,null,null,null);else{StringBuffersqlBuffer=newStringBuffer( );sqlBuffer.append("selectid,name,headImagefrom").append(TABLE_CONTACTER).append("wherenamelike'%").append(condition).append("%'");cursor=dbInstance.rawQuery(sqlBuffer.toString( ),null);}cursor.moveToFirst( );while(!cursor.isAfterLast( )){HashMap<String,Object>item=newHashMap<String,Object>( );item.put("contacter_id",cursor.getInt(cursor.getColumnIndex("id")));item.put("name",cursor.getString(cursor.getColumnIndex("name")));item.put("headimage",cursor.getString(cursor.getColumnIndex("headImage")));返回第一个手机电话号码CursorphoneCursor=dbInstance.query(TABLE_MOBLIEPHONE,newString[]{"phone_number"},"id=?",newString[]{String.valueOf(cursor.getInt(cursor.getColumnIndex("id")))},null,null,null);phoneCursor.moveToFirst( );item.put("phonenumber",phoneCursor.getString(phoneCursor.getColumnIndex("phone_number")));contaclist.add(item);cursor.moveToNext( );}returncontaclist;依据编号返回一个联系人*/publicContactergetContacter(intid){Contactercontacter=newContacter( );CursorcontacterCursor=dbInstance.query(TABLE_CONTACTER,newString[]{"id","group_name","name","nick_name","birthday","workingunits","headlmage"},"id=?",newString[]{String.valueOf(id)},null,null,null);contacter.id=id;contacterCursor.moveToFirst( );=contacterCursor.getString(contacterCursor.getColumnlndex("name"));contacter.nickname=contacterCursor.getString(contacterCursor.getColumnlndex("nick_name"));下载可编写contacter.workingunits=contacterCursor.getString(contacterCursor.getColumnlndex("workingunits"));if(contacterCursor.getString(contacterCursor.getColumnlndex("birthday")).trim( )!=null&&!contacterCursor.getString(contacterCursor.getColumnlndex("birthday")).trim( ).equals("")){Stringstring=contacterCursor.getString(contacterCursor.getColumnlndex("birthday")).trim( );contacter.birthday=Date.valueOf(contacterCursor.getString(contacterCursor.getColumnlndex("birthday")));}contacter.headimage=contacterCursor.getlnt(contacterCursor.getColumnlndex("headImage"));//联系人的手机号码CursorphoneCursor=dblnstance.query(TABLE_MOBLIEPHONE,newString[]{"phone_number"},"id=?",newString[]{String.valueOf(id)},null,null,null);phoneCursor.moveToFirst( );contacter.mobilephone=newString[phoneCursor.getCount( )];for(inti=0;i<phoneCursor.getCount( );i++){contacter.mobilephone[i]=phoneCursor.getString(phoneCursor.getColumnIndex("phone_number"));phoneCursor.moveToNext( );}联系人的座机号码CursorhomephoneCursor=dbInstance.query(TABLE_HOMEPHONE,newString[]{"home_number"},"id=?",newString[]{String.valueOf(id)},null,null,null);homephoneCursor.moveToFirst( );contacter.homephonenumber=newString[homephoneCursor.getCount( )];for(inti=0;i<homephoneCursor.getCount( );i++){contacter.homephonenumber[i]=homephoneCursor.getString(homephoneCursor.getColum.专业.整理.nIndex("home_number"));homephoneCursor.moveToNext( );}//联系人的emailCursoremailCursor=dbInstance.query(TABLE_EMAIL,newString[]{"email"},"id=?",newString[]{String.valueOf(id)},null,null,null);emailCursor.moveToFirst( );contacter.email=newString[emailCursor.getCount( )];for(inti=0;i<emailCursor.getCount( );i++){contacter.email[i]=emailCursor.getString(emailCursor.getColumnIndex("email"));emailCursor.moveToNext( );}联系人的传真号码CursorfaxCursor=dbInstance.query(TABLE_FAX,newString[]{"fax_number"},"id=?",newString[]{String.valueOf(id)},null,null,null);contacter.faxnumber=newString[emailCursor.getCount( )];faxCursor.moveToFirst( );for(inti=0;i<faxCursor.getCount( );i++){contacter.faxnumber[i]=faxCursor.getString(faxCursor.getColumnlndex("fax_number"));faxCursor.moveToNext( );}联系人的地点CursoraddressCursor=dblnstance.query(TABLE_ADDRESS,newString[]{"add_code","province","city","street","zip_code","country"},"id=?",newString[]{String.valueOf(id)},null,null,null);addressCursor.moveToFirst( );contacter.addresses=newaddress[addressCursor.getCount( )];for(inti=0;i<addressCursor.getCount( );i++){contacter.addresses[i]=newaddress( );contacter.addresses[i].add_code=addressCursor.getlnt(addressCursor.getColumnlnd下载可编写ex("add_code"));contacter.addresses[i].province=addressCursor.getString(addressCursor.getColumnIndex("provinee"));contacter.addresses[i].city=addressCursor.getString(addressCursor.getColumnlndex("city"));contacter.addresses[i].street=addressCursor.getString(addressCursor.getColumnlndex("street"));contacter.addresses[i].zip_code=addressCursor.getString(addressCursor.getColumnIndex("zip_code"));contacter.addresses[i].coutry=addressCursor.getString(addressCursor.getColumnlndex("country"));addressCursor.moveToNext( );}.专业.整理.null,null,null,null,returncontacter;}/*自动生成联系人编码*/publicintgenerateContacterID( ){Cursorcursor=dbInstance.query(TABLE_CONTACTER,newString[]{"id"},null);cursor.moveToFirst( );inti=0;if(cursor.getCount( )==0)return0;while(!cursor.isAfterLast( )){if(i!=cursor.getInt(cursor.getColumnIndex("id")))returni;i++;cursor.moveToNext( );}returni;}/**插入新的联系人*/publicbooleaninsertContacter(Contactercontacter){booleanflag;intid=generateContacterID( );插入基本信息flag=insertContactPerson(id,contacter.groupname,,contacter.birthday,contacter.workingunits,contacter.headimage);//插入emailif(contacter.email!=null&&contacter.email.length>0)for(Stringemail:contacter.email)flag&=insertEmail(id,email);//插入QQif(contacter.email!=null&&contacter.QQ.length>0)contacter.nickname,for(longqq:contacter.QQ)flag&=insertQQ(id,qq);//插入传真if(contacter.faxnumber!=null&&contacter.faxnumberfor(Stringfax:contacter.faxnumber)flag&=insertFax(id,fax);

」ength>0)//插入电话if(contacter.mobilephone!=nuII&&contacter.mobilephone.length>0)for(Stringphone:contacter.mobilephone)flag&=insertPhoneNumber(id,phone);//插入坐机号码下载可编写if(contacter.homephonenumber!=null&&contacter.homephonenumber.length>0)for(Stringhomephone:contacter.homephonenumber)flag&=insertHomePhone(id,homephone);插入地点inti=0;if(contacter.addresses!=null&&contacter.addresses」ength>0)for(addressadd:contacter.addresses){flag&=insertAddress(id,i++,vinee,add.city,add.street,add.zip_code,add.coutry);}returnflag;}更新联系人*/publicvoidupdateContacter(Contactercontacter){//先删除记录removeContacter(String.valueOf(contacter.id));//再从头插入insertContacter(contacter);}/*删除联系人*/publicvoidremoveContacter(Stringid){dblnstance.delete(TABLE_EMAIL,"id=?",newString[]{id});dblnstance.delete(TABLE_FAX,"id=?",newString[]{id});dblnstance.delete(TABLE_HOMEPHONE,"id=?",newString[]{id});dblnstance.delete(TABLE_MOBLIEPHONE,"id=?",newString[]{id});dblnstance.delete(TABLE_QQ,"id=?",newString[]{id});dblnstance.delete(TABLE_CONTACTER,"id=?",newString[]{id});}数据库插入函数!anj;ujnjaj((san|E/V“uos」ocTQEiuo6)o|qEj_oj_son|E/\yosu!)41!(a6eiu|peaq'..aBeiuipeaq,,);ndson邱!(s;iun6UII>|JOM'“squnbuppo/w』ndson邱!(( )6uu;sorAepmJ!q'./epMPjqJjndsanieA!(aiueu>|O!u'..aiueu-^oiu,,);ndson邱!(aiueu[QiuEuJindson.专业.整理.邱!(aiueudno」b'..aiueu-dno」b“)inelsen邱!(P!'..pjJjndsanieA!( )san|E/\iuoiuooMau=san

邱son|BA

;ua;uog'si!un6

}(a6eiu|peaq;uiUII>|JOM6UU;S'AepqpiqajeQ'aiueu^oiu6uu;s'aiueu6uu;s'aiueudno

」b6uu;s'P!juiJuosjadpejuogpasuiueaiooqsiqnd滋Y薄峯uosjajpejuog

瞬//!as|ejujnjaj3S|3!anj;ujnjaj((sen|eA1dnOd9_3_iaVl)9|qeioisan|BAlJ9SU!)』!(aiueudno」b'..aiueu-dno」b“)inelsen|E/\!( )san|E/\iuoiuooMau=san邱son|BA;ua;uog(aiueudno」b6uu;s)dnojgpasuiueaiooqsiqnddno」b羽///*瞬滋Y薄出峯田*!anj;ujnjaj}3S|3!as|ejujnjaj(l,-==(san|E/\]|nu'aiueNQIQE^pasuiaouejsuiqp(6uo|))41}(son邱soniBAjuajuog'aiueNQIQE;6uu;s)a|qeioisan|E/\yosu!ueaiooqsiqndelsereturnfalse;}往Email表插入数据publicbooleaninsertEmail(intid,Stringemail){ContentValuesvalues=newContentValues( );values.put("id",id);values.put("email",email);下载可编写if(insertValuesToTable("Email",values))returntrue;elsereturnfalse;}往address表插入数据publicbooleaninsertAddress(intid,intadd_code,Stringprovinee,Stringcity,Stringstreet,Stringzip_eode,Stringcountry){ContentValuesvalues=newContentValues( );values.put("id",id);values.put("add_code",add_code);values.put("provinee",provinee);values.put("city",city);values.put("street",street);values.put("zip_code",zip_code);values.put("country",country);if(insertValuesToTable("address",values))returntrue;elsereturnfalse;}//往QQ表插入数据publicbooleaninsertQQ(intid,longQQ_number){.专业.整理.eanmsiringuesunewfax

ifrecrn-se>蛊f>a蒲conCDnfva-uesues.puf(=faxlnumber=faxIn^-(insertva-uesTspoTumber)ub=c八iffaxInumber)va_ues.puf(=id=id=ab-id-va-conCDnfva-ues(=boo-

va_ues.puf(=id=id=ues))va-ues.puf(=QQInumber=QQInumber=refurnfrup(insertva-uesTOTab-e(=QQ=va-ub=cub=caifues)

msifuesunewpues)

boo-eans

)

boo-ean)

conCDnfva-uesprefurnfrupe-se

refconCDnfva-ueso八urninsertphoneNumber(in二ues.puf(=phonelnumber=phonelnumber)frup八cashingva_ues.puf(=id=id=e-se

va_ues.puf(=id=id=va-uesunewinsertHomephoidcnmngva-ues.puf(=homelnumber=homelnumbconCDnfva-ues(=homelnumber)va-phonelnumber>B>^^recrnphonelnumber)recrnf(insertva-uesTOTab-e(=phonelnumber=va-fconCDnfva-uesava--(insertva

温馨提示

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

评论

0/150

提交评论