基于Android的个人通讯录设计与实现_第1页
基于Android的个人通讯录设计与实现_第2页
基于Android的个人通讯录设计与实现_第3页
基于Android的个人通讯录设计与实现_第4页
基于Android的个人通讯录设计与实现_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Android的个人通讯录设计与实现摘要:智能手机终端能够支持用户添加更多内容丰富的应用功能,从而赢得了绝大部分手机用户的青睐、占据了手机市场的最大比例。手机通讯录作为手机最基础最常用的软件也随着手机科技的飞速发展变得强大起来,由于Android的开源性、智能性等优势,基于Android的通讯录也开始风靡世界。本文设计实现的通讯录迎合市场的需求,充分运用了免费的Android开发平台,通过需求分析确定开发功能,以eclipse为开发环境,搭建Android平台,再进行代码编写、程序调试,在实现通讯录基本功能浏览、添加、修改、删除、标记、发短信、打电话、发邮件等的基础上,添加了通讯录加密、添加图像、更改头像等功能,并优化了查找功能,使通讯录功能更友善。关键词:智能手机,Android,通讯录,eclipse

ThedesignandimplementationofpersonaladdressbookbasedonAndroidAbstract:intelligentmobilephoneterminalcansupportuserstoaddmorecontentrichapplications,whichwonthemajorityofmobilephoneusers,occupythelargestproportionofmobilephonemarket.Phonebookasthebasisofthephoneisthemostcommonlyusedsoftwarealsobecomestrongerwiththerapiddevelopmentofmobiletechnology,duetotheAndroidopensourceandintelligentadvantages,Androidbasedcommunicationbookalsobegansweepingtheworld.Thispaperpresentsthedesignandimplementationofthecommunicationbooktocatertothemarketdemand,tomakefulluseoffreeAndroiddevelopmentplatform,throughtheneedsanalysistodeterminethedevelopmentoffunction,theeclipsedevelopmentenvironment,tobuildtheAndroidplatform,andthencodewritinganddebuggingtheprograms,inthecontactstoachievebasicskillswillbeabletobrowse,add,modify,delete,mark,sendtextmessages,phone,emailandother,addthecontactsencrypted,addfeaturessuchastheimage,changethepicture,andoptimizethesearchfunction,theaddressbookfunctionmorefriendly.Keywords:intelligentmobilephone,Android,maillist,eclipse

2.Android系统开发简介2.1Android技术简介Google与2005年并购了成立22个月的高科技企业Android,展开了短信、手机检索、定位灯的业务,同时基于Linux的Android平台也进入了开发阶段。Google在2007年11月5日发不了Android的第一个版本,在刚发布之初,Android并没有引起界内太多的关注。但随着Google组件的开放手机联盟不断有新生力量的加入,Android这个初出茅庐的小子已成为为iPhone分庭抗礼的生力军[4]。Android采用软件堆层(SoftwareStack,又名软件叠层)的架构,主要分为三部分。底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机VirtualMachine,由C++开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分,不存在任何以往阻碍移动产业创新的专有权障碍[5]。Android平台支援各种先进的网络、绘图、3D处理能力,可以用来提供更好的使用者体验,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写[6]。图SEQ图\*ARABIC1Android的架构在Android操作系统中,将体系结构划分为4层:应用层(Application)、应用框架层(ApplicationFramework)、系统运行库层(Libraries)以及Linux内核层(LinuxKernel)[7],如图1所示。应用层(Application):运行层是使用Java语言进行开发的一些应用层序,如地图软件、邮件客户端层序、浏览器的连接等都是运行在应用层上。应用框架层(ApplicationFramework):应用层序框架,主要是Google公司发布的一些操作支持的类库(API框架)。应用程序中包含众多组件,开发者也开放新的组件,将组件放入应用程序框架中,可以进行供自己和其它应用程序调用。系统运行库层(Libraries):当使用Android框架进行开发时,为了更好地为程序服务,Android操作系统会自动调用一些C/C++的库文件夹来支持所使用的各个组件。Linux内核层(LinuxKernel):Android操作系统主要是基于Linux2.6内核,程序的安全性、驱动程序、进程管理等都由Linux内核所提供。2.2Android应用程序框架基于Android软件开发接触到最多的部分就是应用程序框架,开发者都是通过应用程序框架来与Android地层进行交互。整个应用程序框架中有4个重要组件:Activities、Intent、Services和ContentProvider。Activities:一个Activities表示一个程序的显示界面,一个应用程序课包含多个Activities组件,每个Activities组件都有各自的周期。Intent:Intent用来完成多个程序之间的跳转,另外还可以用Intent来调用Android本身所提供的应用程序,例如打电话、发短信、发邮件等。Services:Services也是Activities程序,只是Services运行在后台,并没有界面显示。ContentProvider:不同应用程序之间需要对数据进行共享时用到此组件。

