安卓课程设计手机通讯录系统.docx
- 文档编号:10692779
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:32
- 大小:1.55MB
安卓课程设计手机通讯录系统.docx
《安卓课程设计手机通讯录系统.docx》由会员分享,可在线阅读,更多相关《安卓课程设计手机通讯录系统.docx(32页珍藏版)》请在冰豆网上搜索。
安卓课程设计手机通讯录系统
荆楚理工学院
课程设计成果
学院:
计算机工程学院 班级:
11级计算机科学与技术本科3班
学生姓名:
王能 学号:
2011404010327
设计地点:
(单位)A5—201
设计题目:
手机通讯录系统
完成日期:
2013年6月20日
指导教师评语:
成绩(五级记分制):
教师签名:
目 录
1 前言 1
2 系统概述 2
2.1 需求分析 2
2.1.1 基本功能需求 2
2.1.2 系统用例分析 2
2.2 总体设计方案 5
2.2.1 系统模块关系与划分 5
3 系统详细分析 6
3.1 通讯录需求分析 6
3.1.1 增加、删除、编辑联系人 6
3.1.2 查找联系人 6
3.1.3 通讯功能 6
3.1.4 菜单功能 7
3.1.5 导入导出功能 7
3.2 数据库设计 7
3.1.3 Android数据库概述 7
3.1.3 数据库表详细设计 7
3.3 系统界面设计 8
4 系统编码实现 14
5 测试 19
6 参考文献 23
前 言
随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,WindowsMobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。
经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。
随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。
因此,移动终端的应用软件和需要的服务将会有很大的发展空间。
Google为此与2007年11月推出了一个专为移动设备设计的软件平台——Android。
Android是一套真正意义上的开发性的移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。
Android是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。
Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。
因此,它具有很大的市场发展潜力。
Android(Google公司)是Google开发的基于Linux平台的开源手机操作系统。
它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。
谷歌与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。
(1)优点:
具备触摸屏、高级图形显示和上网功能,界面强大,可以说是一种
融入全部Web应用的单一平台
(2)缺点:
由于时时刻刻都需要和网络进行连接,因此在手机的能耗方面控制就较差,导致待机能力不足;又由于其开源性,过分依赖开发商,缺少标准配置。
第1章 系统概述
需求分析
基本功能需求
(1)用户通过联系人功能可以保存联系人的详细信息,可以对联系人进行编辑、删除、拨打电话、发送短信可以根据索引条件搜索联系人。
(2)用户通过短信记录功能可以发送短信,删除短信记录。
(3)用户通过SD卡所储存信息向通讯录批量导入联系人信息。
(4)用户通过个人中心可以设置自己的详细信息,这样方便其他人了解自己,也可以将具有相同名字的联系人合并。
系统用例分析
图1-1显示了通话记录功能模块。
包括了联系人详细信息查看,清空通话记录,在选择一个条目后,可以对其进行拨打电话,发送短信功能的操作,也可以进行删除。
手机用户
图1-1通话记录模块用例图
图1-2显示了联系人功能模块的用例。
包括了查看联系人详细信息,编辑联系人信息,新建联系人,对选中的联系人,可以对其进行删除、拨打电话、发送短信的操作。
用户还可以进行联系人搜索,这样方便用户快速找到想找的联系人信息。
图1-2电话薄模块用例图
图1-3为个人中心模块中设置个人详细信息子模块的用例。
该模块的功能就是用户设置自己的个人基本信息。
手机用户
图1-3设置个人信息模块用例图
图1-4显示了联系人导入导出的用例图。
该模块的功能就是联系人的导入与导出。
图1-4联系人导入导出
总体设计方案
系统模块关系与划分
一个好的系统设计的步骤决定了程序是否能按照设计者的目的按时完成,是否能在规定的时间内按照设计者的要求高质量的完成程序必要的功能。
并且按照标准的设计步骤对程序进行调试,测试,以及后期的优化完善,使程序更加具有健壮性和可用性。
通过对通讯录功能、系统模块、用户需求方面进行全方位的分析制定开发流程。
采用标准的开发流程确定系统具有用户管理功能,联系人增删改功能,通讯功能,查找功能,备份等功能。
图1-5系统功能图
通过对系统的功能结构的分析,设计后系统运行流程是系统运行后用户将进入通讯录主界面,可以看到联系人,增加联系人,。
通过点击MENU界面的增加功能选项可以新增联系人,通过查找按钮可以对联系人进行姓名、号码的操作,通过选择联系人并点击删除键可以对联系人进行删除操作,通过菜单功能可以显示所有联系人、删除所有联系人、并备份SD卡功能。
在联系人详细信息界面点击MENU键弹出通讯功能框选择拨打电话按钮或者发信息发邮件按键,系统的运行流程图如1-6所示。
图1-6系统运行流程
第2章 系统详细设计
2.1通讯录需求分析
根据手机功能调查显示,近十成消费者都会使用手机通讯录功能,随着手机通讯录功能的不断加强与完善,手机通讯录的意义,已不仅仅像电话薄一样显示电话号码,而是向着个性化、人性化的方向发展。
通讯录从无到有,从英文到中文,经历了十几年的发展历程,今后的发展趋势就是从通讯录发展为名片夹,也就是在一个联系人之下有手机号码、固话号码、公司、住址、邮箱、备注等内容。
手机通讯录扮演着与用户直接交互并且提供服务的重要角色,它需要提供良好的用户体验,方便用户操作,接收用户的操作并把这些操作转换成相应的命令,采用用户活动的方式完成各个服务的逻辑流程。
其功能主要包括增加、删除、编辑联系人,查找联系人,通讯功能,菜单功能,导入导出功能。
2.1.1增加、删除、编辑联系人
点击通信录界面中的增加按钮,进入增加联系人界面。
输入联系人的基本信息,并可根据用户需求增加个性化信息如头像、姓名、手机号码、办公室电话、家庭电话、职务职称、单位名称、地址、邮政编码、Email、其他联系方式、备注这些信息,单击确认返回主界面。
点击通信录中一个已存在的联系人,进入联系人编辑界面,可修改联系人的资料或进行删除联系人操作,完成后退回到主界面。
对列表中联系人的标记,点击menu键弹出功能界面上的删除按键也可进行删除。
还可以在菜单上选择删除全部联系人来清空通讯录。
在删除联系人的过程中,系统将提示用户是否继续操作,若放弃操作,则联系人信息将继续保存。
2.1.2查找联系人
用户点击menu键打开底部菜单框,底部菜单框为查询联系人提供入口,进入通讯录的缺省页面为联系人列表,在列表中看到所有联系人的姓名、电话信息排列,用户点击查找按键输入联系人基本信息,通讯录显示所有符合查询条件的联系人列表,用户选择一个联系人进入联系人基本信息页面进行其他操作;查询完成,用户按返回键返回主界面。
2.1.3通讯功能
用户在通讯录选择联系人进入联系人详细信息界面,这时点击menu键打开通信功能框,选择打电话、发信息还是发邮件的功能进行操作。
2.1.4菜单功能
通过对menu按键的点击,显示底部菜单框,包含有增加、查找、删除、菜单、返回功能,菜单按键则包含显示所有、删除所有、备份SD卡等实用功能。
2.1.5导入、导出功能
基本流:
用户点击菜单进入导入导出界面,点击导出手机通信录出现文件系统选择保存路径,选择并且点击导出后在指定目录生成包含通信录信息的Excel文件,显示“通信录导出成功”并且返回至导入导出界面。
点击导入手机通信录出现文件系统选择需要导入的Excel文件,选中文件点击导入后将信息添加至手机通信录,显示导入成功并返回导入导出界面。
备选流:
点击进入导入导出界面,点击返回则返回软件主界面。
导出文件时存储卡空间不足,则提示错误并返回导出界面。
导入文件时打开无法识别的文件提示错误,返回导入文件界面。
2.2数据库设计
2.2.1Android数据库概述
Android自带了SQLite数据库,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
关于Sqlite的数据类型,你会惊讶:
Typelessness(无类型).对!
SQLite是无类型的.这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中,无论这列声明的数据类型是什么.对于SQLite来说对字段不指定类型是完全有效的。
2.2.2数据库表详细设计
对系统所需功能需求分析通过了设计确定了系统数据库中表的设计,该系统有一张表电话薄表,下面为表的详细设计。
表user:
字段名
类型
是否可为空
是否为主键
描述
Name
String
否
否
用户名
String
是
否
电子邮箱
Phone
int
否
是
联系电话
String
是
否
QQ号码
Company
String
是
否
公司
Birthday
Date
是
否
生日
2.3系统界面设计
2.3.1界面布局
Android的资源文件保存在/res的子目录中。
其中/res/drawable/目录中保存的是图像文件,/res/values目录中保存的是用来自定义字符串和颜色的文件,/res/xml目录中保存的是XML格式的数据文件。
所有在程序开发阶段可以被调用的资源都保存在这些目录中,在对界面进行绘制时要考虑到不同手机屏幕大小可能不一样,应尽量兼容大多数手机屏幕尺寸,使之显示无障碍。
增加界面绘制代码如下:
android="" android: orientation="vertical"android: layout_width="fill_parent" android: layout_height="fill_parent"android: background="@drawable/cbg"> id="@+id/button1"android: layout_width="wrap_content" android: layout_height="wrap_content"android: text="联系人列表" android: textColor="#0000ff"/> id="@+id/button2"android: layout_width="wrap_content" android: layout_height="wrap_content"android: text="查找联系人" android: textColor="#0000ff" /> id="@+id/button3" android: layout_marginBottom="20dip" android: text="增加联系人" android: textColor="#0000ff" android: layout_width="wrap_content" android: layout_height="wrap_content"/> 2.3.2增加联系人功能 在通讯录中最主要的功能操作,也就是联系人的添加操作的功能,在联系人增加界面中点击保存按钮实现对联系人信息的保存。 首先在user类中定义了一个user函数从表单中获取数据,建立数据库帮助类,打开数据库并将user保存到数据库中,增加界面如图2-1所示。 图2-1增加联系人界面 2.3.3删除联系人功能 通过光标选择删除的联系人,点击联系人然后选择删除可以删除联系人,并且在数据库中删除联系人,删除联系人功能如图2-2所示 2.3.4查找联系人功能 在查找功能实现的过程中,我先将搜索框中的内容转化为字符串形式,如果输入为空就设置显示所有联系人的列表,否则就建立一个数据库帮且类,在数据库中进行查找匹配,返回到list列表中,将整合的adapter和listview结合展现出来,并统计查找到的条数展现给用户。 2.3.5Menu底部菜单框功能 下面我们将介绍menu的触发方式,通过对menu的介绍,我们将了解menu功能设计,对menu键的使用首先要建立menu菜单,为每个菜单选项绑定了一个图标和文字,代码如下底部菜单如图2-3所示。 2.3.6通信功能 下面的程序定义了用户打电话,发邮件,发短信的功能,如下的代码主要是运用了android操作系统自定义接口,运用这些接口可以实现用户的打电话、发短信、发邮件的功能。 publicclassSendMessageextendsActivity{ privateTextViewnameText=null; privateEditTextmyEditText=null; privateEditTextEditText2=null; privateButtonmyButton=null; publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.sentmassage); Intentintent=getIntent(); Stringphone_num=intent.getStringExtra("phone_num"); Stringname=intent.getStringExtra("name"); System.out.println("----传过来的短信号码----: "+phone_num); System.out.println("----传过来的名字----: "+name); nameText=(TextView)findViewById(R.id.nameText); myButton=(Button)findViewById(R.id.sent_button); myEditText=(EditText)findViewById(R.id.phone_edit); EditText2=(EditText)findViewById(R.id.text_edit); nameText.setText(name+": "); //将名字显示 myEditText.setText(phone_num);//将号码填上 myButton.setOnClickListener(newOnClickListener(){ publicvoidonClick(Viewv){ Stringmobile=myEditText.getText().toString(); Stringcontent=EditText2.getText().toString(); SmsManagersms=SmsManager.getDefault(); PendingIntentsentintent=PendingIntent.getBroadcast(SendMessage.this,0,newIntent(),0); try{ if(content.length()>70){ List for(Stringmsg: msgs){ sms.sendTextMessage(mobile,null,msg,sentintent,null); Toast.makeText(SendMessage.this,"短信正在发送",2).show(); } }else{ sms.sendTextMessage(mobile,null,content,sentintent,null); } }catch(Exceptione){ e.printStackTrace(); } Toast.makeText(SendMessage.this,"短信发送成功",2).show(); } }); } 2.3.8数据库操作实现 为了实现联系人在数据库中的增加,删除,查找等操作,使用操作数据库的核心类android.database.sqlite.SQLiteDatabase。 使用SQLiteOpenHelper的子类来完成创建、打开数据库及各种对数据库的操作。 数据库的类继承函数,显示了数据库类的继承关系: packageahpu.wang.db; importandroid.content.Context; importandroid.database.sqlite.SQLiteDatabase; importandroid.database.sqlite.SQLiteOpenHelper; importandroid.database.sqlite.SQLiteDatabase.CursorFactory; //DatabaseHelper作为一个访问SQLite的助手类,提供两个方面的功能, //第一,getReadableDatabase(),getWritableDatabase()可以获得SQLiteDatabse对象,通过该对象可以对数据库进行操作 //第二,提供了onCreate()和onUpgrade()两个回调函数,允许我们在创建和升级数据库时,进行自己的操作 publicclassDatabaseHelperextendsSQLiteOpenHelper{ privatestaticfinalintVERSION=1; //在SQLiteOepnHelper的子类当中,必须有该构造函数 publicDatabaseHelper(Contextcontext,Stringname,CursorFactoryfactory, intversion){ //必须通过super调用父类当中的构造函数 super(context,name,factory,version); } publicDatabaseHelper(Contextcontext,Stringname){ this(context,name,VERSION); } publicDatabaseHelper(Contextcontext,Stringname,intversion){ this(context,name,null,version); } //该函数是在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabse对象的时候,才会调用这个方法 publicvoidonCreate(SQLiteDatabasedb){ System.out.println("createaDatabase"); //execSQL函数用于执行SQL语句 db.execSQL("createtableuser(namevarchar(20),phonetext,qqtext,mailtext,addresstext)"); } publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){ System.out.println("updateaDatabase"); } } 第3章 系统编码实现 3.1系统功能的实现代码 publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); imagebutton1=(ImageButton)findViewById(R.id.imagebutton1); imagebutton2=(ImageButton)findViewById(R.id.imagebutton2); imagebutton3=(ImageButton)findViewById(R.id.imagebutton3); imagebutton1.setOnClickListener(newMyOnClickListener()); imagebutton2.setOnClickListener(newMyOnClickListener()); imagebutton3.setOnClickListener(newMyOnClickListener()); } classMyOnClickListenerimplementsOnClickListener{ publicvoidonClick(Viewv){ switch(v.getId()){ caseR.id.imagebutton1: //直接跳转到联系人列表 Intentintent1=newIntent(); intent1.putExtra("Search_flag",0); intent1.setClass(MainActivity.this,Address_Book.class); startActivity(intent1); break; caseR.id.imagebutton2: //跳到查找联系人对话框,传个标志Search_flag到列 Intentintent2=new
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 手机 通讯录 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)