资源描述
本 科 生 毕 业 论 文
(申请学士学位)
论文题目 Android手机通讯录的设计与实现
作者 佳佳
所学专业名称 计算机科学与技术
学院本科毕业设计(论文)原创性声明
本人重声明:所呈交的设计(论文)是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的容外,本论文不包含任何其他个人或集体已经发表或撰写的成果。本人完全意识到本声明的法律后果由本人承担。
作者签名:佳佳 2010年4月20日
目 录
摘要1
Abstract 1
1绪论2
1.1研究背景2
1.2 研究方向2
1.3前景优势3
1.4主要工作和方法4
1.5本文结构4
2 课题相关技术与理论4
2.1Android系统开发简介4
2.1.1Android技术简介4
2.1.2 Android架构6
2.1.3 关键应用程序7
2.1.4 应用程序框架7
2.1.5 C/C++函数库7
2.1.6 Java程序运行环境7
2.1.7 Linux核8
2.2 Android应用的构成和工作机制8
2.2.1 Activity 8
2.2.2 Intent Receiver 9
2.2.3 Service 9
2.2.4 Content Provider 9
2.3 Android开发平台搭建10
3 系统需求分析10
3.1业务功能需求分析10
3.2 性能需求分析11
3.3安全需求12
4 系统总体设计12
4.1 开发流程和系统数据流图12
4.2 详细功能分析13
4.3系统模块划分14
4.4系统界面绘制14
4.5程序设计17
4.5.1数据库结构设计17
4.5.2menu按键主菜单的建立21
4.5.3详细的页面添加设计22
4.5.4其他功能设计24
5系统测试26
5.1测试过程26
5.2测试目的29
5.3测试方法和工具29
参考文献30
致31
1 / 36
Android手机通讯录的设计与实现
摘要:随着第三代通信技术3G的推广,无线带宽和传输速度都得到了大幅提升。为智能手机终端添加更多容丰富的应用功能提供了良好的平台。本课题采用谷歌公司新推出的一款基于Linux平台的开源手机操作系统——Android系统,利用Java语言,Eclipse为开发工具对通讯录的代码进行编写。通过对Android平台的系统架构和应用程序进行初步研究,设计出一款基于Android手机的通讯录。此通讯录包括存储,删除,修改,打,发信息,发等功能。Android开发平台是手机炫酷应用最好的实验场之一,通过此次设计,我要学会以全新的方式和富有个性的创意来诠释掌中的移动应用,本软件利用Android提供的各种组件对界面进行设计,达到很好的用户体验。
关键词:Android;java;通讯录;界面
Design Of The Android Mobile Phone Contacts
Abstract :Withthe promotion of third-generation communicationstechnology 3G,wireless bandwidth and transmission speed has been increased dramatically. Provides a good platform for smart mobile terminals to addmore content-richapplications. The subject using a Google's new open-source mobile operating system based onthe Linux platform - Android system, the use of the Java language, the Eclipsedevelopment tools on the code of the contacts to write. A preliminary study on the Android platform, system architecture and applicationdesign-based Android contacts. This contacts, including storage, delete, modify, phone calls, sent messages, and other functions. Android development platform is a mobile phone coolapplication of the best one of the experimental field, through the design, I have to learn in new ways and creative personality to the interpretation of the hands of mobile applications, the software Android provides a variety of groups interface design to achieve a good user experience.
Key words :Android;java;contacts; phone;Interface
1绪论
1.1研究背景
Google于2007年11月5日宣布推出基于Linux平台的开源手机操作系统Android。Android凭借其良好的用户体验,低廉的成本和较高的开放性吸引着越来越多的终端厂商采用。移动互联网的快速发展,终端+应用的趋势逐渐成为主流。而Android系统,拥有低廉的引入成本,良好的用户体验开放性较强的特点,加上Android Market和众多第三方应用商做后盾,在应用方面的资源也非常丰富;虽然Android目前存在安全性和版本混乱等问题,但由于其适应了移动互联网的发展趋势,切合了移动互联网产业链各方的发展变化需求,所以取得了迅猛的发展[1]。从用户的角度考量,Android 良好的发展前景主要源于优秀的用户体验和高性价比这两个方面。这些使Android拥有成熟的消费者,在国Android社区十分红火,这些社区为Android在中国的普与做了很好的推广作用。国厂商和运营商也纷纷加入了android阵营,包括中国移动,中国联通,中兴通讯,华为通讯,联想等大企业,同时不仅仅局限于手机,国厂家也陆续推出了采用Android系统的MID产品[2]。
比较著名的包括由Rockchip和蓝魔推出的同时具备高清播放和智能系统的音悦汇W7和2010年推出的原道N5,我们可以预见Android也将会被广泛应用在国产智能上网设备上,将进一步扩大Andorid系统的应用围[3]。另一方面,由于国政策的限制,导致Android的部分功能(如Android market)在国无常使用,目前常用的解决方法是使用类似A8VPN的VPN服务来访问。
国外Android市场正在如日中天的扩展,据市场调研机构NPDGroup最近发布的一份报告称,今年第一季度基于Android操作系统的智能手机在美国智能手机总销量中所占比例达到28%,首度超过苹果iphone,苹果iphone约为21%,相信在不久的将来会有更多的用户选择Android系统的手机或是无线终端设备[4]。
目前中国拥有世界上最大的手机用户群,再加上3G的推出对整个行业的巨大推动作用,全世界所有大中小型手机制造商几乎都在招聘Android工程师。然而每天有超过16万台的Android设备出货,一年后全球可能会有超过1亿台的Android设备。随着Android平台的扩,Android开发工程师将成为3G行业炙手可热的岗位之一。
1.2 研究方向
当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同种类。Android是一个基于Linux 核心(kernel)的开放手机平台作业系统,与Windows Mobile、Symbian 等手机作业系统处在同一级别,其中占有开放源代码优势的Android系统有最大的发展前景[5]。对于设备制造商来说,Android是一个免费的平台。对硬体开发厂商来说,Android是个开放的平台。只要厂商有能力,可以在这个平台上自由加入特有的装置或功能,不受手机作业系统厂商的限制。对于手持装置的开发者来说,Android是个先进的平台。平台上的应用程序可相容于各种型号的Android 手机,免去为各种不同手机机型开发的困扰[6]。
生活在信息高速发展的今天,智能手机的普与己经是不可改变的趋势。而作为手机各个功能中最为基本的通讯录也成为人们生活中必不可少的一部分了。在这个人与人关系愈加密切的时代,“通讯”成了生活中的必需品。通过手机通讯录记录下对方的联系方式,既减轻了大脑的负担,又不在受各种条件的约束,做到便捷随身管理相关的联系信息,摆脱了传统簿,名片的累赘。另外,不同于微博,社交,手机通讯录是完全属于用户的,而不隶属于某个特定公司或是服务,只要获得用户的认可,即使不是大公司也可以借此迅速建立起一个巨大的关系网络。Frost & Sullivan的王煜全也曾多次强调过手机通讯录是一块颠覆性创新的金矿,是创业者们创新的绝佳平台。从长远利益来看,可是意义重大的环保便民之举。根据市场需求,手机通讯录管理系统所记录的信息一般分为个人、商业、办公三类。清晰了机主的联系方向。针对性的分门别类,使系统具有了方便了机主的存储和快速查阅优势功能,大大减少了在簿,名片上机械翻阅查找过程的时间。于此同时又根据手机随身携带的特殊性,在一定程度上比一般的制作文件方便亲民。又其次,因为手机是随身携带的通讯工具,这与记事本相比将在一定程度上保障了联系人信息的安全性,相对避免了个人隐私信息外泄从而带来的损失。
综上所述,手机通讯录管理系统是一个高效、实时、绿色环保的管理系统。然而现在很多通讯录一味追求外观花哨,功能繁杂,对于大多数用户,许多功能用不上,形同虚设。针对以上各种弊端,开发了此种通讯录,将各种性能优化,继承通讯录的常用功能,满足一般用户存储,查找,删除,查看的需求,此外还支持发信息,打,发等功能。
1.3前景优势
较之Symbian用户体验较差,系统较为封闭,支持的应用较少和WM系统对终端厂商来讲引入成本较为昂贵,娱乐性平平。Android系统则拥有低廉的引入成本,在应用方面的资源丰富,以与良好的用户体验开放性较强的特点,适应了移动互联网的发展趋势,切合了移动互联网产业链各方的发展变化需求,所以取得了迅猛的发展[7]。
移动互联网的蓬勃发展促使手机终端产业链变化,应用和服务逐渐成为竞争的焦点。无论是电信运营商,终端厂商还是应用开发商,目前都在向操作系统领域进军,试图对容的聚拢和对应用体系的把控,稳固或加强自己在产业链中的影响力。在这一过程中Android系统因多方面因素逐渐受到各方的青睐。
Android 系统除了低廉的成本和良好的用户体验外,因采用了开源的平台,给予了终端厂商和开发者更大的灵活性,开发者在程序的开发移植上更为方便且不需要考虑厂商端容审核等问题,终端厂商则可以按需深度定制系统开发本地化应用环境,在终端厂商、电信运营商和第三方应用开发商的推动下,用户可选择的应用资源将会进一步丰富[8]。各大Android应用商店呈现百花齐放的态势。带给了应用开发者更多的机遇和极具诱惑力的利润分成,在各应用商店间的移植改造成本也相对较低。随着应用商店的不断发展和开发者的涌入,Android平台的应用资源优势正在逐步的扩大。
而从用户的角度考量,Android良好发展前景主要源于优秀的用户体验和高性价比这两个方面。
从人才需求类型来看,目前对Android人才需求一类是偏向硬件驱动的Android人才需求,一类是偏向软件应用的Android人才需求。从目前的招聘需求来看,后者的需求最大,包括手机游戏、手机终端应用软件和其他手机应用软件的开发。
职业专家分析说,由于目前Android技术较新,无论是相关书籍、培训还是大学教育,都处于初级阶段,因此Android人才短期将供不应求。从长期来看,随着各种移动应用和手机游戏等容需求日益增加,也将激励大中小型手机应用开发商加大对Android应用的开发力度,因此Android人才前景也被看好。
1.4主要工作和方法
在此背景下,开发的基于Android手机通讯录具有十分重要的意义。可以根据客户需求的实际情况,开发一款实用的手机通讯录软件,能够实现添加,查找,删除,修改,打,发信息,发等功能,从而提高通讯录的便捷,优化通讯录的功能。
本设计主要是采用Android的View框架编写,部分框架运用Android中的其他组件。
当进入通讯录的增加界面时,调用的是一个用相对布局RelativeLayout的XML布局文件。其中包括了2个Button,分别实现了不同的功能。第一个Button是保存容,当输入联系人和是点击保存实现此功能。说到保存,不得不说得是保存信息涉与添加新联系人的头像,,手机,办公室,家庭,职务职称,单位名称,地址,邮政编码,Email,其他联系方式,备注这些信息。第二个Button是返回,顾名思义就是从增加页面返回前一界面。
1.5本文结构
本文首先给出了系统的研究背景,对当前手机通讯录的发展现状做了简单的介绍。进而详细的分析了Android的特征、架构以与Android应用的构成和工作机制。
本文详细的提出了软件的架构,以与通讯录的设计方案;采用Java开源的JAR包对HTML文件进行分析和获取图片和文字信息;对各个界面的布局和实现方式进行详细说明;对数据库设计模块进行了详尽的需求分析,经分析得到数据库设计模块,它主要完成用户对已经获取的容的存储,删除和查询等操作;运用Android提供的各种组件设计和实现很好的UI效果,实现很好的用户体验;详细介绍了该软件的性能优化。
2 课题相关技术与理论
2.1Android系统开发简介
2.1.1Android技术简介
Android一词的本义指“机器人”同时也是Google。于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以Linux核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分,不存在任何以往阻碍移动产业创新的专有权障碍。Google通过与软、硬件开发商、设备制造商、电信运营商等其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动软件平台,在移动产业形成一个开放式的生态系统。
对于设备制造商来说,Android是一个免费的平台。对硬体开发厂商来说,Android是个开放的平台。只要厂商有能力,可以在这个平台上自由加入特有的装置或功能,不受手机作业系统厂商的限制[6]。对于手持装置的开发者来说,Android是个先进的平台。平台上的应用程式可相容于各种型号的Android 手机,免去为各种不同手机机型开发的困扰。Android平台支援各种先进的网络、绘图、3D 处理能力,可以用来提供更好的使用者体验。Android它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统[9]。
Android软件平台主要由五部分构成,它们分别是:关键应用程序、应用程序框架和组件、C /C ++函数库、Java程序运行环境、优化了的Linux核。
关键应用程序:Android平台包含一些关键应用程序,如收发客户端程序、短信收发程序、日历、网页浏览器等,而更多有特色的Android应用程序还有待于广大开发者共同参与开发。
应用程序框架与组件:Android 应用程序开发基于框架和组件。Android本身已在其框架中提供了许多组件供应用程序调用,开发者也可在开发应用程序时顺带开发新的组件,并将该组件放入应用程序框架中,以供自己和其它应用程序调用[10]。
C/C++函数库:Android应用程序框架之下是一套C/C ++函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括: 标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库等[11]。
Java程序运行环境:Android的Java程序运行环境包含一组Java核心函数库与Dalvik虚拟机,它们有效地优化了Java程序的运行过程。
Linux核:Android系统平台基于优化了的Linux核,它提供诸如存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层。
Android应用程序以各种组件(API)为基础,API是Android软件平台的重要组成部分,也是开发Android应用的关键所在[12]。
当前活动程序Activity:作为最常用的应用程序组件,几乎所有Activity都会通过创建U I窗口与用户进行交流。Activity具有生命周期,它包含运行、暂停、停止等几个状态,状态间的转换可通过调用onCreate()、onStart()、onRestart()、onResume()、onFreeze()、onPause()、onStop ()、onDestory()等方法来实现。要开启新的activity,可以调用startActivity(Intent),或调用startSubActivity(Intent, int),后者通常和onActivityResult(int,int, String,Bundle)联合使用,以从一个activity获取某结果并返回给打开它的activity[13]。
图像显示View: View是最基本的UI构件,它在屏幕中占据一个矩形区域可用来显示文本、图像等容,还可完成图像事件处理。常用的View方法有:inflate()(由XML 文件生成View)、onDraw (Canvas)(对View进行填充) 、onMeasure (int, int)(测量View的高度和宽度) 、onLayout() (完成View的布局) 、onKeyDown(int, KeyEvent)(View中有按键操作时被调用) 、onFocusChanged (boolean, int)(当View得到或失去关注时被调用)、setOnClilckListener()(设置View点击事件监听器)。View也包含一些子类,如: TextView(布局文件中的文本显示)、EditText(布局文件中的文本编辑)、Button(按钮)、ListView(显示列表)。
事件Intent: Intent抽象描述了想要执行的某种操作,它与startActivity一起使用可以开启新的activity,与startService 一起使用可以开启后台服务。Intent最重要的作用还是加载activity,它是不同activity间的桥梁。Intent也可以被认为是一种概括操作行为的数据结构,它主要包括action (动作)和data(数据)两部分,此外它还具有一些附加属性如category(intent种类)、type (数据类型)等。常用的Intent方法有intent() (构造intent)、addcategory() (添加intent类型)、getAction()(获取intent动作)、getData()(获取intent数据)等。
数据存取与共享机制ContentProvider: ContentProvider为应用程序提供一些访问方法,包括: Query(Uri, String [ ] , 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作为路径标识来确定要访问哪个ContentProvider。
后台服务Service: Service是运行在后台的应用程序组件,不直接与用户交互。当前活动程序可以使用Context. StartService()开启一项后台服务,还可以通过Context. bindService()与后台服务通信[14]。
2.1.2 Android架构
Android的架构是Linux核、C/C++函数库、Dalvik虚拟机、应用框架以与关键应用程序构成的,如图2-1。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在Dalvik VM上运行的[15]。
图2-1Android架构图
2.1.3 关键应用程序
Android平台包含一些关键应用程序,如收发客户端程序、短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序,所用开发语言是Java。
2.1.4 应用程序框架
Android应用程序的开发基于框架和组件。Android本身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。
2.1.5C/C++函数库
Android应用程序框架之下是一套C/C++函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括:标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染的FreeType以与SQLite引擎等。
2.1.6Java程序运行环境
Android的Java程序运行环境包含一组Java核心函数库与Dalvik虚拟机,它们有效地优化了Java程序的运行过程。所有的Android应用都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例,Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。Dalvik虚拟机的可执行文件被封装成Dalvik可执行格式(.dex)。这是被优化过的最小存依赖的格式。Java编译器(dx工具)将注册了的和运行时用到的类编译成.dex格式。Dalvik虚拟机依赖于底层Linux核提供的功能,如线程机制,和存管理机制等。
2.1.7Linux核
Android系统平台是基于优化了的Linux核,是其系统平台的核心。它提供诸如存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件[16]。
2.2 Android应用的构成和工作机制
对于一个Android应用程序来说,是由Activity、 IntentReceiver 、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件AndroidMainfest.xml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以与必要条件等。
2.2.1 Activity
Activity是构成应用程序中最重要的构造块,在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面。
活动生命周期
活动(Activity)在系统中以活动栈的形式进行管理。当一个新的活动启动后,被放到了栈顶,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台[13]。
从图2-2可以看出,Activity有三个关键的循环:
(1)活动的整个生命期:从首次调用onCreate(Bundle)开始,到最终调用onDestroyO结束。在onCreate()中进行所有初始化,在onDestroyO时进行清理工作,释放资源。
(2)活动的可见生命期:从调用onStart()开始,到onStop()被调用为止。在这段时间,即使活动不与用户进行交互,用户也可以在屏幕上看到它。在这两个方法调用之间,可以维护活动显示给用户的资源。onStart()和onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。
(3)活动的后台生命期:从调用onResume()开始,到onPause()被调用为止。在这段时间活动处于其它所有活动之前,并与用户进行交互。一个活动可以不断在resumed状态和paused状态之间变换。
活动之间的切换
Android使用了Intent类来实现活动之间的切换工作。Intent负责对应用中一次操作的动作、动作涉与的数据和附加数据进行描述。根据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件并完成组件的调用。因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在应用中,我们可以以两种形式来使用Intent:直接Intent,指定了component属性的Intent,通过指定具体的组件类,通知应用启动对应的组件。间接Intent,没有指定component属性的Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件。
图2-2 Activity状态变换路径图
2.2.2 Intent Receiver
Intent Receiver是用于对外部事件的响应,当外部事件发生时,会使用NotificationManager通知用户。当一个Intent Receiver被触发时,系统会在需要的时候启动对应的应用程序。如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。各种应用还可以通过使用Context.BroadcastIntent()将它们的Intent Receiver广播给其它的应用程序,实现应用之间的通讯[17]。
2.2.3 Service
Service是提供连续信息的应用程序。它是运行于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Android平台的即时通讯系统的研究与实现后台,直到用户停止该服务或服务运行结束。本系统客户端扩展功能的文本编辑器就是采用Service来进行设计和开发的。
2.2.4 Content Provider
Content Provider应用程序能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。当应用程序需要使用存储设备中的数据时,可以使用Content Provider来完成。使用Content Provider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据[18]
2.3 Android开发平台搭建
Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的Android SDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具[19]。
简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。
(1) Java SDK
(2) Eclipse
(3) Android SDK
(4) ADT
Android开发平台搭建步骤:
①首先到 eclipse.org/downloads/下载Eclipse集成开发环境并且解压,这里推荐下载Java EE 集成版本,可以为平台的搭建省下不少工作。接着再去java.sun./javase/downloads/index.jsp 站点下载SDK后安装,下载dl.google./android/android-sdk-windows-1.5_r1.zip,Android SDK1.5后解压。第一步下载工序就结束了[20]。
②双击Eclipse解压后目录中的eclipse.exe然后启动,选择Eclipse菜单中的Help-> Install New Software-> 选项卡上的Available Software,点击右侧的“Add”输入dl-ssl.google./android/eclipse/后确定,然后在“Work with”下拉菜单中选择刚才输入的网址。过一会就会出现一个Developer Tools选项,勾上以后点击Next以后Eclipse会自动网上查找Android 开发工具插件,然后要到Android DDMS和Android Development Tools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse[21]。
③重启后选择Eclipse菜单中的Windows-> Preferences 在左侧的Android项目中SDK Location中填入Android SDK解压后的目录,然后点击Apply。
④在Windows XP的系统变量中的path变量中添加一个值,该值指向解压后的Android SDK目录下的tools文件夹。
3 系统需求分析
3.1业务功能需求分析
文本编辑器扮演着与用户直接交互并且提供服务的重要角色,它需要提供良好的用户体验,方便用户操作,接收用户的操作并把这些操作转换成相应的命令,采用用户活动的方式完成各个服务的逻辑流程。其功能需求主要包括以下几方面容,业务流程如图3-1所示:
图3-1业务流程图
不同View之间的切换功能,用户通过手指的左右滑动来切换不同的视图,方便用户在不同视图中查看信息和行操作。如图3-2所示:
图3-2不同view之间的切换
3.2 性能需求分析
手机软件要有良好的用户体验,良好的用户体验体现在以下几个方面:
(1)界面友好
用户界面要简洁直观,设计合理,方便用户操作,让用户操作起来比较舒服,并且UI视觉效应好。
(2)快速响应
快速处理用户的输入或请求,对于需要长时间处理的部分,在其处理时可以给用户一个提示,告知用户该软件正在运行。
(3)无缝性
一个常见的无缝问题就是一个应用的后台进程(如service或broadcast receiver)对某事件作出响应而弹出对话框,这看起来仿佛并无大碍,特别是当你在模拟器上单独地构建和测试你的应用时。然而,当你的应用在真正的设备上运行,后台线程显示对话框时,你的应用当时可能没有获得用户焦点。这就会出现你的应用会在活动的应用后面显示对话框,或者从当前应用中获得焦点并显示对话框的情况,而管论当时用户正在做什么(如正在打等)。那样的行为可能对你的应用或用户不起作用。为了避免这些问题,你的应用应该利用适当的系统资源——Notification类,来通知用户。利用通知,你的应用可以通过在状态条上显示一个图标来通知用户事件已经发生,而非获得焦点和打断用户。
3.3安全需求
Android安全中的一个重要的设计点是在默认的情况下应用没有权限执行对其他应用程序,操作系统或用户的有害操作。这些操作包括读取用户的隐私数据,访问网络,保持设备活动等等,应用程序的进程是一个安全的黑盒子,在没有给它权限的时候它不能干扰其他应用程序[17]。
4 系统总体设计
4.1 开发流程和系统数据流图
开发流程如图4-1所示。
图4-1开发流程图
调查研究:
相关系统分析员初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚利用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还列出相关的界面和界面功能。
确定功能:
首先,开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计 进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、 运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
编写程序:
在软件编码阶段,根据《软件系统详细设计报告》中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。
调试程序:
将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误。用编辑程序把编制的源程序按照一定的书写格式送到计算机中,编辑程序会根据使用的意图对源程序进行增、删或修改。是保证计算机信息系统能正确运行的不可少的步骤。编完计算机程序,必须送入计算机中测试。
运行测试:
利用测试工具按照测试方案和流程对产品进行功能和性能测试,根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
优化完善:
对解决同一问题的几个不同的程序,进行比较、修改、调整或重新编写程序,把一般程序变换为语句最少、占用存量少、处理速度最快、外部设备分时使用效率最高的最优程序。
4.2 详细功能分析
新用户的添加功能:
对于新的联系人,手机用户可以添加新联系人的头像,,手机,办公室,家庭,职务职称,单位名称,地址,邮政编码,Email,其他联系方式,备注这些信息。
查找联系人:
可以输入联系人名字或者手机来查找联系人的信息,方便用户快速找到联系人,查询结果显示在当前页。
删除联系人:
通过长点击来删除要删除的联系人。
修改联系人:
可以根据需要修改联系人的所有信息。
菜单功能:
菜单功能里包括显示所有,删除所有;显示所有是把
展开阅读全文