基于Android的手机通讯录设计书.docx

上传人:b****6 文档编号:4022573 上传时间:2022-11-27 格式:DOCX 页数:28 大小:715.85KB
下载 相关 举报
基于Android的手机通讯录设计书.docx_第1页
第1页 / 共28页
基于Android的手机通讯录设计书.docx_第2页
第2页 / 共28页
基于Android的手机通讯录设计书.docx_第3页
第3页 / 共28页
基于Android的手机通讯录设计书.docx_第4页
第4页 / 共28页
基于Android的手机通讯录设计书.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

基于Android的手机通讯录设计书.docx

《基于Android的手机通讯录设计书.docx》由会员分享,可在线阅读,更多相关《基于Android的手机通讯录设计书.docx(28页珍藏版)》请在冰豆网上搜索。

基于Android的手机通讯录设计书.docx

基于Android的手机通讯录设计书

武汉交通职业技术学院

课程设计报告

 

课程名称:

______________________

系别:

专业班级:

小组成员:

指导教师:

 

评阅成绩:

 

基于Andriod环境的通讯录系统设计

1.系统描述

1.1问题描述

学习完计算机相关专业课后,对计算机软硬件相关知识有了一定的了解;基于此,设计与实现一个在Android系统上运行的手机通讯管理软件,实现手机通讯录的基本功能,包括:

添加联系人、查看联系人、修改联系人、删除联系人、拨打电话、发送短信、查询联系人,以及联系人的导入导出功能即联系人的备份。

主要开发基于Android的手机的通讯管理软件。

以Java语言为基础,结合Android移动开发平台,并利用Android提供的SDK,实现在Android平台上运行的手机通讯录,方便广大手机用户更加便捷地对联系人的信息进行管理。

该手机通讯录面向所有的Android手机用户,为他们提供更实际便捷的手机服务,具有拨号、通讯记录等基本功能。

该通讯录的数据导出功能是该软件的一个特色,可以实现联系人数据导出到文本,实现数据备份。

大家生活当中经常遇到手机丢失,出现故障,和其他一些事故。

最担心的就是丢失手机里的电话号码。

1.2功能描述

此次设计的软件主要功能有:

[1]添加联系人:

可以添加联系人的基本信息,如:

姓名、电话、单位、住址等信息;

[2]查看信息:

查看某个联系人的具体信息;

[3]查询联系人:

根据输入的条件查询联系人;

[4]修改联系人的信息;

[5]数据备份与还原:

可以将整个通讯录备份到SD卡上,以防止信息丢失、抑可将备份的数据还原到通讯录中;

1.3数据需求

本程序的数据为通讯录中的联系人信息,这些信息有用户输入,并保存在Android的SQLite数据库中,主要有:

联系人的姓名、手机、家庭电话、公司电话、单位、家庭地址、电子邮件、备注等信息。

1.4设计意义

随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。

因此,移动终端的应用软件和需要的服务将会有很大的发展空间。

在Google和Android手机联盟的共同推动下,Android在众多手机操作系统中脱颖而出,受到广大消费者的欢迎。

手机通讯录作为手机的基本功能之一,每天我们都在频繁地使用着。

根据手机功能使用调查显示,有八成以上的消费者使用手机通讯录功能。

随着手机通讯录功能的不断加强与完善,手机通讯录对于人们的意义,已不仅仅像记事簿一样显示通讯地址,而是向着个性化、人性化的方向发展[4]。

通讯录从无到有,从英文到中文,经过了十几年的发展历程,今后的发展趋势就是从通讯录发展为名片夹,也就是在一个人名下,可以存储座机、手机、单位、地址、电子邮件等内容。

这种名片夹在电话薄的基础上,大大丰富了内容,同时结构也发生了革命性变化,而且随着手机的发展,相信更优秀的通讯录会越来越受到社会各层人士的喜爱。

2.组员分工

尹煜:

UI界面设计,数据类设计。

余迪:

Main(Activity)设计,AddNew(Activity)设计。

