毕业设计Android Sqlite电话号码簿.docx
《毕业设计Android Sqlite电话号码簿.docx》由会员分享,可在线阅读,更多相关《毕业设计Android Sqlite电话号码簿.docx(30页珍藏版)》请在冰豆网上搜索。
![毕业设计Android Sqlite电话号码簿.docx](https://file1.bdocx.com/fileroot1/2023-2/1/edc3061a-7b62-4b3f-aa27-b40d9a7f7419/edc3061a-7b62-4b3f-aa27-b40d9a7f74191.gif)
毕业设计AndroidSqlite电话号码簿
学校代码:
11059
学号:
0805070171
毕业论文(设计)
BACHELORDISSERTATION
论文题目:
基于Android的sqllite方式电话号码
本程序的设计实现
学位类别:
工学学士_
学科专业:
通信工程
作者姓名:
导师姓名:
完成时间:
基于Android的sqllite方式电话号码本程序的设计实现
中文摘要
Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。
目前尚未有统一中文名称,中国地区较多人使用“安卓”或“安致”。
Android操作系统最初由AndyRubin开发,最初主要支持手机。
随着android技术的出现,越来越多的手机开发商采用android操作系统,于是android通讯录的开发也变的必不可少。
本设计针对Android手机用数据库的方式实现电码号码。
在Android手机中,其底层使用了嵌入式数据库sqlite,可以直接完成数据库的建立与数据表的查询、修改。
而本设计就是利用Android中sqlite数据库来完成通讯录的主要功能,如保存,删除,查询等功能。
在eclipse中使用Android的语言编写程序代码,利用Android中自带的sqlite数据库来实现程序中的数据库功能,并在Android的虚拟机中实现程序。
设计的电话簿主要是在Android手机上实现新建、删除、编辑、打电话,联系人的模糊查找等功能。
关键词:
Android;Eclipse;电话簿;Sqlite;Android的虚拟机
BasedontheAndroidSqlite,theDesignofPhoneNumberBookProgramisRealied
ABSTRACT
AndroidistoonekindoftheopensourceyardOStakingLinuxasbasis,useYumainlyportableequipment.HaveatpresentnotyetunitingtheChinesename,Chineseareais"talleranderecterthanmanypeopleusagesafety"or"theamperecauses".InitialreasonofAndroidOSAndyRubindevelops,initialmainsupportmobiletelephone.Withandroidtechnologyappearing,moreandmoremanymobiletelephoneexploitationmerchantadoptandroidOS,essentialthatandroidaddressbookexploitationisalsochangedintothereupon.
DesignthatmobiletelephoneusesthedatabasewaytorealizethecodenumberspecificallyforAndroidoriginally.InAndroidmobiletelephone,it'sthebottomhasusedimplantationstyledatabasesqlite,inquiry,modificationbeingabletoaccomplishdatabasebuilding-upanddatasheetdirectly.ButfunctiondesigningmainpartitisthedatabasemakinguseofAndroidtobehitbysqlitetocometoaccomplishanaddressbookoriginally,iffunctionssuchaspreserving,deleting,inquiring.
UsetheAndroidlanguagetocompileandcomposeprocedurecodeineclipse,makeuseofAndroidtobehitbydatabasefunctioninrealizingproceduresincesimultaneoussqlitedatabase,inandAndroidsuppositionalmachineishitbytherealizationprocedure.ThetelephonedirectorydesigningthatistorealizeXinJian,todelete,editonAndroidmobiletelephone,callsmainly,mixingupofthepersontocontactseekwaitforafunction .
KEKWORD:
Android;Eclipse;Telephonedirectory;Sqlite;Androidsuppositionalmachine
第一章概述
Android是Google开发的基于Linux平台的开源手机操作系统。
它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。
Google与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和T-Mobile在内的30多家技术和无线应用的领军企业组成。
Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
Android作为谷歌企业战略的重要组成部分,将进一步推进"随时随地为每个人提供信息"这一企业目标的实现。
我们发现,全球为数众多的移动电话用户从未使用过任何基于Android的电话。
谷歌的目标是让(移动通讯)不依赖于设备甚至平台。
出于这个目的,Android将补充,而不会替代谷歌长期以来奉行的移动发展战略:
通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。
Android平台的研发队伍阵容强大,包括Google、HTC(宏达电)、PHILIPS、T-Mobile、高通、魅族、摩托罗拉、三星、LG以及中国移动在内的34家企业,都将基于该平台开发手机的新型业务,应用之间的通用性和互联性将在最大程度上得到保持。
“开放手机联盟”表示,Android平台可以促使移动设备的创新,让用户体验到最优越的移动服务,同时,开发商也将得到一个新的开放级别,更方便的进行协同合作,从而保障新型移动设备的研发速度。
34家企业的加盟,也将大大降低新型手机设备的研发成本,完全整合的“全移动功能性产品”成为“开放手机联盟”的最终目标。
这34家企业中并不包含把持Symbian的诺基亚,以及凭借着iPhone风光正在的苹果公司,美国运营商AT&T和Verizon,当然微软没有加入,独树一帜的加拿大RIM和他们的Blackberry也被挡在门外。
Android在中国的前景十分广阔,首先是有成熟的消费者,在国内,android社区十分红火比如,这些社区为android在中国的普及做了很好的推广作用。
国内厂商和运营商也纷纷加入了android阵营,包括魅族,中国移动,中国联通,华为通讯,联想等大企业。
随着android技术的出现,越来越多的手机开发商采用android操作系统,于是android通讯录的开发也变的必不可少。
本设计针对Android手机用数据库的方式实现电码号码。
在Android手机中,其底层使用了嵌入式数据库sqlite,可以直接完成数据库的建立与数据表的查询、修改。
而本设计就是利用Android中sqlite数据库来完成通讯录的主要功能,如保存,删除,查询等功能。
在eclipse中使用Android的语言编写程序代码,利用Android中自带的sqlite数据库来实现程序中的数据库功能,并在Android的虚拟机中实现程序。
设计的电话簿主要是在Android手机上实现新建、删除、编辑、打电话,联系人的模糊查找等功能。
第二章环境
2.1JAVA环境
2.1.1Java简介
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
Java编程语言的风格十分接近C、C++语言。
Java是一个纯的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。
在JavaSE1.5版本中,Java又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
2.2.2Java环境变量配置
1、打开我的电脑--属性--高级--环境变量
2、新建系统变量JAVA_HOME和CLASSPATH
变量名:
JAVA_HOME
变量值:
C:
\ProgramFiles\Java\jdk1.7.0
变量名:
CLASSPATH
变量值:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
3、选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。
变量名:
Path
变量值:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
2.2Eclipse环境
2.2.1Eclipse简介
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于Java开发工具。
尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++和COBOL等编程语言的插件已经可用,或预计将会推出。
Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
2.2.2Eclipse安装
从Eclipse官网下载压缩包后直接解压即可使用。
2.3Android环境
2.3.1Android简介
Android的系统架构和其它操作系统一样,采用了分层的架构。
android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。
在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C++作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:
python、lua、tcl、php等等),还有其他诸如:
Qt(qtforandroid)、Mono(monoforandroid)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。
另外,谷歌还在2009年特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。
而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。
而在Android系统底层方面,Android使用C/C++作为开发语言。
2.3.2Android安装
下载好AndroidSDK后,开始安装,AndroidSDK采用了Java语言,所以需要先安装JDK5.0及以上版本。
直接下载jdk安装文件安装,方便。
AndroidSDK不用安装,下载后,直接解压即可,将下载后的SDK的压缩包解压到适当的位置,SDK安装OK。
使用Eclipse进行android应用开发需要给Eclipse装ADT插件,这样Eclipse就可以和androidsdk建立连接,可以在Eclipse中启动android模拟器进行程序调试等,插件的安装URL为:
https:
//dl-
1、在Eclipse中,选择Window>Preference;
2、从左侧的菜单中,选择Android项;
3、设置SDKLocation,点Browse选择SDK的安装根目录;
4、OK,完成。
2.4SQLite数据库
2.4.1SQLite简介
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
2.4.2Android中SQLite数据库的使用
Android不自动提供数据库。
在Android应用程序中使用SQLite,必须自己创建数据库,然后创建表、索引,填充数据。
Android提供了SQLiteOpenHelper帮助你创建一个数据库,你只要继承SQLiteOpenHelper类,就可以轻松的创建数据库。
SQLiteOpenHelper类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。
SQLiteOpenHelper的子类,至少需要实现三个方法:
1、构造函数,调用父类SQLiteOpenHelper的构造函数。
这个方法需要四个参数:
上下文环境(例如,一个Activity),数据库名字,一个可选的游标工厂(通常是Null),一个代表你正在使用的数据库模型版本的整数。
2、onCreate()方法,它需要一个SQLiteDatabase对象作为参数,根据需要对这个对象填充表和初始化数据。
3、onUpgrage()方法,它需要三个参数,一个SQLiteDatabase对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。
第三章系统分析
3.1需求分析
一个完整的电话簿程序需要多个模块来支持。
添加联系人模块,查询联系人模块,修改联系人模块,删除联系人模块,备份还原模块,当然还有打电话,发短信等功能模块。
3.2功能分析
3.2.1添加联系人
添加联系人AddNew.java和布局文件addnew.xml。
布局文件外围使用LinerLayout,然后再其中用一个ScrollView和一个LinearLayout。
前者里继续使用了LinearLayout。
然后放置了许多联系人信息。
后者中放置了两个按钮,一个是保存一个是取消。
图1给出了添加联系人的布局界面。
对于新的联系人,手机用户可以添加新联系人的头像,姓名,手机号码,办公室电话,家庭电话,职务职称,单位名称,地址,邮政编码,Email,其他联系方式,备注这些信息。
图1添加联系人界面
3.2.2保存联系人
保存联系人UserDetail.java和UserDetail.xml。
通过DBHelper的静态方法的方法save方法,将联系人保存到数据库里。
这里的数据库使用了android平台的SQlite数据库。
数据库的继承了SqliteHelper类,然后构造一个构造函数,在之后需要重载两个方法。
构造方法:
public SQLiteOpenHelper (Context context, String name, SQLiteDatabase.CursorFactoryfactory,intversion)。
3.2.3查找联系人
可以输入联系人名字或者手机来查找联系人的信息,方便用户快速找到联系人,查询结果显示在当前页。
构造一个loadSearchLinearout()函数,实现从数据库中查找联系人。
3.2.4删除联系人
通过长点击来删除我们想要删除的联系人。
构造一个onClick()函数,来实现删除联系人的功能。
3.2.5菜单功能
菜单的主界面main.java和布局文件main.xml。
用listview来展示联系人列表,而menu,则采用从XML文件中扩展而来,没有采用默认的menu菜单。
在菜单中使其可以实现备份、删除所有联系人等功能。
3.2.6其他功能
在UserDetail.java中编写代码,使系统能够实现打电话、发短信、发邮件的功能。
3.3功能结构图
图2系统功能结构图
第四章系统设计
4.1数据库设计
创建一个User.java的Activity,里面放置了数据库中所需要的字段名,其中id代表了这个数据库的地址。
User(id,头像id,用户名,手机号码,办公室号码,家庭号码,职务职称,公司,地址,邮政编码,邮箱,其他联系方式,备注,隐私权)。
4.2结构设计
画出电话簿的E-R图:
图3电话簿E-R图
电话簿数据库中将主键设置为用户名,不可为空,设置的数据类型为string;键值id、头像id都不为空,数据类型为int;键值手机号码、办公室号码、家庭号码、职务职称、公司、地址、邮政编码、邮箱、其他联系方式、备注都可为空,数据类型为string;键值隐私权可为空,数据类型为int,其中隐私用户用1代表普通用户用0表示。
由这些关系可得出电话簿中的联系人信息表。
表1联系人信息表
4.3各功能模块设计
在Main.java的Activity中编写菜单功能模块,同时附带了多个布局文件main.xml、item_menu.xml、main_menu_grid.xml,这些一起组成了一个完整的mainActivity。
这个Activity包括了显示所有联系人、删除所有联系人、备份和更新联系人功能。
增加新的联系人模块通过AddNew.java的Activity实现,同样它也带有一个自己的布局文件addnew.xml。
而查找联系人、修改联系人、删除联系人都涉及Sqlite数据库的操作,这时则要新建一个Activity命名为DBHelper.java,相当于一个自己建的类。
其他Activity通过调用这个Activity来完成数据库操作,如查找、修改、删除等功能。
新建一个名为UserDetail的Activity主要用于实现打电话、发短信、发邮件的功能,同样它也自带有一个Layout文件userdetail.xml。
这里主要要注意的是需要添加两个允许CALL_PHONE、WRITE_EXTERNAL_STORAGE。
电话簿结构图:
图4电话簿功能结构图
第五章系统实现
5.1添加新的联系人
5.1.1实现细节
用户可以添加新联系人的头像,用户名,头像,姓名,手机号码,办公室电话,家庭电话,职务职称,单位名称,地址,邮政编码,Email,其他联系方式,备注这些信息。
其中联系人的头像可进行选择。
5.1.2核心代码
User.privacy=privacy;//创建数据库帮助类
DBHelperhelper=newDBHelper(AddNew.this);//打开数据库
helper.openDatabase();//把user存储到数据库里
longresult=helper.insert(user);//通过结果来判断是否插入成功,若为1,则表示插入数据失败
if{result==-1){
Toast.makeText(AddNew.this;“添加失败”;Toast.LENGTH_LONG);
}
setTitle(“用户添加成功!
”)//返回到上一个Activity,也就是Main.activity
setResult(3);//销毁当前视图
finish();
5.1.3实现结果
图5添加新的联系人
5.2查找联系人
5.2.1实现细节
点击Menu按钮出现主菜单页面,然后点击查找按钮,输入想要查找人的姓名可实现联系人的模糊查找。
5.2.2核心代码
privatevoidloadSearchLinearout(){
if(searchLinearout==null){
searchLinearout=(LinearLayout)findViewById(R.id.ll_search);
et_search=(EditText)findViewById(R.id.et_search);
et_search.setOnKeyListener(newOnKeyListener(){
publicbooleanonKey(Viewarg0,intarg1,KeyEventarg2){
Stringcondition=et_search.getText().toString();
if(c