1、 本科毕业论文(20 届)基于 Android 系统的同学录的实现所在学院专业班级 计算机科学与技术学生姓名指导教师完成日期摘要随着第三代通信技术 3G 的推广,无线带宽和传输速度都得到了大幅度提升,为智能手机终端添加更多内容丰富的应用功能提供了良好的平台。本系统是基于谷歌公司新推出的一款 Linux 平台的开源手机操作系统Android 系统,利用 Java 语言,Eclipse 为开发工具,通过对平台的系统架构和应用程序进行学习,设计出一款手机通讯录。本系统包括存储,删除,Android 修改,打电话,发信息,发邮件,备份 SD 卡等功能,满足了用户对通讯录的需求。此通讯录的设计遵循标准的
2、开发流程,首先进行需求分析,然后确定通讯录的功能,再编写程序的代码,调试程序,运行程序,并对程序进行优化完善。关键词:Android;手机通讯录;智能手机;JAVA AbstractWith 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 to add m
3、ore 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 for rese
4、arch, 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, the fir
5、st 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. Key words: Android; Mobile Phone Contacts; Smartphone;Java目录1 绪论 .11.1 研究背景 .11.2 研究现状 .11.3 主要工作 .32 ANDROID 技术 与理论 .42.1 ANDROID 系统开发简介 .42.
6、1.1 Android 技术简介 .42.1.2 关键应用程序 .62.1.3 应用程序框架 .62.1.4 函数库 .62.1.5 Linux 内核 .62.2 ANDROID 应用的构成和工作机制 .72.2.1 Activity.72.2.2 Intent Receiver .72.2.3 Service .82.2.4 Content Provider.83 需求分析 .93.1 功能需求分析 .93.2 性能需求分析 .103.3 数据库需求分析 .103.4 安全需求 .114 功能设计 .114.1 总体设计 .114.2 系统功能设计 .134.3 系统数据库设计 .145 通
7、讯录实现 .165.1 ANDROID 开发平台搭建 .165.2 具体功能实现 .165.2.1 界面布局 .165.2.2 增加联系人功能 .175.2.3 查找联系人功能 .185.2.4 数据库操作实现 .195.3 系统功能截图 .21参考文献 .25致谢 .2611 绪论1.1 研究背景智能手机(Smartphone),是指“像个人电脑一样,具有独立的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,通过此类程序来不断对手机的功能进行扩充,并可以通过移动通讯网络来实现无线网络接入的这样一类手机的总称” 。目前,全球多数手机厂商都有智能手机产品,而芬兰诺基亚、美国苹果、
8、加拿大 RIM(黑莓) 、美国摩托罗拉、中国台湾宏达(htc)都是智能机中的佼佼者 1。智能手机具有五大特点:1具备了无线接入互联网的能力,即要有 GSM 的支持网络下的 GPRS 或者是 CDMA 网络支持下的 CDMA 1X 或 3G 网络。2人性化,可以根据个人需要扩展机器的功能。3它是具有开放性的操作系统,还可以安装非常多的应用程序,使得智能手机的功能可以得到无限的扩展。4具有 PDA 功能,其中包括个人信息管理、日程记事、任务安排、多媒体应用、浏览网页等。5扩展性能强,第三方软件支持多 2。Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。目前尚未有
9、统一中文名称,中国大陆地区较多人使用“安卓”或“安致” 。Android 操作系统最初由 Andy Rubin 开发,最初主要支持手机。2005 年由 Google 收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。Android 的主要竞争对手是苹果公司的 iOS 以及 RIM 的 Blackberry OS。2011 年第一季度,Android 在全球的市场份额首次超过塞班系统,跃居全球第一。 2012 年 2 月数据, Android 占据全球智能手机操作系统市场 52.5%的份额,中国市场占有率为 68.4%3。在这个信息化的时代,手机已成为继固话之后最为通俗的交流
10、工具 4。在这个人与人关系愈加密切的时代, “通讯”成了生活中的必需品。这就有这么一个系统记录下人与人之间的多样联系方式手机通讯系统。目前国内的通讯录应用服务商分为三类,第一类如幸会、名片全能王、QR 扫描等等,这些产品主要是为了解决名片交换时候输入难度较高的问题。而这也就致使了这部分厂家缺少了一个服务商最看重的东西:对用户没有持续的运营能力;第二类如火种、QQ 通讯录、友录、手机自带的通讯录同步服务等等,这部分的市场主要提供了号码备份服务,帮助用户解决手机号码记录联系人的问题。第三类就是针对与通讯录之上提供的拓展应用服务提供商,比如:米聊和微信,你可以通过上面去发短信,实现多种通信能力的聚合
11、 5。1.2 研究现状当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同种类。Android 是一个基于 Linux 核心(kernel)的开放手机平台作业系统,与 Windows Mobile、Symbian 等手机作业系统处在同一级别,其中占有开放源代码优势的 Android 系统有最大的发展前景。较之 Symbian 用户体验较差,系统较为封闭,支持的应用较少和 Windows Mobile 系统对终端厂商来讲引入成本较2为昂贵,娱乐性平平。Android 系统则拥有低廉的引入成本,在应用方面的资源丰富,以及良好的用户体验开放性较强
12、的特点,适应了移动互联网的发展趋势,切合了移动互联网产业链各方的发展变化需求,所以取得了迅猛的发展 6。Android 系统除了低廉的成本和良好的用户体验外,因采用了开源的平台,给予了终端厂商和开发者更大的灵活性,开发者在程序的开发移植上更为方便且不需要考虑厂商端内容审核等问题,终端厂商则可以按需深度定制系统开发本地化应用环境,在终端厂商、电信运营商和第三方应用开发商的推动下,用户可选择的应用资源将会进一步丰富。各大 Android 应用商店呈现百花齐放的态势。带给了应用开发者更多的机遇和极具诱惑力的利润分成,在各应用商店间的移植改造成本也相对较低。随着应用商店的不断发展和开发者的涌入,And
13、roid 平台的应用资源优势正在逐步的扩大 7。而从用户的角度考虑,Android 良好发展前景主要源于优秀的用户体验和高性价比这两个方面。从人才需求类型来看,目前对 Android 人才需求一类是偏向硬件驱动的 Android 人才需求,一类是偏向软件应用的 Android 人才需求。从目前的招聘需求来看,后者的需求最大,包括手机游戏、手机终端应用软件和其他手机应用软件的开发 8。职业专家分析说,由于目前 Android 技术较新,具有开拓空间,无论是相关书籍、培训还是大学教育,都处于初级阶段,因此 Android 人才短期将供不应求。从长期来看,随着各种移动应用和手机游戏等内容需求日益增加
14、,也将激励大中小型手机应用开发商加大对 Android 应用的开发力度,因此 Android 人才前景也被看好。生活在信息高速发展的今天,智能手机的普及己经是不可改变的趋势。而作为手机各个功能中最为基本的通讯录也成为人们生活中必不可少的一部分了 9。在这个人与人关系愈加密切的时代, “通讯”成了生活中的必需品。通过手机通讯录记录下对方的联系方式,既减轻了大脑的负担,又不在受各种条件的约束,做到便捷随身管理相关的联系信息,摆脱了传统电话簿,名片的累赘。另外,不同于微博,社交网站,手机通讯录是完全属于用户的,而不隶属于某个特定公司或是服务,只要获得用户的认可,即使不是大公司也可以借此迅速建立起一个
15、巨大的关系网络 10。Frost 中间层包括函数库 Library 和虚拟机 Virtual Machine,由 C+开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以 Java 作为编写程序的一部分,不存在任何以往阻碍移动产业创新的专有权障碍。Google 通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统 13。对于设备制造商来说,Android 是一个免费的平台。对硬体开发厂商来说,Android是个开放的平台。只要厂商有能力,可以在这个平
16、台上自由加入特有的装置或功能,不受手机作业系统厂商的限制。对于手持装置的开发者来说,Android 是个先进的平台。平台上的应用程式可相容于各种型号的 Android 手机,免去为各种不同手机机型开发的困扰。Android 平台支援各种先进的网络、绘图、3D 处理能力,可以用来提供更好的使用者体验。Android 它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统 14。Android 软件平台主要由五部分构成,它们分别是:关键应用程序、应用程序框架和组件、C /C +函数库、Java 程序运行环境、优化了的
17、 Linux 内核 15。关键应用程序:Android 平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历、网页浏览器等,而更多有特色的 Android 应用程序还有待于广大开发者共同参与开发。应用程序框架及组件:Android 应用程序开发基于框架和组件。Android 本身已在其框架中提供了许多组件供应用程序调用,开发者也可在开发应用程序时顺带开发新的组件,并将该组件放入应用程序框架中,以供自己和其它应用程序调用。C/C+函数库:Android 应用程序框架之下是一套 C/C +函数库,它们服务于Android 应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括
18、: 标准 C 函数库、媒体功能库、浏览器引擎、2D 和 3D 图形库等 16。Java 程序运行环境:Android 的 Java 程序运行环境包含一组 Java 核心函数库及Dalvik 虚拟机,它们有效地优化了 Java 程序的运行过程。Linux 内核:Android 系统平台基于优化了的 Linux 内核,它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层 17。 Android 应用程序以各种组件(API)为基础,API 是 Android 软件平台的重要组成部分,也是开发 Android 应用的关键所在。当前活动程序 Activity:作为最常用的应用程序组件
19、,几乎所有 Activity 都会通过5创建 U I 窗口与用户进行交流。Activity 具有生命周期,它包含运行、暂停、停止等几个状态,状态间的转换可通过调用 onCreate()、onStart()、onRestart()、onResume()、onFreeze()、onPause()、onStop ()、onDestory()等方法来实现。要开启新的activity,可以调用 startActivity(Intent),或调用 startSubActivity(Intent, int),后者通常和 onActivityResult(int,int, String,Bundle)联合使用
20、,以从一个activity 获取某结果并返回给打开它的 activity18。图像显示 View: View 是最基本的 UI 构件,它在屏幕中占据一个矩形区域可用来显示文本、图像等内容,还可完成图像事件处理。常用的 View 方法有:inflate()(由 XML 文件生成 View)、onDraw (Canvas)(对 View 进行填充) 、onMeasure (int, int)(测量View 的高度和宽度) 、onLayout() (完成 View 的布局) 、onKeyDown(int, KeyEvent)(View 中有按键操作时被调用) 、onFocusChanged (boo
21、lean, int)(当 View 得到或失去关注时被调用)、setOnClilckListener()(设置 View 点击事件监听器)。View 也包含一些子类,如: TextView(布局文件中的文本显示 )、EditText(布局文件中的文本编辑)、Button(按钮) 、ListView(显示列表) 19。事件 Intent: Intent 抽象描述了想要执行的某种操作,它与 startActivity 一起使用可以开启新的 activity,与 startService 一起使用可以开启后台服务。Intent 最重要的作用还是加载 activity,它是不同 activity 间的
22、桥梁。Intent 也可以被认为是一种概括操作行为的数据结构,它主要包括 action (动作)和 data(数据)两部分,此外它还具有一些附加属性如 category(intent 种类)、type (数据类型)等。常用的 Intent 方法有 intent() (构造 intent)、addcategory() (添加 intent 类型)、getAction()(获取intent 动作)、getData()(获取 intent 数据)等。数据存取与共享机制 ContentProvider: ContentProvider 为应用程序提供一些访问方法,包括: Query(Uri, Stri
23、ng , String,String , String, String, String)(数据信息的查询) ,insert (Uri, Contentvalues) (在 Contentp rovider 中添加新数据) , updata(Uri, Contentvalues, String, String )(更新 Conntp rovider 中的数据), delect(Uri, String,String )(删除数据) , Gettype (Uri)(获取数据类型)。其中,Uri 标明了 ContentProvider 存储的数据类型,在执行访问方法时都需依据 Uri 作为路径标识来确
24、定要访问哪个 ContentProvider20。后台服务 Service: Service 是运行在后台的应用程序组件,不直接与用户交互。当前活动程序可以使用 Context. StartService()开启一项后台服务,还可以通过 Context. bindService()与后台服务通信。Android 的架构是 Linux 内核、C/C+函数库、Dalvik 虚拟机、应用框架以及关键应用程序构成的,如图 2-1。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在 Dalvik VM 上运行的。6图 2-1 Android 架构图2.1.2 关键应用程序Android 平台
25、内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序,所用开发语言是Java。2.1.3 应用程序框架Android 应用程序的开发基于框架和组件。Android 本身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。2.1.4 函数库Android 应用程序框架之下是一套 C/C+函数库,它们服务于 Android 应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括:标准 C 函数库、媒体功能库、浏览器引擎、2D 和 3D 图形库、基于
26、 WEB 应用的的安全协议 SSL、用于点阵和矢量字体渲染的 FreeType 以及 SQLite 引擎等。Android 的 Java 程序运行环境包含一组 Java 核心函数库及 Dalvik 虚拟机,它们有效地优化了 Java 程序的运行过程。所有的 Android 应用都运行在它自己的进程里,该进程是一个 Dalvik 虚拟机的实例,Dalvik 被设计成能在一台设备上高效的运行多个虚拟机实例。Dalvik 虚拟机的可执行文件被封装成 Dalvik 可执行格式(.dex)。这是被优化过的最小内存依赖的格式。Java 编译器(dx 工具)将注册了的和运行时用到的类编译成.dex 格式。Dalvik 虚拟机依赖于底层 Linux 内核提供的功能,如线程机制,和内存管理机制等。2.1.5 Linux 内核Android 系统平台是基于优化了的 Linux 内核,是其系统平台的核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。