3.软件需求分析3.1软件功能需求分析通过对用户需求的市场调查的分析,确定反应用户需求的系统逻辑模型,把整个设计划分成4个单元,分别是程序启动、用户界面、后台服务和数据库适配器,各模块之间的关系如图2所示:图SEQ图\*ARABIC2系统逻辑模型在上图中,后台服务是整个软件的核心,数据获取模块是其主要部分,负责周期性的从用户输入的内容中获取信息。后台服务在程序启动时就由AppWidgetProvider启动,也可由用户界面通过startService()进行启动,启动后的后台服务将一直保持运行状态。同时用户界面从数据库中获取文本信息。一方面可以避免因网络通信不畅造成界面失去响应;另一方面,后台服务可以及时更新数据,以保证数据的准确性。数据库适配器封装了所有对SQLite数据库操作的方法,用户界面和后台服务会调用它来实现数据库操作。在完成用户界面设计、数据库设计和模块设计后,至此程序设计阶段基本完成。3.2软件数据库需求分析数据库存储数据的组织形式和数据库文件的形式不定,主要根据使用要求来确定,但数据中的数据都是按照一定模型组织、描述和存储的,具有较小的重复度、较高的数据独立性和易扩展性。用户数据库是基于SQLite建立。SQLite是遵守ACID的关系型数据库管理系统,包含在一个相对小的C库中,能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如PHP、Java、C、C#等。SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。SQLite是无类型的,这意味着我们可以保存任何类型的数据到所想保存的任何表的任何列中。SQLite数据库的非可视化操作是其弊端所在,这就导致SQLite在实现客户端数据整体结构的过程无可视界面,整个过程都很抽象。3.3安全需求分析由于Android系统自身具备的开放源码的特征,它的安全性能成为信息安全领域研究的一个重要课题。Android的安全性能主要体现在两个方面:Android的系统安全和数据安全。Android系统安全是指智能终端本身的安全,是对操作系统的保护,防止未授权的访问及对授权用户服务的拒绝或对未授权用户服务的允许,包括行为检测、记录等措施。Android的数据安全指确保存储数据完整性、合法性二个方面,要求做到系统正确地传输数据,授权程序顺利地读取数据[8]。Android安全中的一个重要的设计点是在默认的情况下应用没有权限执行对其他应用程序、操作系统或用户的有害操作,这些操作包括读取用户的隐私数据,访问网络,保持设备活动等等,应用程序的进程是一个安全的黑盒子,在没有给它权限的时候它不能干扰其他应用程序。

4.功能设计4.1总体功能设计通过对通讯录功能、系统模块、用户需求方面进行全方位的分析制定开发流程,开发流程如图3所示。图SEQ图\*ARABIC3软件开发流程4.2系统功能设计采用标准的开发流程确定系统具有用户管理功能,联系人增删改功能,通讯功能,查找功能,备份等功能。系统的功能图如4所示。图SEQ图\*ARABIC4开发流程图通过对系统的功能结构的分析,设计后系统运行流程是首次使用将进入密码设置界面,此后每次进入此程序将首先进入密码验证界面,密码正确才进入通讯录主界面,可以看到联系人列表,长按联系人实现标记功能,点击联系人进入联系人详细信息显示界面,在此可以实现修改、删除该联系人信息及返回功能,此外通过MENU课选择打电话、发短信、发邮件通信功能。在通信录主显示界面通过点击MENU课选择增加联系人、删除联系人、查找联系人、菜单及退出菜单,另外“菜单”选项又包括子菜单:显示所有,删除所有,备份,刷新,修改密码,后退等。系统的运行流程图如图5所示。图SEQ图\*ARABIC5运行流程图4.3系统数据库设计该程序数据库是在Android平台上执行Java代码,通过DVM编译来建立的,由于整个SQLite数据库是非可视化操作,因此所有对数据库的操作都是通过执行Java代码实现。且表的设计也尽量优化,没有错综复杂的关系,每张表都是独立的,不存在任何约束,因此数据库也是独立数据库。本系统为了实现文本管理功能,需要建立文本信息表user,文本信息表user中需要包含的属性有_id,username,username_py,mobilephone,officephone,familyphone,position,company,address,zipcode,emial,othercontact,remark,文本信息表user如表1所示:表SEQ表\*ARABIC1文本信息表user属性数据类型说明_idInteger自动增加的主键usernameInteger姓名username_pyString[]姓名(拼音)mobilephoneString[]手机号officephoneString[]办公室号familyphoneString[]家庭号码positionString[]职位companyString[]公司地址addressString[]地址zipcodeString[]邮编emailString[]邮箱othercontactString[]备注remarkInteger标记

