1、I本科毕业论文(20 届)基于 Android 系统的同学录的实现所在学院专业班级 计算机科学与技术学生姓名指导教师完成日期II摘 要随着第三代通信技术 3G 的推广,无线带宽和传输速度都得到了大幅度提升,为智能手机终端添加更多内容丰富的应用功能提供了良好的平台。本系统是基于谷歌公司新推出的一款 Linux 平台的开源手机操作系统Android 系统,利用 Java 语言,Eclipse 作为客户端的开发工具,Myeclipse6.5 作为服务器端的开发工具,服务器利用 tomcat 进行架设和发布,后台数据库使用 MySql,通过以上技术的组合在基于目前流行的云存储下很好的满足了用户对通讯录
2、的需求。此通讯录的设计遵循标准的开发流程,进行需求分析,确定通讯录的功能,编写程序的代码,调试程序,运行程序,并对程序进行优化完善。关键词:Android;手机通讯录;JavaIIIAbstractWith the 3G promotion of third-generation communications technology, wireless bandwidth and transmission speed have been improved significantly, and provides a good platform for smart mobile terminals
3、to add more content-rich applications. The design is based on the Google Corporation a new version of the Linux platform to the source mobile phone operating system - Android system, using Java language, Eclipse as a development tool, through the Android platform system architecture and application
4、for research, design a mobile phone contacts. The design including functions of storage, deletion, modification, phone calls, messages sending, E-mail sending, backup SD cards and other functions, to meet user demand for mail list. The design of the contacts follows the standard development process,
5、 the first needs analysis, and then determine the function of the contacts, then write the code, the debugger, run the program, and procedures to optimize the sound. This software uses the Android provides a variety of components to design the interface, can support the user experience.Key words: An
6、droid;Mobile Phone Contacts;JavaIV目 录1 绪论 .11.1 开发背景与意义 .11.2 国内外发展现状 .21.2.1 国外发展现状 .21.2.2 国内发展现状 .21.3 论文结构 .22 关键技术与开发工具 .32.1 关键技术 .32.2 开发工具 .53 需求分析与系统总体设计 .73.1 项目概述 .73.1.1 主要开发内容 .73.1.2 项目开发要求 .73.2 需求分析 .73.2.1 用户需求 .73.2.2 基本功能需求 .73.2.3 特性需求 .83.3 可行性分析 .83.3.1 技术可行性分析 .83.3.2 经济、社会效益分
7、析 .83.3.3 开发人员与进程可行性分析 .93.4 总体方案设计 .93.4.1 系统用例图分析 .93.4.2 系统模块关系与划分 .104 系统详细设计 .124.1 通讯录需求分析 .124.1.1 登陆页面 .124.1.2 本地通讯录页面 .134.1.3 个人通讯信息注册页面 .134.1.4 查看详细通讯信息页面 .144.2 数据库设计 .154.2.1 客户端数据库设计 .154.2.2 服务器端数据库设计 .195 系统实现 .205.1 客户端部分功能模块实现与截图展示 .205.2 服务器部分模块功能及其代码 .25总 结 .28参考文献 .29致 谢 .3011
8、 绪论1.1 开发背景与意义经 过 多 年 的 发 展 , 第 三 代 数 字 通 信 ( 3G)技 术 获 得 了 广 泛 的 接 受 , 它 为 移 动 终 端用 户 带 来 了 更 快 的 数 据 传 输 速 率 。 随 着 3G 网 络 的 使 用 , 移 动 终 端 不 再 仅 是 通 讯 网 络的 终 端 , 还 将 成 为 互 联 网 的 终 端 。 因 此 , 移 动 终 端 的 应 用 软 件 和 需 要 的 服 务 将 会 有 很大 的 发 展 空 间 。 Google 与 包 括 中 国 移 动 、 摩 托 罗 拉 在 内 的 三 十 多 家 技 术 和 无 线 应 用的
9、 领 军 企 业 组 成 的 开 发 联 盟 为 此 于 2007 年 11 月 推 出 了 一 个 专 为 移 动 设 备 设 计 的 软 件平 台 Android1。Android 是一套真正意义上的开放性移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。Android 的 Java 程序运行环境包含一组 Java 核心函数库及 Dalvik虚拟机,它们有效地优化了 Java 程序的运行过程 2。Android 系统平台基于优化了的Linux 内核,它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层。Android 最大特点在于它是一个开放的体系架构,具有
10、非常好的开发和调试环境,而且还支持各种可扩展的用户体验,Android 里面具有非常丰富的图形系统,对多媒体的支持功能和非常强大的浏览器 3。Android 平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助于降低开发成本,还可以使运营商能非常方便地制定特色化的产品,因此,它具有很大的市场发展潜力。随着 3G 网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。在 Google 和 Android手机联盟的共同推动下,Android 在众多手机操作系统中脱颖而出,受到广大消费者的欢迎 7。手机通讯录作为手机的基本
11、功能之一,每天我们都在频繁地使用着。根据手机功能使用调查显示,有八成以上的消费者使用手机通讯录功能。近两年随着云计算的兴起一些与云计算相关的技术得到了广泛的应用其中之一就是-云存储,云存储就是指通过集群应用、网格技术或者分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。目前基于 android 的手机通讯录一般都是单机版的,也就是说没有用到云存储技术将通讯信息保存到服务器端,而是存储在手机自带的存储空间里面,这样的话通讯信息就有一定的局限性了,比如说如果一个人的通讯信息改变了这个时候以前存储的关于他的通讯信息就没
12、有使用价值了,也就无法联系到该联系人,这样对于通讯录用户来说造成了很大的不便,所以迫切需要一个能够基于云存储技术的手机通讯录程序,通过手机客户端将客户的通讯信息提交到服务器端,通过服务器分类进行存储,这样以后用户只改变通讯信息就可以提交到服务器,这样别人可以同样使用该软件连接服务器,查询自己需要的通讯信息,然后下载到本地通讯录,然后进行联系。21.2 国内外发展现状1.2.1 国外发展现状Android 系 统 自 推 出 以 来 , 就 以 明 显 的 优 势 逐 渐 扩 大 自 大 的 市 场 份 额 , 尤 其 在 国外 , 其 呼 声 日 高 , 可 谓 是 如 日 中 天 , 正 处
13、 于 蓬 勃 发 展 的 开 拓 阶 段 。 据 美 国 某 市 场 调 研机 构 2012 年 发 布 的 一 份 最 新 报 告 显 示 。 2012 年 一 季 度 在 美 国 , 基 于 Android 系 统 的智 能 手 机 的 销 售 量 已 占 据 全 美 手 机 销 售 量 的 28%份 额 , 而 大 名 顶 顶 的 IPhone 手 机 其市 场 份 额 紧 追 其 后 , 占 到 21%的 市 场 份 额 , 已 经 确 定 了 Android 系 统 的 市 场 占 有 比 。据 业 内 人 士 分 析 , 随 着 Android 系 统 相 应 软 件 的 不 断
14、开 发 应 用 , 选 择 Android 系 统手 机 或 者 无 线 终 端 设 备 的 人 会 越 来 越 多 , 其 市 场 霸 主 的 地 位 在 更 新 更 好 的 系 统 出 现 之前 是 不 可 动 摇 地 。1.2.2 国内发展现状中 国 是 世 界 上 最 大 的 手 机 销 费 国 。 由 于 3G 业 务 的 不 断 推 广 , 对 整 个 手 机 业 起 大了 巨 大 的 促 进 作 用 , 当 前 国 内 手 机 市 场 正 在 快 速 向 智 能 手 机 推 进 , 而 Android 系 统无 疑 是 最 大 的 市 场 需 求 。 各 大 中 小 型 手 机
15、制 造 商 近 两 年 都 在 引 入 Android 工 程 师 ,开 发 基 于 Android 系 统 的 智 能 手 机 。未 来 基 于 Android 系 统 的 应 用 软 件 将 进 入 飞 速 发 展 的 全 新 阶 段 。 Android 系 统 的应 用 绝 不 仅 局 限 于 手 机 产 业 , 几 年 来 其 迅 速 扩 张 到 相 关 领 域 , 例 如 平 板 电 脑 、 车 载 系统 、 电 视 STB、 智 能 电 器 、 智 能 会 议 系 统 等 。 目 前 , 各 IT 厂 商 都 在 努 力 的 研 发 前 沿应 用 软 件 , 以 期 在 Andro
16、id 系 统 发 展 这 一 群 雄 逐 鹿 的 关 键 阶 段 , 占 领 更 多 的 市 场 份 额 。1.3 论文结构本设计论文共分为五个章节,以下为各个章节及其内容概述:第一章绪论。该章主要是对 android 开发的背景、意义以及国内外的现状进行分析第二章开发工具与关键技术.该章主要是简单的介绍 android 应用的开发工具以及在开发的过程中所要使用到得关键技术第三章需求分析与系统总体设计。该章主要是对 android 同学录的开发需求进行分析,并对系统开发的总体结构进行初步分析 第四章系统详细设计。该章主要是介绍设计主要页面的实现流程 第五章系统实现。该章主要是介绍设计主要页面的
17、截图与其具体实现代码 32 关键技术与开发工具2.1 关键技术(1) JsonJSON 全 称 为 JavaScript Object Notation 是 一 种 轻 量 级 的 数 据 交 换 格 式 , 主 要 用于 传 送 数 据 。 JSON 可 以 将 JavaScript 对 象 中 表 示 的 一 组 数 据 转 换 为 字 符 串 , 然 后就 可 以 在 函 数 之 间 轻 松 地 传 递 这 个 字 符 串 , 或 者 在 异 步 应 用 程 序 中 将 字 符 串 从 Web 客 户 机 传 递 给 服 务 器 端 程 序 。 JSON 采 用 完 全 独 立 于 语
18、言 的 文 本 格 式 , 但 是 也 使 用 了类 似 于 C 语 言 家 族 的 习 惯 ( 包 括 C, C+, C#, Java, JavaScript, Perl, Python 等 ) 。 这 些特 性 使 JSON 成 为 理 想 的 数 据 交 换 语 言 。 易 于 人 阅 读 和 编 写 , 同 时 也 易 于 机 器 解 析 和生 成 。使 用 json 进 行 数 据 的 解 析 有 以 下 几 点 有 点 1、 方 便 前 台 数 据 操 作 2、 ,数 据 体 积小 ,传 输 快 3、 客 户 端 操 纵 XML 的 时 候 需 要 创 建 ActiveX 对 象
19、,JSON 则 完 全 就 是 一 个JS 对 象 ,不 需 要 创 建 DOM。本 设 计 在 客 户 端 将 注 册 的 通 讯 信 息 提 交 给 服 务 器 的 和 从 服 务 器 端 下 载 其 他 人 的 通讯 信 息 的 时 候 用 到 了 json 进 行 数 据 的 解 析 。(2 )SQLiteSQLite, 是 一 款 轻 量 级 的 关 系 型 数 据 库 。 由 于 它 占 用 的 资 源 非 常 少 , 所 以 在 很 多嵌 入 式 设 备 都 是 用 SQLite 来 存 储 数 据 。 并 且 它 目 前 支 持 Windows/Linux/Unix 等 等主
20、流 的 操 作 系 统 , 兼 容 性 很 好 。 开 发 语 言 如 C#、 Java、 PHP 等 来 通 过 ODBC 接 口 操作 SQLite, 十 分 方 便 。Android 作 为 目 前 主 流 的 移 动 操 作 系 统 , 完 全 符 合 SQLite 占 用 资 源 少 的 优 势 ,故 在 Android 平 台 上 , 集 成 了 一 个 嵌 入 式 关 系 型 数 据 库 SQLite。 在 开 发 Android 应 用 程 序 时 需 要 在 Android 上 存 储 数 据 , 使 用 SQLite 数 据 库 是 一 种 非 常 好 的 选 择 。本 设
21、 计 在 实 现 本 地 通 讯 录 信 息 的 保 存 的 时 候 用 到 了 SQLite 技 术 , 将 从 服 务 器 下载 的 通 讯 录 信 息 存 储 起 来 。(3) SharePreference所 有 的 应 用 程 序 都 必 然 涉 及 数 据 的 输 入 和 输 出 , android 应 用 也 不 例 外 , 应 用 程序 的 参 数 设 置 、 程 序 的 运 行 状 态 数 据 这 些 都 需 要 保 存 到 外 部 存 储 器 上 , 这 样 系 统 关 机之 后 数 据 才 不 会 丢 失 , 有 些 时 候 应 用 程 序 有 少 量 的 数 据 需 要
22、 保 存 , 而 且 这 些 数 据 的 格式 很 简 单 , 都 是 字 符 串 、 标 量 类 型 的 值 等 , 此 时 用 SQLite 就 显 得 有 点 浪 费 , 为 此android 提 供 了 SharePreference 来 进 行 简 单 数 据 的 保 存 。本 设 计 在 用 户 首 次 使 用 安 装 使 用 android 客 户 端 的 时 候 需 要 注 册 用 户 名 和 密 码 ,而 这 些 数 据 就 使 用 SharePreference 进 行 保 存 。(4) ServletServlet 是一种 服务器端的 Java 应用程序,具有独立于平台和
23、协议的特性,可以生成动态的 Web 页面。 它担当客户请求( Web 浏览器或其他 HTTP 客户程序)与服务器响4应(HTTP 服务器上的数据库或应用程序)的中间层。 Servlet 是位于 Web 服务器内部的服务器端的 Java 应用程序 ,与传统的从命令行启动的 Java 应用程序不同,Servlet 由 Web服务器进行加载,该 Web 服务器必须包含支持 Servlet 的 Java 虚拟机。Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为: 客 户 端 发 送 请 求 至 服 务 器 端 。 服 务 器 将 请 求 信 息 发 送 至 Se
24、rvlet。 Servlet 生 成 响 应 内 容 并 将 其 传 给 服 务 器 。 响 应 内 容 动 态 生 成 , 通 常 取 决于 客 户 端 的 请 求 。 服 务 器 将 响 应 返 回 给 客 户 端 。本 设 计 的 服 务 端 接 收 客 户 端 提 交 的 个 人 通 讯 信 息 的 时 候 用 servlet 来 接 收 数 据 ,然 后 通 过 jdbc 将 数 据 存 储 到 服 务 器 的 数 据 库 当 中 去 。(5) MVCMVC 全 名 是 Model View Controller, 是 模 型 (model) 视 图 (view) 控 制 器(con
25、troller)的 缩 写 , 其 目 的 实 现 Web 系 统 的 职 能 分 工 。 其 中 Model 层 实 现 系 统 中 的业 务 逻 辑 , 通 常 可 以 用 JavaBean 或 EJB 来 实 现 ; View 层 用 于 与 用 户 的 交 互 , 通 常用 JSP 来 实 现 ; Controller 层 是 Model 与 View 之 间 沟 通 的 桥 梁 , 它 可 以 分 派 用 户 的请 求 并 选 择 恰 当 的 视 图 以 用 于 显 示 , 同 时 它 也 可 以 解 释 用 户 的 输 入 并 将 它 们 映 射 为 模型 层 可 执 行 的 操
26、作 。利 用 MVC 开 发 的 好 处 : 视 图 层 和 业 务 层 分 离 。 这 样 就 允 许 更 改 视 图 层 代 码 而 不 用 重 新 编 译 模 型 和 控 制 器 代码 , 同 样 , 一 个 应 用 的 业 务 流 程 或 者 业 务 规 则 的 改 变 只 需 要 改 动 MVC 的 模 型 层即 可 。 因 为 模 型 与 控 制 器 和 视 图 相 分 离 , 所 以 很 容 易 改 变 应 用 程 序 的 数 据 层 和 业 务规 则 。 高 重 用 性 和 可 适 用 性 。 随 着 技 术 的 不 断 进 步 , 现 在 需 要 用 越 来 越 多 的 方
27、式 来 访 问应 用 程 序 。 MVC 模 式 允 许 你 使 用 各 种 不 同 样 式 的 视 图 来 访 问 同 一 个 服 务 器 端 的 代码 。 它 包 括 任 何 WEB( HTTP) 浏 览 器 或 者 无 线 浏 览 器 ( wap) , 比 如 , 用 户 可 以通 过 电 脑 也 可 通 过 手 机 来 订 购 某 样 产 品 , 虽 然 订 购 的 方 式 不 一 样 , 但 处 理 订 购 产 品的 方 式 是 一 样 的 。 由 于 模 型 返 回 的 数 据 没 有 进 行 格 式 化 , 所 以 同 样 的 构 件 能 被 不 同的 界 面 使 用 。 例 如
28、 , 很 多 数 据 可 能 用 HTML 来 表 示 , 但 是 也 有 可 能 用 WAP 来 表示 , 而 这 些 表 示 所 需 要 的 命 令 是 改 变 视 图 层 的 实 现 方 式 , 而 控 制 层 和 模 型 层 无 需 做任 何 改 变 。 较 低 的 生 命 周 期 成 本 。 MVC 使 降 低 开 发 和 维 护 用 户 接 口 的 技 术 含 量 成 为 可 能 。 快 速 的 部 署 。 使 用 MVC 模 式 使 开 发 时 间 得 到 相 当 大 的 缩 减 , 它 使 程 序 员 ( Java开 发 人 员 ) 集 中 精 力 于 业 务 逻 辑 , 界
29、面 程 序 员 ( HTML 和 JSP 开 发 人 员 ) 集 中 精力 于 表 现 形 式 上 。 可 维 护 性 。 分 离 视 图 层 和 业 务 逻 辑 层 也 使 得 WEB 应 用 更 易 于 维 护 和 修 改(6) JavaBeanJavaBean 是 一 种 可 重 复 使 用 的 且 跨 平 台 的 软 件 组 件 , 在 MVC 模 式 中 广 泛 的 使 用 ,5其 与 jsp 搭 配 使 用 使 得 HTML 与 java 程 序 分 离 , 这 样 便 于 维 护 代 码 、 可 以 降 低 对 开 发jsp 网 页 的 人 员 的 java 编 程 能 力 的
30、要 求 、 jsp 侧 重 于 生 成 动 态 网 页 , 事 务 处 理 由JavaBean 来 完 成 , 这 样 可 以 充 分 利 用 JavaBean 组 件 的 可 重 用 性 特 点 提 高 网 站 开 发 的效 率 。本 设 计 在 jsp 页 面 代 码 的 编 写 当 中 就 广 泛 使 用 到 了 JavaBean 技 术 , 使 得 动 态 网页 开 发 效 率 提 高 了 很 多 , 代 码 清 晰 易 于 后 期 的 维 护 。2.2 开发工具(1) JDKJDK 全 称 为 Java Development Kit 是 Sun Microsystems 针 对 J
31、ava 开 发 员 的 产 品 。Java 程 序 员 在 开 发 Java 产 品 的 时 候 运 行 java 程 序 需 要 java 虚 拟 机 的 支 持 , 在 程 序 的编 译 过 程 中 需 要 JDK 进 行 编 译 生 成 .class 文 件 , tomcat、 JavaEE、 Myelipse 也 都 是 基于 java 语 言 的 需 要 jdk 的 支 持 , 在 程 序 开 发 前 必 须 的 先 配 置 和 安 装 JDK。 JDK 的 安装 步 骤 为 : 首 先 从 sun 公 司 的 官 方 网 站 上 面 下 载 JDK 安 装 包 下 载 的 地 址
32、为http:/ 下 载 完 成 后 就 要 安 装 。 接 着 进 行 JDK环 境 变 量 的 配 置 。(2) JavaEEJavaEE 的 全 称 为 Java Platform Enterprise Edition 是 SUN 公 司 为 企 业 级 应 用 推 出的 标 准 平 台 , 本 设 计 采 用 JavaEE 作 为 客 户 端 的 开 发 工 具 主 要 是 基 于 其 高 效 的 开 发 效率 、 支 持 异 构 环 境 、 可 伸 缩 性 、 稳 定 的 可 用 性 等 特 点 。JavaEE 的 安 装 步 骤 为 : 从 sun 官 网 上 面 下 载 JavaE
33、E 安 装 包 下 载 地 址 为 下 载 完 成 后 直 接 安 装 便 可 。(3) Android-SDK AndroidSDK 的 全 称 为 Android Software Development Kit 其 提 供 了 在Windows/Linux/Mac 平 台 上 开 发 Android 应 用 的 开 发 组 件 , Android 支 持 所 有 的 平 台 ,其 包 含 了 在 Android 平 台 上 开 发 移 动 应 用 的 各 种 工 具 集 。工 具 集 不 仅 包 括 了 Android 模 拟 器 和 用 于 Eclipse 的 Android 开 发
34、工 具 插 件( ADT) , 而 且 包 括 了 各 种 用 来 调 试 、 打 包 和 在 模 拟 器 上 安 装 应 用 的 工 具 。Android SDK 主 要 是 以 Java 语 言 为 基 础 , 用 户 可 以 使 用 Java 语 言 来 开 发Android 平 台 上 的 软 件 应 用 。 通 过 SDK 提 供 的 一 些 工 具 将 其 打 包 成 Android 平 台 使用 的 apk 文 件 , 然 后 用 SDK 中 的 模 拟 器 ( Emulator) 来 模 拟 和 测 试 软 件 在 Android平 台 上 运 行 情 况 和 效 果 。And
35、roid SDK 的 下 载 及 安 装 步 骤 为 : 首 先 从 网 上 下 载 其 安 装 包 , 下 载 地 址 为http:/ 下 载 完 成 后 直 接 解 压 缩 到 指 定 的 目 录 下 便可 使 用 。(4) TomcatTomcat 是 由 Apache 软 件 基 金 会 下 属 的 Jakarta 项 目 开 发 的 一 个 Servlet 容 器 , 按照 Sun Microsystems 提 供 的 技 术 规 范 , 实 现 了 对 Servlet 和 JavaServer Page( JSP)的 支 持 , 并 提 供 了 作 为 Web 服 务 器 的 一 些 特 有 功 能 , 如 Tomcat 管 理 和 控 制 平 台 、6安 全 域 管 理 和 Tomcat 阀 等 。 由 于 Tomcat 本 身 也 内 含 了 一 个 HTTP 服 务 器 , 它 也 可以 被 视 作 一 个 单 独 的 Web 服 务 器 。 但 是 , 不 能 将 Tomcat 和 Apache Web 服 务 器 混淆 , Apac