《基于Android平台的个性通讯录设计.doc》由会员分享,可在线阅读,更多相关《基于Android平台的个性通讯录设计.doc(48页珍藏版)》请在三一办公上搜索。
1、基于Android平台的个性通讯录软件工程 刘洋 指导老师 王敏 穆斌【摘要】 Android是一种以Linux为基础的开源代码操作系统,主要应用于手机,因为其良好的人机交互能力和能够安装使用众多功能各异的应用软件而深受人们喜爱,本文就介绍其基于Android 2.1版本开发的一个“个性通讯录”。根据当下人们的使用习惯和实际需求,本文对通讯录提出了新的构想和设计,并在这样的基础上,构建实现了该通讯录.【关键词】 Android Linux 手机 通讯录【Abstract】 Android is a sort of open source code operating system that b
2、ase on the Linux, and mainly used by mobile phone. It is so popular because of the good human-machine interaction capability, and also there are all kinds of functional applications software can be installed that through by this operating system, this article will introduces a kind of contacts that
3、bases on the Android 2.1 version., this article pointed out an new idea and design for contacts due to the peoples operating habits and particular demands, and on such a basis to construct and achieve this contacts.function to ensure the security and stability of the system effectively.【Keywords】 An
4、droid Linux mobile contacts目 录1绪论41.1课题背景41.2相关技术的基础知识41.2.1手机操作系统的发展现状41.2.2云计算和云储存概述51.2.3数据挖掘技术概述61.3本文主要研究工作和章节安排72Android的架构概述及开发环境搭建92.1Android的架构描述92.2Android开发环境的搭建102.2.1Android软件开发包下载102.2.2其他注意事项102.2.3环境安装与搭配112.3本章小结153需求分析与系统总体设计163.1项目概述163.1.1主要开发内容163.1.2项目开发要求163.2需求分析163.2.1基本功能需求
5、163.2.2系统用例分析173.3总体设计方案223.3.1系统模块关系与划分223.3.2开发技术、开发工具和开发环境233.4本章小结234系统详细设计244.1通讯录需求分析244.1.1通话记录模块244.1.2短信记录模块254.1.3电话薄模块274.1.4个人中心模块284.2数据库设计304.2.1Android数据库概述304.2.2数据库表详细设计304.3本章小结305系统实现315.1部分功能模块实现与截图展示315.2本章小结386总结和展望396.1毕业设计完成的任务396.2收获和总结396.3展望未来39参考文献41致 谢421 绪论1.1 课背题景随着移动通
6、信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,Windows Mobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开发性很强的平台。经过多年的发展,第三代数字通信(3G)技术活动了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。Google为此与2007年11月推出了一个专为移动设备设计的软件平台Android。Android 是一套真正意义上的开发性的移动设备综合平台,它
7、包括操作系统、中间件和一些关键的平台应用。Android 是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台本身)的创新,又有助于降低开发成本,还可以是运营商能非常方便地制定自己的特色化的产品。因此,它具有很大的市场发展潜力。根据中国互联网信息中心(CNNIC)发布的消息称,截止2011年底,中国网民数量达到了惊人的5.13亿,正式迈入了“5亿网民”时代,其中手机网民达到3.4亿,手机上网成为网络介入的一个重要发展方向。1.2 相关技术的基础知识1.2.1 手机操作系统的发展现状Symbian OS(塞班) 由诺
8、基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发手机操作系统。(1) 优点:过去Symbian系统一直占据智能系统的市场霸主地位,系统能力和易用性等各方面很强!(2) 缺点:一般配置的机型反映较慢,对主流的媒体格式的支持性较差,不同版本的软件兼容性不好。(3) 支持厂商:芬兰诺基亚(英国索尼爱立信、韩国三星已宣布退出塞班阵营)。Windows Mobile(微软) Microsoft 用于 Pocket PC 和 Smartphone 的软件平台,此系统将熟悉的 Windows 桌面扩展到了个人设备中。(1) 优点:界面和操作都和电脑上的Windo
9、ws十分接近,对于机友来说十分熟悉又上手;各种保存在电脑或手机里的信息、资料可以轻松实现共享;有大量的应用软件可供用户选择。(2) 缺点:占用系统资源高、容易系统崩溃(3) 支持厂商:中国台湾HTC、韩国三星电子、韩国LG、英国索尼爱立信、阿联酋i-mate,目前各大山寨厂商也同样生产着大量WM产品。Mac OS(苹果iPhone系统) 苹果机专用系统,是基于Unix内核的图形化操作系统;一般情况下在普通pc上无法安装的操作系统。(1) 优点:全触摸设计,真的是一次手机革命,娱乐性能强,第三方软件多(2) 缺点:系统封闭(3) 支持厂商:苹果公司Android(Google公司) Androi
10、d 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌与开放手机联盟合作开发了 Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达和 T-Mobile 在内的 30 多家技术和无线应用的领军企业组成。(1) 优点:具备触摸屏、高级图形显示和上网功能,界面强大,可以说是一种融入全部Web应用的单一平台(2) 缺点:由于时时刻刻都需要和网络进行连接,因此在手机的能耗方面控制就较差,导致待机能力不足;又由于其开源性,过分依赖开发商,缺少标准配置。1.2.2 云计算和云
11、储存概述(1) 云计算云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。它意味着计算能力也可作为一种商品通过互联网进行流通。云计算的最大特点就是通过使计算分布在大量的分布式计算机上,而
12、非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。(2) 云储存云存储是在云计算 (cloud computing)概念上延伸和发展出来的一个新的概念。云计算是是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,是透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经计算分析之后将处理结果回传给用户。通过云计算技术,网络服务提供者可以在数秒之内,处理数以千万计甚至亿计的
13、信息,达到和”超级计算机”同样强大的网络服务。云储存最大的作用是通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。1.2.3 数据挖掘技术概述数据挖掘,在人工智能领域,习惯上又称为数据库中的知识发现(Knowledge Discovery in Database, KDD), 也有人把数据挖掘视为数据库中知识发现过程的一个基本步骤。知识发现过程由以下三个阶段组成:(1)数据准备,(2)数据挖掘,(3)结果表达和解释。数据挖掘可以与用户或知识库交互。数据挖掘是通过分析每个数据,从大量数据中寻
14、找其规律的技术,主要有数据准备、规律寻找和规律表示3个步骤。数据准备是从相关的数据源中选取所需的数据并整合成用于数据挖掘的数据集;规律寻找是用某种方法将数据集所含的规律找出来;规律表示是尽可能以用户可理解的方式(如可视化)将找出的规律表示出来。图1-1数据挖掘的任务:是关联分析、聚类分析、分类、预测、时序模式和偏差分析等。 数据挖掘的方法主要有七种,下面简要介绍下:(1) 神经网络方法神经网络由于本身良好的鲁棒性、自组织自适应性、并行处理、分布存储和高度容错等特性非常适合解决数据挖掘的问题,因此近年来越来越受到人们的关注。典型的神经网络模型主要分3大类:以感知机、bp反向传播模型、函数型网络为
15、代表的,用于分类、预测和模式识别的前馈式神经网络模型;以hopfield的离散模型和连续模型为代表的,分别用于联想记忆和优化计算的反馈式神经网络模型;以art模型、koholon模型为代表的,用于聚类的自组织映射方法。神经网络方法的缺点是黑箱性,人们难以理解网络的学习和决策过程。 (2) 遗传算法遗传算法是一种基于生物自然选择与遗传机理的随机搜索算法,是一种仿生全局优化方法。遗传算法具有的隐含并行性、易于和其它模型结合等性质使得它在数据挖掘中被加以应用。 (3) 决策树方法决策树是一种常用于预测模型的算法,它通过将大量数据有目的分类,从中找到一些有价值的,潜在的信息。它的主要优点是描述简单,分
16、类速度快,特别适合大规模的数据处理。最有影响和最早的决策树方法是由quinlan提出的著名的基于信息熵的id3算法。它的主要问题是:id3是非递增学习算法;id3决策树是单变量决策树,复杂概念的表达困难;同性间的相互关系强调不够;抗噪性差。针对上述问题,出现了许多较好的改进算法,如 schlimmer和fisher设计了id4递增式学习算法;钟鸣,陈文伟等提出了ible算法等。 (4) 粗集方法粗集理论是一种研究不精确、不确定知识的数学工具。粗集方法有几个优点:不需要给出额外信息;简化输入信息的表达空间;算法简单,易于操作。粗集处理的对象是类似二维关系表的信息表。目前成熟的关系数据库管理系统和
17、新发展起来的数据仓库管理系统,为粗集的数据挖掘奠定了坚实的基础。但粗集的数学基础是集合论,难以直接处理连续的属性。而现实信息表中连续属性是普遍存在的。因此连续属性的离散化是制约粗集理论实用化的难点。现在国际上已经研制出来了一些基于粗集的工具应用软件,如加拿大regina大学开发的kdd-r;美国kansas大学开发的lers等。 (5) 覆盖正例排斥反例方法它是利用覆盖所有正例、排斥所有反例的思想来寻找规则。首先在正例集合中任选一个种子,到反例集合中逐个比较。与字段取值构成的选择子相容则舍去,相反则保留。按此思想循环所有正例种子,将得到正例的规则(选择子的合取式)。比较典型的算法有michal
18、ski的aq11方法、洪家荣改进的aq15方法以及他的ae5方法。 (6) 统计分析方法在数据库字段项之间存在两种关系:函数关系(能用函数公式表示的确定性关系)和相关关系(不能用函数公式表示,但仍是相关确定性关系),对它们的分析可采用统计学方法,即利用统计学原理对数据库中的信息进行分析。可进行常用统计(求大量数据中的最大值、最小值、总和、平均值等)、回归分析(用回归方程来表示变量间的数量关系)、相关分析(用相关系数来度量变量间的相关程度)、差异分析(从样本统计量的值得出差异来确定总体参数之间是否存在差异)等。 (7) 模糊集方法即利用模糊集合理论对实际问题进行模糊评判、模糊决策、模糊模式识别和
19、模糊聚类分析。系统的复杂性越高,模糊性越强,一般模糊集合理论是用隶属度来刻画模糊事物的亦此亦彼性的。李德毅等人在传统模糊理论和概率统计的基础上,提出了定性定量不确定性转换模型-云模型,并形成了云理论。1.3 本文主要研究工作和章节安排第一章主要讲述了项目的来源、项目的目的和研究意义,并对本系统开发的一些基本知识进行了介绍。余下各个章节安排如下:第二章对android开发环境的搭配进行了详细的说明。第三章是关于系统的详细设计,包括各个功能模块的设计。第四章说明了关于数据库的设计。第五章主要对系统的部分功能通过截图展示,还贴出了相应的主要代码实现。第六章对本次毕设进行了总结和展望。2 Androi
20、d的架构概述及开发环境搭建 2.1 Android的架构描述Android是一个包括操作系统,中间件以及一些重要应用程序的专门针对移动设备的层次结构的软件集。作为一个层次结构的软件集,一定一个层次的系统架构,Android的架构图如下图所示:图2-1分析:第一层:Linux操作系统和驱动(Linux kernel),由C语言实现。Android核心系统服务依赖于Linux2.6内核,包括:安全性、内存管理、进程管理、网络协议、驱动模型。Linux内核也作为硬件和软件栈之间的抽象层。除了标准的Linux内核外,Android还增加了内核的驱动程序:Binder(IPC)驱动、显示驱动、输入设备驱
21、动、音频系统驱动、摄像头驱动、WiFi驱动、蓝牙驱动、电源管理。第二层:本地框架和Java运行环境(LIBRARIES 和 ANDROID RUNTIME)由C/C+实现。包含C/C+库,被Android系统中不同组件使用,它们通过Android应用程序框架为开发者进行服务。系统C库:(libc)从BSD继承过来的标准的C系统函数库,专门是为基于嵌入式Linux的设备定制的库。多媒体库:基于PackerVideo的OpenCore;该库支持多种常用的音频、视频格式回放和录制,支持多种媒体格式的编和解码格式。Suface Manager:显示子系统管理器,并且为多个应用程序提供2D和3D图层的无
22、缝融合。LibWebCore:一个最新的Web浏览器引擎,支持Android浏览器,以及一个可嵌入式的Web视图。SGL:Skia图形库,底层的2D图形引擎。3D libraries:基于OpenGL ES1.0 API的实现;该库可以使用硬件3D加速(如果可用),或者使用高度优化的3D软加速。FreeType:位图(bitmap)和矢量(vector)字体显示。Android运行环境(ANDROID RUNTIME):提供了Java编程语言核心库的大多数功能,由Dalvik Java虚拟机和基础的Java类库组成。Dalvik是Android中使用的Java虚拟机,每个Android应用程序
23、都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个可以同时高效运行多个虚拟机实例的虚拟系统。执行后缀名为.dex的Dalvik可执行文件,该格式的文件针对小内存使用做出了优化。同时虚拟机是基于寄存器的,所有的类都是有Java编译器编译,然后通过SDK中的“dx”工具转化为.dex格式由虚拟机执行。Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。第三层:Android应用框架(ANDROIDFRAMEWORK)在Android系统中,开发人员也可以完全访问核心应用程序所使用的API框架。包含的框架入上图(不在陈述)第四层:An
24、droid应用程序(APPLICATIONS)注意:Android应用程序都是有Java语言编写的。用户开发的Android应用程序和Android的核心应用程序是同一层次的,它们都是基于Android的系统API构建的。2.2 Android开发环境的搭建工欲善其事必先利其器,下面介绍一下android开发环境的配置。2.2.1 Android软件开发包下载(1) JDK4.0 请到网址 下载。(2) Eclipse3.4(Europe) 请到网址 http:/www.eclipse.org/downloads/ 下载。 Eclipse IDE for java Developers。(3)
25、 Android SDK1.5 请到网址 下载。(4) APT插件。2.2.2 其他注意事项Android的Eclipse插件安装需注意,Eclipse可以对应的网站下载安装,如果通过网络远程安装不成功,可以下载到本地安装。2.2.3 环境安装与搭配(1) 安装JDK将下载好的JDK安装好以后,设置环境变量步骤如下:1) 我的电脑-属性-高级-环境变量-系统变量中添加以后环境变量:2) JAVA_HOME值为:D:Program FilesJavajdk1.6.0_18 (你安装JDK的目录)3) 在开始追加%JAVA_HOME%bin;安装完成后,可以检查JDK是否安装成功。打开cmd窗口,
26、输入java-version查看JDK版本信息,出现以后画面表示安装成功。图2-2(2) 安装Eclipse将根据上面给的地址下载后安装即可,也可以选择下载绿色版,解压即可使用。(3) 安装Android JDK运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的Force https:/.这项,再点击Available Packages。选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包。在用户变
27、量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:AndroidDevelopandroid-sdk-windowstools)。图2-3点击“确定”重新启动计算机,重启之后进入cmd窗口,检查SDK是不是安装成功,运行android h ,如果有类似下面的输出,表示安装成功。图2-4(4) 安装ADT1) 打开Eclipse IDE,进入菜单中的”help”-”Install New Software”。2) 点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http:/dl-图2-53) 确定返回后,在wor
28、k with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。 如下图所示:图2-6完成之后就按提示一步一步next:i、选择Window Preferences.ii、在左边的面板选择Android,然后在右侧点击Browse.并选中SDK路径,本机为:D:AndroidDevelopandroid-sdk-windowsiii、点击Apply、OK。配置完成。(5) 创建AVD为使Android应用程序可以在模拟器上运行,必须创建AVD。在Eclipse中
29、。选择Windows Android SDK and AVD Manager。点击左侧面板的Virtual Devices,再右侧点击New。填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值。点击Create AVD即可完成创建AVD。注意:如果你点击左侧面板的Virtual Devices,再右侧点击New,而target下拉列表没有课选项时,这时候你:1) 点击右侧面板的Available Packages,在右侧勾选https:/dl-图2-72) 然后点击Install Selected按钮,接下来就是按提示做就行了要做这两
30、步,原因是在1.3、Android SDK安装中没有安装一些必要的可用包(Available Packages)。(6) Hello World通过File - New - Project 菜单,建立新项目Android Project。 然后填写必要的参数,如下图所示:(注意这里我勾选的是Google APIs,你可以选你喜欢的,但你要创建相应的AVD。图2-8点击Finish后,点击Eclipse的Run菜单选择Run Configuration。选择“Android Application”,点击在左上角(按钮像一张纸上有个“+”号)或者双击“Android Application”,
31、有个新的选项“New_configuration”(可以改为我们喜欢的名字)。在右侧Android面板中点击Browse,选择HelloWorld在Target面板的Automatic中勾选相应的AVD,如果没有可用的AVD的话,你需要点击右下角的Manager,然后新建相应的AVD。如下图所示:图2-9然后点Run按钮即可,运行成功的话会有Android的模拟器界面,如下图所示图2-10出现以上画面后,你就可以开始开发属于自己的Android程序了。2.3 本章小结本章首先对Android的架构进行了全面的介绍,使读者能够对Android内部有了基本的认识和理解。工欲善其事必先利其器,然后全
32、面详细的介绍了Android开发平台的搭建工作,使读者在开发的时候,能够顺利的搭建好开发环境。3 需求分析与系统总体设计3.1 项目概述3.1.1 主要开发内容本系统开发大体上分为前用台用户模块和后台云端管理模块。一、 前台用户模块主要是面向用户的,该模块又细分为通话记录模块、短信记录模块、电话薄模块和个人中心模块,其中个人中心模块又有找朋友、联系人去重、防打扰、联系人分享、云同步五个子模块。用户可以根据该前台来实现基本的通讯录功能,包括查看最近通话记录,接发送短信,添加、删除、编辑联系人,还可以将拥有相同名字的用户合并。同时,各个用户还可以设置防打扰的功能,以屏蔽恶意骚扰或者广告信息,用户还
33、能将自己的好友分享给别人,这样可以增加彼此的朋友圈,此外,还提供了找朋友的方式,来增加用户的社交面。二、 后台云端管理模块云服务器是用谷歌提供的-Google Storage,主要是面向管理员使用的,管理员通过该模块对用户存储在云端的数据进行维护、管理,对数据库进行备份。整个系统由本人一人完成,包括系统的需求分析、总体设计、各个模块的设计、数据库的设计以及系统的整合和运行测试等等。3.1.2 项目开发要求(1) 项目开发要规范统一,模块划分、代码编写等均按照命名规范文档;(2) 程序执行速度快,数据安全。系统要具有良好的可扩展性;(3) 用户界面简单明了,操作简单实用;(4) 具有一定的健壮性
34、,能够处理大部分一场。3.2 需求分析3.2.1 基本功能需求使用该系统的主要为两种角色,分别为用户和管理员,下面我们队这两种角色进行基本功能需求分析。关于用户:(1) 用户通过通话记录可以进行查看最近通话记录,选中其中一条记录,可以对该联系人拨打电话、发送短信或者删除记录。(2) 用户通过短信记录功能可以发送短信,删除短信记录。(3) 用户通过联系人功能可以保存联系人的详细信息,可以对联系人进行编辑、删除、拨打电话、发送短信可以根据索引条件搜索联系人。(4) 用户通过个人中心可以设置自己的详细信息,这样方便其他人了解自己,也可以将具有相同名字的联系人合并,此外,还能设置防打扰、找朋友、推荐好
35、友给其他好友。云同步能使用户的数据在云端得到保存,在本地数据出现损坏的时候,通过云同步得以恢复,当然用户可以进行同步时时更新云端数据。关于管理员:(1) 管理员登陆系统后,可以对数据库进行备份,也可以进行还原。(2) 管理员可以对用户信息进行管理,包括查看、删除、更改。3.2.2 系统用例分析图3-1显示了通话记录功能模块。包括了联系人详细信息查看,清空通话记录,在选择一个条目后,可以对其进行拨打电话,发送短信功能的操作,也可以进行删除。拨打清空发送短信查看手机用户删除 图3-1 通话记录模块用例图图3-2显示了短信记录功能模块的用例。包括查看短信,发送短信,删除选中的短信记录,清空整个短信记
36、录,其中发送短信包含了新建信息和回复信息。如果用户是新建信息,发送对象可以自己手动输入对方电话号码,也可以从联系人列表中选取,可以选中多个,如果是自己输入多个,用”;”分开即可。查看短信发送短信清空短信记录手机用户新建短信回复短信删除选中短信 图3-2 短信记录模块用例图图3-3显示了联系人功能模块的用例。包括了查看联系人详细信息,编辑联系人信息,新建联系人,对选中的联系人,可以对其进行删除、拨打电话、发送短信的操作。用户还可以进行联系人搜索,这样方便用户快速找到想的联系人信息。拨打电话发送短信查看联系人搜索联系人编辑联系人删除联系人手机用户新建联系人图3-3 电话薄模块用例图手机用户图3-4
37、为个人中心模块中找朋友子模块的用例图。通过此子模块,用户可以寻找到自己可能认识的人。该数据是云端根据用户的信息,通过数据挖掘得到的。找朋友图3-4 找朋友模块用例图图3-5为个人中心模块中联系人去重子功能模块的用例图。该模块的功能是将联系人列表里面,具有相同名字的联系人提取出来,然后用户可以选择将其合并为一个人联系人。手机用户联系人去重图3-5 联系人去重模块用例图图3-6为个人中心模块中防打扰模块。该模块的功能是用户可以设置黑名单,屏蔽掉不想收到的短信或者接到的电话。设置黑名单的方式可以使从联系人里面读取,也可以使自己手动输入号码,此外,用户还可以查看到被拦截的短信记录和电话记录,该记录三天
38、自动删除一次。防打扰电话拦截记录设置黑名单短信拦截记录手动添加读取手机用户图3-6 防打扰模块用例图图3-7为个人中心模块中设置个人详细信息子模块的用例。该模块的功能就是用户设置自己的个人基本信息。手机用户设置个人信息图3-7 设置个人信息模块用例图图3-8为个人中心模块中云同步子模块用例。该模块包括数据导出和导入,导出是将云端的数据同步到手机,使手机中的数据与云端一样,而导入则是将用户手机中的数据同步到云端,使云端的数据保持与手机一致,这里的数据时指联系人记录。手机用户云同步云同步云同步图3-8 云同步模块用例图图3-9是个人中心模块中联系人分享子模块的用例。通过此模块,用户可以将自己电话薄
39、里面的联系人分享给其他人,分享方式可以是一个联系人分享给多人,可以是多个联系人分享给一个人,也可以是多个联系人分享给多个人。手机用户分享联系人图3-9 联系人分享用例图图3-10显示了云端管理模块的用例图。包括用户信息的查看、更改、删除以及数据备份和还原。数据备份数据还原查看账户信息删除账号更改账户信息手机用户图3-10 联系人分享用例图3.3 总体设计方案3.3.1 系统模块关系与划分系统总体划分分为两大模块,即前台用户模块和后台云端模块,如图3-11所示。前台用户模块又分为了通话记录、短信记录、电话薄和个人中心模块,而个人中心又有找朋友、联系人去重、防打扰、联系人分享、云同步五个子模块,如
40、图3-12所示。系统用户前台模块后台云端模块图3-11 系统整体模块划分图3-12 用户前台功能模块结构图3.3.2 开发技术、开发工具和开发环境项目的开发技术包括:JAVA、数据库操作、云计算、数据挖掘等项目的开发工具包括:(1) 开发语言:JAVA(2) 开发集成环境:Eclipse(3) 云储存器:Google Storage(4) 数据库:SQLite项目的开发坏境:(1) 处理器:酷睿2 双核处理器(2) 内存容量:2GB(3) 操作系统:Microsoft Windows XP3.4 本章小结本章首先较多地介绍了系统的详细需求分析,对每个系统的用例进行了说明,并画图出来展示,然后对
41、系统整体进行划分以及各个模块的功能进行了确认。通过本章的需求分析以及概要设计工作,应该对系统实现后达到什么要求,通过什么途径实现得到了明确的回答。4 系统详细设计4.1 通讯录需求分析通过对系统的需求分析与总体设计,考虑到系统各个功能的设计与实现,针对系统的各个用例,系统划分的用户前台和后台一共包括了通话记录模块、短信记录模块、电话薄模块、个人中心模块、云端管理模块。其中个人中心模块又分为找朋友、联系人去重、防打扰、联系人分享、云同步五个子模块。下面对各个模块进行详细的设计。4.1.1 通话记录模块通话记录使用户可以查看最近通话记录,在选中某条栏目后,为用户提供了拨打电话、发送短信、删除该记录
42、、查看联系人信息和情况整个记录的功能。在用户选中此功能后,系统会先调用LastContact类的initComment()函数初始化控件,然后再调用该类的initDate()函数初始化数据,最后通过函数getDate()获得最近通话记录。因为此系统多个模块都有查看联系人信息、发送短信和拨打电话的操作,所以在设计的时候,将此三个方法写成了静态方法(方法名分别为actionSendMsg,actionDialog,actionCheckInfo,封装在类Action_T中),以此降低程序代码的耦合度。综上所述,用户在进行拨打电话、发送短信、查看联系人信息的时候,分别会调用actionSendMsg
43、(),actionDialog(),actionCheckInfo()三个方法。通话记录模块的实现流程图如图4-1所示:开始进入通话记录界面选择功能拨打发短信删除清空查看将此号码传给actionDialog()方法调用empty()方法删除数据,调用updateData()更新数据库调用delete()方法删除数据,调用updateData()更新数据库将此号码传给sendMsg()方法将此号码传给checkInfo()方法结束 图4-1 通话记录流程图4.1.2 短信记录模块该模块主要为用户提供了手机短信方面的功能,包括用户可以查看新收到的短信,可以调用actionSenMsg()方法发送短
44、信,当然,发送短信分为新建短信和回复短信。当用户选择某一个条目后,可以调用delete()方法删除该短信记录,当然可以调用empet()直接一次性清空整个短信记录。短信记录的流程如图4-2所示:开始选择功能清空记录删除短信发送短信调用delete()方法删除短信记录调用empty()方法删除短信记录选择功能新建短信短信,调用newMsg()方法回复短信,调用respondMsg()方法选择操作手动输入收件人从电话本选择收件人查看短信调用checkMsg()方法显示短信信息更新数据库结束 图4-2 短信记录流程图4.1.3 电话薄模块该模块是系统的主要功能。当用户进入该功能模块时,程序默认选中第
45、一个条目,当然用户可以任意选中任一条目。在被选中后,用户可以对该条目进行编辑、拨打电话、发送短信以及删除该联系人的操作。此外,通过功能键,用户可以新建联系人和搜索联系人。该功能模块的流程图如图4-3所示:结束选则功能编辑搜索发送短信拨打电话删除新建更新数据库选中条目输入搜索条件结束输入新建联系人信息后保存显示搜索结果图4-3 电话薄流程图4.1.4 个人中心模块该模块是一个大模块,总共分成了五个子模块,因此功能较多,所以我们分别对每个子模块及其功能分批介绍。首先是找朋友子功能模块。顾名思义,该模块的功能就是为用户提供了寻找好的功能。当用户使用该功能时,云端会根据用户的信息,进行一些数据挖掘,挖掘出多方的一些关系,最简单的就比如A和B是朋友,B和C是朋友,那就得出A和C可能是朋友,因此,用户使用该功能后显示出用户C。在该系