5通讯录的实现5.1Android开发平台搭建搭建Android开发环境需要Eclipse、JavaSDK、AndroidSDK、ADT。Eclipse是一个开放源代码的、基于Java的可扩展开发平台。JavaSDK就是JDK,JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvirnment)。AndroidSDK(SoftwareDevelopmentKit)软件开发工具包。ADT(AndroidDevelopmentTools)Android开发工具。Android开发平台搭建步骤如下:(1)首先到/downloads/下载Eclipse集成开发环境并且解压(推荐下载JavaEE集成版本)。去/javase/downloads/index.jsp站点下载SDK后安装,/android/android-sdk-windows-1.5_r1.zip,AndroidSDK1.5后解压。第一步下载工序就结束了。

(2)双击Eclipse解压后目录中的eclipse.exe然后启动,选择Eclipse菜单中的Help->InstallNewSoftware->AvailableSoftware,点击右侧的“Add”输入http://dl-ssl.google.com/android/eclipse/后确定,然后在“Workwith“下拉菜单中选择刚才输入的网址。过一会就会出现一个DeveloperTools选项,勾上以后点击Next以后Eclipse会自动网上查找Android开发工具插件,然后要到AndroidDDMS和AndroidDevelopmentTools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse。(3)重启后选择Eclipse菜单中的Windows->Preferences在左侧的Android项目中SDKLocation中填入AndroidSDK解压后的目录,然后点击Apply。(4)在WindowsXP的系统变量中的path变量中添加一个值,该值指向解压后的AndroidSDK目录下的tools文件夹。5.2具体功能的实现5.2.1密码设置及密码验证程序运行首先进入密码设置/输入密码界面,密码设置/验证界面布局如图6。图SEQ图\*ARABIC6密码设置/验证界面布局界面整个为一个大的LinerLayout,包括三个EditText,和password_manage,new_password,repeat_password,密码通过SharedPreferences存储类保存,通过判断密码是否为空进行控制三个EditText的显示:密码为空,即第一次使用本系统时,显示new_password和repeat_password,为“确认”按钮添加事件监听,点击“确认”时比较新密码及确认密码,两密码一致则进入系统主显示界面,否则提示“密码不一致,然后返回;密码不为空时只显示password_manage,将用户输入的密码和SharedPreferences存储的密码进行比较,一致时进入系统主显示界面,否则提示“密码输入错误”,然后返回。主要实现代码如下:SharedPreferencespreferences=getSharedPreferences("password",MODE_PRIVATE);if(preferences.getString("value","0")==null||preferences.getString("value","0").equals("0")){text1.setVisibility(EditText.INVISIBLE);}else{text2.setVisibility(EditText.INVISIBLE);text3.setVisibility(EditText.INVISIBLE);view2.setVisibility(TextView.INVISIBLE);view3.setVisibility(TextView.INVISIBLE);}save.setOnClickListener(newOnClickListener(){//点击事件@Override publicvoidonClick(Viewv){if(text1.getVisibility()==EditText.INVISIBLE)//通过密码输入框的可见性判断当前操作{if(!text2.getText().toString().equals(text3.getText().toString())){Toast.makeText(PassWord.this,"两次输入密码不一致!",2000).show();}else{SharedPreferencespreferences=getSharedPreferences("password",MODE_PRIVATE);SharedPreferences.Editoreditor=preferences.edit();editor.putString("value",text2.getText().toString());mit();Intentit=newIntent(PassWord.this,Main.class);PassWord.this.startActivity(it);PassWord.this.finish();}}else{SharedPreferencespreferences=getSharedPreferences("password",MODE_PRIVATE);if(text1.getText().toString().equals(preferences.getString("value","0"))){Intentit=newIntent(PassWord.this,Main.class);PassWord.this.startActivity(it);PassWord.this.finish();}elseToast.makeText(PassWord.this,"密码输入错误!",2000).show();}}});5.2.2主显示界面密码设置/输入成功后程序进入主显示界面(Main.Activity),Main中进行新建DBHelper,打开数据库,通过adapter获得所有联系人的ListView,如没有联系人信息则设置Title为“没有查到任何数据”,否则将所有信息显示。长按一联系人时通过添加ListView的setOnItemLongClickListener实现标记操作,单击已联系人时通过添加setOnItemClickListener实现Main到联系人详细信息UserDetail的跳转。联系人详细界面中有修改、删除和返回按钮,在选择修改功能后,联系人的所有信息处于可编辑状态,修改完后点击确定按键,触发确定按键点击监听事件,从而对数据库中该联系人信息进行更改,然后自动返回系统主显示界面。在联系人列表中选择某个联系人点击查看联系人详细信息,联系人详细信息一览无余,同时在联系人详细信息界面下面添加通讯能键,这时的联系人信息不可编辑,如果想要对联系人进行修改点击修改功能键对联系信息进行修改。增加界面的布局文件整体为一个LinerLayout,具体布局如图7所示。图SEQ图\*ARABIC7增加联系人界面布局5.2.3删除联系人功能 删除联系人可有两种不同的操作:=1\*GB2⑴使用联系人详细信息(UserDetail)界面下的“删除”按钮;=2\*GB2⑵选择主界面底部Menu内的“删除”功能。在查看联系人详细信息时,位置标记常量在本联系人位置,进行删除操作时连接数据库,根据位置常量的值完成删除联系人的操作。使用MENU菜单的“删除”首先需要进行联系人的标记,可一次标记多条,然后根据数据库里标记常量的值对联系人信息进行删除,若没有标记需删除的联系人,则通过一个Toast提示“没有标记任何记录,长按一条记录可实现标记”。5.2.4Menu功能Menu菜单位于主显示界面的底部,当选择手机Menu键时菜单才可见,为每个菜单选项绑定了一个图标,并添加事件监听实现其对应功能,菜单具体内容如图8所示(为了试图效果,功能测试图片有使用Photoshop处理)。图SEQ图\*ARABIC8底部Menu菜单Menu的添加功能:添加联系人是通讯录中最基本的功能操作,在联系人增加界面中点击保存按钮实现对联系人信息的保存。后台操作流程:首先在user类中定义一个user函数从表单中获取数据,建立数据库帮助类,打开数据库并将user保存到数据库中。增加界面如上文图7所示。另外,对头像的ImageButton添加事件监听,创建了一个Gallery,通过点击头像可实现头像图片的选择。主要实现代码如下:btn_save.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){//判断姓名是否为空Stringname=et_name.getText().toString();if(name.trim().equals("")){Toast.makeText(AddNew.this,"姓名不能为空",Toast.LENGTH_LONG).show();return;}//从表单上获取数据Useruser=newUser();user.username=name;user.address=et_address.getText().toString();pany=et_company.getText().toString();user.email=et_email.getText().toString();user.familyPhone=et_familyPhone.getText().toString();user.mobilePhone=et_mobilePhone.getText().toString();user.officePhone=et_officePhone.getText().toString();user.otherContact=et_otherContact.getText().toString();user.position=et_position.getText().toString();user.remark=et_remark.getText().toString();user.zipCode=et_zipCode.getText().toString();//判断头像是否改变,若改变,则用当前的位置,若没有改变,则用前一回的位置if(imageChanged){user.imageId=images[currentImagePosition%images.length];}else{user.imageId=images[previousImagePosition%images.length];}user.privacy=privacy;//创建数据库帮助类DBHelperhelper=newDBHelper(AddNew.this);helper.openDatabase();//打开数据库longresult=helper.insert(user);//把user存储到数据库里//通过结果来判断是否插入成功,若为-1,则表示插入数据失败if(result==-1){Toast.makeText(AddNew.this,"添加失败",Toast.LENGTH_LONG);}setTitle("用户添加成功!");setResult(3);finish();}});btn_return.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){finish();}});imageButton.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){loadImage();//为gallery装载图片initImageChooseDialog();//初始化imageChooseDialogimageChooseDialog.show();}});}Menu的查找功能:在查找功能实现的过程中,先将搜索框中的内容转化为字符串形式,使用模糊查询方法将字符串与数据库中的每个user的username、username_py、phone、officephone、familyphone字符串进行比较,其中username_py不是添加联系人输入的信息,是由username生成对应的username_py,这需要向eclipse添加一个外jar包,通过调用此jar包提供的方法来实现,同样username_py不在联系人详细信息界面显示,它的存在时查询功能更加方便。在查询search_edit中,如果输入为空就设置显示所有联系人的列表,否则就建立一个数据库帮且类,在数据库中进行查找匹配,返回到list列表中,将整合的adapter和listview结合展现出来,并统计查找到的条数动态的展现给用户。查找功能主要实现代码如下:if(searchLinearout==null){searchLinearout=(LinearLayout)findViewById(R.id.ll_search);et_search=(EditText)findViewById(R.id.et_search);search_btn=(Button)findViewById(R.id.search_btn);InputFilterinputFilter=newInputFilter(){publicCharSequencefilter(CharSequencesource,intstart,intend,Spanneddest,intdstart,intdend){try{intdestLen=dest.toString().getBytes("GB18030").length;intsourceLen=source.toString().getBytes("GB18030").length;Log.e("filter",String.valueOf(destLen+sourceLen));Stringcondition=source.toString();if(condition.equals("")){lv.setAdapter(adapter);}DBHelperhelper=newDBHelper(Main.this);list=helper.getUsers(condition,privacy);SimpleAdaptersearchAdapter=newSimpleAdapter(Main.this,list,R.layout.listitem,newString[]{"imageid","name","mobilephone"},newint[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});lv.setAdapter(searchAdapter);//将整合好的adapter交给listview,显示给用户看if(list.size()==0){Drawablenodata_bg=getResources().getDrawable(R.drawable.nodata_bg);mainLinearLayout.setBackgroundDrawable(nodata_bg);setTitle("没有查到任何数据");}else{setTitle("共查到"+list.size()+"条记录");mainLinearLayout.setBackgroundDrawable(null);}returnsource;}catch(UnsupportedEncodingExceptione){e.printStackTrace();return"";}}};et_search.setFilters(newInputFilter[]{inputFilter});汉字转拼音字符串实现的主要代码如下:publicstaticStringgetPinYin(Stringsrc){6.2.5通讯功能测试在联系人详细信息界面,点击menu键打开通信功能菜单,然后选择打电话、发信息、发邮件的功能通过接口套用识别号码跳转到相应的功能。测试结果如图18、图19、图20所示。由于模拟机没有安装gmail,功能测试时模拟机显示“米有应用程序可执行此操作”。char[]t1=null;t1=src.toCharArray();String[]t2=newString[t1.length];//设置汉字拼音输出的格式HanyuPinyinOutputFormatt3=newHanyuPinyinOutputFormat();t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);t3.setVCharType(HanyuPinyinVCharType.WITH_V);Stringt4="";intt0=t1.length;try{for(inti=0;i<t0;i++){//判断能否为汉字字符if(Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")){t2=PinyinHelper.toHanyuPinyinStringArray(t1[i],t3);//将汉字的几种全拼都存到t2数组中t4+=t2[0]+"";//取出该汉字全拼的第一种读音并连接到字符串t4后}else{//如果不是汉字字符,间接取出字符并连接到字符串t4后t4+=Character.toString(t1[i]);}}}catch(BadHanyuPinyinOutputFormatCombinatione){e.printStackTrace();}returnt4;Menu的删除功能:MENU的删除功能及我们在5.2.3中提到的第二种删除操作方法。主界面底部Menu内的“删除”菜单功能为删除标记的联系人信息,所以选择此菜单时要先判断是否有标记信息,然后将标记的联系人进行批量删除。5.2.5MENU的菜单功能MENU的菜单功能包括显示所有、删除所有、备份数据、还原数据、修改密码、更新和后退功能。具体布局如图9所示。图SEQ图\*ARABIC9MENU菜单布局显示所有:显示所有与联系人列表界面的思路一致,创建一个数据库帮助类从数据库中获得所有用户的信息放到list,通过setAdapter将listview与adapter相结合展示出来。删除所有:删除所有是数据库中deleteAll这个方法将数据全部删除。备份数据:备份文件时先AlertDialog.Builder来提示是否需要备份记录到SD卡,如果点击确定就通过helper.backupData(privacy);在数据库中执行备份的方法。还原数据:通过指定备份文件的地址进行数据还原。修改密码:修改进入系统密码。修改密码需输入新密码和确认密码,通过判断新密码和确认密码一致时完成密码修改,并通过SharePreferences进行保存。更新:更新contact版本。本系统若更新版本,用户可通过此操作更新系统。后退:系统后退,返回MENU。5.2.6通讯功能通讯功能包括拨打电话、发送短信和发送邮件三个功能。为UserDetail添加一个底部菜单,如图10所示。然后为每一个MenuItem添加事件监听(调用Android系统的ACTION_CALL、ACTION_SENDTO和ACTION_SEND方法)实现其对应通讯功能,其中发送邮件的功能在发送时需要调用gmail程序完成用户的登录才能完成发送邮件的操作,这就要求用户在使用此软件时必须安装一个gmail才能使用该功能。图SEQ图\*ARABIC10UserDetail底部menu