王荔:

UserDetail(Activity)设计,MainPrivacy(Activity)设计。

3.需求分析

3.1前期调研

通过对已有的手机通讯录的研究,对其基本业务流程进行分析,确定出基本的处理需求:

用户的行为:

增、删、改、查、备份与还原。

Ø增:

增加联系人的基本信息;

Ø删:

删除已有联系人的基本信息;

Ø改:

修改已有联系人的信息;

Ø查:

查询联系人的基本信息;

Ø备份与还原:

备份该通讯录数据库中的数据到SD卡上,或者从SD卡上还原备份的数据。

3.2数据流图

根据“功能分解,逐步求精”的原则,此次需求分析的数据流图主要分为三层:

顶层数据流图:

确定系统的输入与输出、第一层数据流图:

对系统进行第一层功能分解,确定系统的主要工作、第二层数据流图:

确定系统详细的工作流图

顶层数据流图:

 

底层数据流图:

3.3数据字典

数据流图表达了数据和处理的关系,数据字典则是系统中的各类数据描述的集合,是进行详细的数据手机和数据分析做得到的主要成果,可以自己设计一套适合阅读的图表。

本设计的数据字典有:

联系人的信息,具体如下:

4.系统设计

4.1总体设计

Android手机通讯管理软件主要功能模块包括:

联系人添加、联系人查看、联系人编辑、联系人删除、联系人查找、呼叫、发送短信、数据备份与还原、个人空间等,如图5-1所示:

图5-1总体设计图

4.2数据库表结构

4.2.1实体

根据需求分析的数据流图,对其进行自底向上的分析。

抽象出设计视图,集成局部视图,得到全局的概念结构。

本数据库的实体为:

联系人信息(头像,姓名,手机号码,办公室号码,家庭电话,职务职称,单位名称,地址,邮编,Email,其他联系方式,备注)

4.2.2系统E-R图

根据E-R的设计过程,根据初始数据流图设计初始的E-R图,而后将各分E-R图集成,消除冲突、消除冗余,得到最初的E-R图,对其进行分析和根据规范化理论进行规范化,集成视图,最后形成基本的E-R图。

其过程如图所示:

联系人实体E-R图

图5-2联系人信息实体E-R图

4.2.3数据库表设计

根据上述联系人实体E-R图,设计出数据库的表,如表5-1所示,

表5-1user表的设计

字段名

数据类型

是否为空

约束条件

备注

_id

int

非空

主键

自动增量

name

Text

非空

mobilephone

Text

可以为空

officephone

Text

familyphone

Text

address

Text

othercontact

Text

email

Text

position

Text

company

Text

zipcode

Text

remark

Text

imageid

int

privacy

int

隐私用户1

普通用户0

4.3输入/输出设计

在这个系统中,通过对系统的分析,可以识别出参与者:

用户。

对于用户而言,通讯录上按钮、菜单、输入框是用户向系统输入的操作请求的输入设备,GUI与是用于向用户输出信息的输出设备。

图5-3通讯录的参与者

事件是来自人操作的重要的消息,表5-2给出了通讯录系统中可能发生的所有事件。

表5-2系统响应及其执行结果

事件

系统响应

执行结果

1

从手机屏幕点击软件系统

调用函数入口,启动系统,进入该软件

进入该软件,显示联系人列表

2

点击"Menu",选择添加联系人

调用添加函数

进入添加界面

3

点击其中一个联系人

调用查看/修改某个联系人函数

进入联系人详细界面

4

在联系人详细界面点击"Menu",可对联系人进行发送短信

调用系统发送短信函数

进入发送短信界面

5

在联系人详细界面点击"Menu",可对联系人进行拨打电话

调用系统拨打电话函数

进入呼叫联系人界面

6

在联系人详细界面点击"Menu",可对联系人进行修改

调用修改函数

修改联系人信息

7

在联系人详细界面点击"Menu",可对联系人进行删除

调用删除函数

调用删除函数

8