6系统测试6.1系统测试实例系统测试就是利用测试工具按照测试方案和流程对系统进行功能和性能测试,根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析。根据功能需求和性能需求制定以下测试用例,测试用例如表2所示。表SEQ表\*ARABIC2测试用例ID用例描述操作步骤预期结果实际结果1联系人增加功能1、选择联系人头像2、输入联系人相关信息3、跳转联系人列表界面能实现联系人增加功能符合预期2联系人删除功能1、联系人详细信息界面删除2、通过底部菜单删除键删除3、对联系人进行标记4、删除全部联系人联系人信息成功删除符合预期3联系人查找功能1、输入要查找联系人的相关信息进行查找成功查找出符合条件的联系人符合预期4通讯功能1、联系人详细信息界面点击menu弹出通讯功能界面2、通过对号码和邮箱的识别进行相应的操作成功实现联系人打电话、发信息、发邮件功能符合预期5通讯录底部菜单功能增加联系人查找联系人删除联系人菜单退出功能键实现符合预期6菜单功能显示全部删除所有备份数据还原数据修改密码更新后退显示全部联系人,成功,删除所有成功,备份数据成功,还原数据成功,修改密码成功。符合预期6.2系统测试结果6.2.1系统测试方法测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全正确。系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。6.2.2密码设置/验证功能测试密码设置/验证功能分为密码设置和密码验证两部分进行功能测试,测试结果如图11和图12所示。图SEQ图\*ARABIC11密码设置功能测试图SEQ图\*ARABIC12密码验证功能测试(错误)图SEQ图\*ARABIC13编辑联系人功能测试图SEQ图\*ARABIC14查询测试结果图SEQ图\*ARABIC15编辑联系人中删除联系人6.2.3对联系人的编辑、查找及删除功能测试编辑联系人功能测试:针对程序设计的功能设计进行编辑联系人的测试,测试结果如图13编辑联系人界面。查找联系人功能测试:在联系人列表显示中,输入姓名或者数字对联系人进行查找,程序自动筛选符合条件的联系人并将复核条件的联系人动态的显示出来,如果没有符合条件的联系人则不显示。测试结构如图14、图15所示。删除联系人功能测试:如图16删除界面在系统测试中对联系人进行删除操作时,可以通过对底部菜单框中删除按键的点击,或者联系人详细信息界面中删除按键点击,出现提示框询问“是否要删除”。6.2.4备份数据功能测试当点击备份数据功能时,会出现提示功能框“是否需要备份记录到SD卡?”如图16所示。按照提示选择确定或者取消,选择确定,备份成功并统计备份条数,备份完成点击“OK”返回主界面底部MENU显示界面,如图17所示。 图SEQ图\*ARABIC16备份数据提示图SEQ图\*ARABIC17备份功能完成图SEQ图\*ARABIC18打电话功能测试图SEQ图\*ARABIC19发短信功能测试图SEQ图\*ARABIC20发邮件功能测试6.2.5通讯功能测试在联系人详细信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论