在联系人列表界面点击"Menu",选择查找

调用查找联系人函数

显示用户查找结果

9

在联系人列表界面点击"Menu",选择退出

调用退出函数

退出通讯录软件

10

在联系人列表界面点击"Menu",选择菜单

调用菜单函数

先是菜单界面

11

在菜单界面选择显示所有人信息

调用显示函数

显示所有人信息

12

在菜单界面选择删除所有人信息

调用删除函数

删除所有人信息

13

在菜单界面选择备份所有人信息

调用备份函数

备份信息到SD卡

14

在菜单界面选择还原所有人信息

调用还原函数

进入还原界面,还原信息到数据库

15

在菜单界面选择个人空间

调用私人空间类

进入私人界面

其中的输入包括:

用户选择的上述按钮、菜单,还包括输入框的内容,包括:

联系人头像、联系人姓名、手机号、家庭电话、单位电话、单位名、职位、住址、邮编、备注等信息。

其中输出包括:

根据用户的选择输出的相应内容,如:

联系人列表显示信息、联系人详细信息等。

4.4处理过程设计

4.4.1业务流程图

用户进入手机通讯管理软件后,会看到联系人列表界面。

联系人列表界面主菜单中包括:

添加、搜索、删除、菜单、退出;其中菜单又包括:

显示所有联系人、删除所有联系人、备份信息到SD卡、还原数据到通讯录、个人空间、退出。

点击添加联系人,则进入联系人添加界面,添加成功后返回联系人列表界面。

点击搜索菜单,则进入联系人搜索界面,输入联系人的全名或一个字,即可查找到相关联系人,点击联系人会进入联系人查看界面,可以对联系人进行编辑、删除、拨打电话、发送短信,,长按某分联系人,可以选中该联系人,点击删除,会删除已经标记的联系人。

点击菜单,可进入菜单界面:

点击所有联系人,可以显示所有人信息、点击删除所有联系人,可以删除所有人信息、点击备份信息到SD卡,可以将数据库数据备份到SD卡、点击还原数据到通讯录,可以从SD卡上备份的数据还原到数据库、点击个人空间,输入密码并进入个人操作界面、点击退出,退出到主界面。

该软件的业务流程如图5-4所示:

图5-4系统业务流程图

4.4.2系统Activity设计

根据Android的Activity设计原则,设计出整个系统的界面,如图5-5所示:

图5-5系统Activity设计图

4.4.3功能处理设计

1.浏览联系人

[1]用例名称:

浏览联系人

[2]用例描述:

浏览联系人列表

[3]角色:

手机用户

[4]前置条件:

通讯录中已有联系人

[5]后置条件:

显示出所有联系人

[6]基本路径

A.打开通讯录

B.系统查询数据库

C.显示出联系人列表

2.查看联系人

[1]用例名称:

查看联系人

[2]用例描述:

查看联系人信息

[3]角色:

手机用户

[4]前置条件:

通讯录中已有联系人

[5]后置条件:

给出联系人信息

[6]基本路径

A.查看联系人信息

B.给出相关信息

3.编辑联系人

[1]用例名称:

编辑联系人

[2]用例描述:

编辑联系人信息

[3]角色:

手机用户

[4]前置条件:

通讯录中已有联系人

[5]后置条件:

修改联系人信息

[6]基本路径

A.输入要修改的新信息

B.修改联系人信息

4.删除联系人

[1]用例名称:

删除联系人

[2]用例描述:

删除联系人

[3]角色:

手机用户

[4]前置条件:

通讯录中已有联系人

[5]后置条件:

删除联系人

[6]基本路径

A.选中联系人,选择删除操做

B.询问是否确定删除操作

C.删除联系人

上述三种业务操作的流程图

图5-6查看/修改/删除流程图

5.查询联系人

[1]用例名称:

查询联系人

[2]用例描述:

查询联系人信息

[3]角色:

手机用户

[4]前置条件:

通讯录中已有联系人

[5]后置条件:

给出联系人信息

[6]基本路径

A.输入查找的数据

B.查询列表根据数据动态现实出信息

点击Menu菜单,选择查找联系人跳转SearchContactActivity,在查找联系人界面中,TextView被监听,根据TextView输入的数据,进行查询后在List中显示。

图5-7查询联系人流程图

6.菜单操作

[1]用例名称:

菜单操作

[2]用例描述:

选择菜单功能

[3]角色:

手机用户

[4]前置条件:

单击菜单按钮

[5]后置条件:

进入菜单界面

[6]基本路径

A.单击菜单按钮

B.选择菜单的功能

图5-8菜单操作流程图

4.4.4系统界面设计

本系统一共有11个页面文件,主要的界面如下:

Main.xml文件,如图5-9所示,显示已经存储的联系人数据数据:

图5-9系统主界面

AddNew.xml文件,如图5-10所示,显示添加联系人的选项,完成联系人的添加:

图5-10添加联系人界面

Main-menu_grid.xml显示弹出的主菜单的对话

图5-11主菜单界面

 

5.详细设计

完成上述的操作后,便是进行代码的编写和调试,使用Java语言和AndroidAPI进行程序设计。

5.1开发环境

开发软件:

Eclipse、JDK1.7、AndroidSDK、ADT

开发环境:

Windows7

虚拟设备:

AndroidAVD

开发版本:

Android2.1

 

5.2程序设计

5.2.1数据类设计

用户User类

如图6-1所示,主要用于暂存页面获得的信息,然后再存入数据库中。

图6-1User类

DBhelper类

如图6-2所示,主要完成数据库的表的创建和数据的添加删除以及备份的功能,以下是各个具体的函数和变量。

图6-2DBhelper类

 

insert(User)函数实现:

完成数据的插入,并根据插入是否成功,返回一个长整型的值

getAllUser(boolean)的实现:

完成数据的显示,使用SQLiteDatabase.query()方法,利用cursor对象,一一取出字段的值,放入一个hasp表中,最后存入数组列表中,返回给数组列表。

modify(User)函数的实现:

使用user类中的字段,更新数据库

delete(int)函数的实现:

根据数据的id进行单个数据的删除

deleteAll(int)函数的实现:

删除所有数据

getTotalCount()函数的实现:

使用cursor对象getint()方法得到数据的个数

getUsers(Stringboolean)函数的实现:

完成数据的查找,使用SQL语句中的模糊查找,然后放入数组列表,进行返回。

deleteMarked(ArrayList)函数的实现:

删除被标记多个数据的数据,

backupData(boolean)函数的实现:

新建一个字符串,把当前所有数据的值写成一个insert语句存入字符串中,以便备份的时候能够插入到数据库中

saveDataToFile(string,boolean)函数的实现:

把插入字符串写到zpcontacData下的文件中

publicvoidbackupData(booleanprivacy){

StringBuffersqlBackup=newStringBuffer();

Cursorcursor=null;

if(privacy){

cursor=dbInstance.query(DB_TABLENAME,

newString[]{"_id","name","mobilephone","officephone","familyphone","address","othercontact","email","position","company","zipcode","remark","imageid,privacy"},

"privacy=1",null,null,null,null);

}else{

cursor=dbInstance.query(DB_TABLENAME,

newString[]{"_id","name","mobilephone","officephone","familyphone","address","othercontact","email","position","company","zipcode","remark","imageid,privacy"},

"privacy=0",null,null,null,null);

}

while(cursor.moveToNext()){

sqlBackup.append("insertinto"+DB_TABLENAME+"(name,mobilephone,officephone,familyphone,address,othercontact,email,position,company,zipcode,remark,imageid,privacy)")

.append("values('")

.append(cursor.getString(cursor.getColumnIndex("name"))).append("','")

.append(cursor.getString(cursor.getColumnIndex("mobilephone"))).append("','")

.append(cursor.getString(cursor.getColumnIndex("officephone"))).append("','")

.append(cursor.getString(cursor.getColumnIndex("familyphone"))).append("','")

.append(cursor.getString(cursor.getColumnIndex("address"))).append("','")

.append(cursor.getString(cursor.getColumnIndex("othercontact"))).append("','")

.append(cursor.getString(cursor.getColumnIndex("email"))).append("','")

.append(cursor.getString(cursor.getColumnIndex("position"))).append("','")

.append(cursor.getString(cursor.getColumnIndex("company"))).append("','")

.append(cursor.getString(cursor.getColumnIndex("zipcode"))).append("','")

.append(cursor.getString(cursor.getColumnIndex("remark"))).append("',")

.append(cursor.getInt(cursor.getColumnIndex("imageid"))).append(",")

.append(cursor.getInt(cursor.getColumnIndex("privacy")))

.append(");").append("\n");

}

saveDataToFile(sqlBackup.toString(),privacy);

}

restoreData(string)函数的实现:

载入备份文件,读出插入字符串,写到数据库中,完成备份

findFile(string)函数的实现:

判断文件是否存在,能否备份

MyDBHleper类:

继承于SQLiteOpenHelper,主要有俩个函数,onCreate()和onUpgrade()

onCreate()函数主要用于数据库中表的创建。

onUpgrade()函数主要用于数据库的版本不对应,重新创建表。

5.2.2Main(Activity)设计

如图6-3所示,显示了Main(Activity)涉及的变量以及调用和重写的函数:

图6-3Main(Activity)

onCreate(Bundle)为主函数,创建ListView对象,将数据与adapter集合起来,显示给用户看,然后响应ListView的点击事件,跳转用户详细信息页面。

onActivityResult()函数的实现:

此函数主要是判断是从那些页面跳转到主页面,并刷新主页面

onKeyDown(intKeyEvent)的函数实现:

响应点击Menu按钮时的事件,用于设置底部菜单是否可见

loadBottomMenu()函数的实现:

主菜单的点击事件的响应,实现各种功能模块

getMenuAdapter(string[])函数的实现:

将图片和文字设置在一个集合中,组成一个菜单

5.2.3AddNew(Activity)设计

如图6-4所示,AddNew(Activity)用到的变量以及函数

图6-4AddNew(Activity)

 

onCreate()函数的实现:

实现头像的选择,数据的填写。

loadImage()函数实现:

使用gallery控件和imageswith实现头像的加载和选择

ImageAdapter类的实现

自定义头像适配器

publicViewmakeView(){

ImageViewview=newImageView(this);

view.setBackgroundColor(0xff000000);

view.setScaleType(ScaleType.FIT_CENTER);

view.setLayoutParams(newImageSwitcher.LayoutParams(90,90));

returnview;

}

initImageChooseDialog()函数实现:

完成图像的选择对话框

5.2.4UserDetail(Activity)设计

函数基本同AddNew(Activity),增加了修改按钮的点击事件和删除按钮的点击事件。

增加的函数有:

loadUserData():

获得控件,为控件赋值

setEditTextAble():

把页面中的控件可修改

setColorToBlack()

设置显示的字体颜色为黑色

setColorToWhite()

设置显示的字体颜色为白色

setEditTextDisable()

把设置控件不可修改

privatevoidmodify(){

数据更新函数

delete()

数据删除函数

onCreateOptionsMenu(Menu)的实现:

通讯菜单的实现,完成联系人的打电话,发短信,发邮件功能

5.2.5MainPrivacy(Activity)设计

如图6-5所示,MainPrivacy(Activity)涉及到的变量以及函数

图6-5MainPrivacy(Activity)类图

用到的函数:

onCreate();

onActivityResult();

onKeyDown(int,KeyEvent);

loadBottomMenu();

loadMainMenuDialog();

loadSearchLinearout();

getMenuAdapter(String[],int[]);

onDestroy();

函数与Main(Activity)的函数相同,不再赘述。

图7-1添加联系人测试图

 

 

6设计总结

6.1设计特点

学习完计算机等

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1