基于google+android平台电子辞典软件设计与实现硕士学位论文.docx
- 文档编号:28170105
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:31
- 大小:1MB
基于google+android平台电子辞典软件设计与实现硕士学位论文.docx
《基于google+android平台电子辞典软件设计与实现硕士学位论文.docx》由会员分享,可在线阅读,更多相关《基于google+android平台电子辞典软件设计与实现硕士学位论文.docx(31页珍藏版)》请在冰豆网上搜索。
基于google+android平台电子辞典软件设计与实现硕士学位论文
大连理工大学硕士学位论文
基于googleandroid平台电子词典软件的
设计与实现
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
摘要
本文阐述了在Android平台下电子词典软件的设计与实现过程。
其目的是让人们能够在基于GoogleAndroid平台的移动设备上享用英汉词汇翻译功能。
系统实现了英汉词汇查询、添加,删除等功能。
在词汇存储及检索方面,系统使用了Android内置的小型嵌入式数据库Sqlite的开发接口,支持单词的模糊检索和词库导入功能。
平台基于Java语言开发完成,在不同型号的设备模拟器上测试通过。
关键词:
Android平台;电子词典软件;嵌入式开发;
Abstract
Inthispaper,wedescribethatelectronicdictionarysoftwareforthedesignandimplementationprocessinGoogleandroidplatform.ItspurposeisthedevelopmentofthisplatformundertheEnglish-Chineseelectronicdictionarytranslationfeaturesthedesignandimplementation,It’sdefaultuseofsmallembeddeddatabase-Sqlite,theplatform’slanguageisjavaprogramminglanguageandusetheplatformprovidedbythesimulator.enablingusersfacilitatetouseanysimplefunctionsthattheEnglishwordsfortheChineseexplainedwhatthesoftwareachievedwords’addition,delete,modifyonmobilephones.Thesoftwaredesignanddevelopmentbasedonthejavalanguage.
Keywords:
platform;simulator;database
前言
系统开发背景
目前,市场上使用较多的智能手机操作系统包括Symbian、PalmOs、windows MobilesLinux等,谷歌基于Linux的手机软件Android一度被业内视为最有希望的移动平台。
Android的强势进入不但给Linux带来了新的生机,也加剧了Linux移动平台内部的竞争,开发这样一个手机软件平台的原因之一,就是30亿的手机用户享受近年来各种各样的技术创新,特别是在互联网方面的各种技术创新。
在这样的基础和前景下,基于android平台下设计电子词典应用软件,可以在android平台下更好的学习相关技术。
系统概述
系统需求分析
针对本课题在当前google提供的SDK的最新版本的开发过程中,汉英功能暂不能实现,只能进行英汉功能模块的开发,在使用数据库方面使用默认自带的sqlite嵌入型的小型数据库。
尽管不如完全面向对象的数据库(例如db4o)开发的更加方便。
但当完成开发后,可以尝试用db4o来取代sqlite数据库。
这样就使整个数据库的操作效率更加完善。
系统总体业务可以描述为以下几点:
1)在主界面是否能显示出数据库中的单词,并按一定次序显示出来。
2)显示菜单功能,是否能进行功能键的判断并进行相应的测试。
3)运行状态的判断,根据对菜单功能进行测试得到的结果,对当前状态进行判断。
4)异常的出现,判断可能出现的异常,并对不同的功能进行测试。
5)模拟器的重新启动,清除在模拟器下操作功能出现的异常情况。
Android平台结构
以下图表展示了Android操作系统的主要组成部分。
Android系统架构图
系统设计
本章对系统的功能框架以及各个功能模块之间的关系进行描述,使用面向对象的思想对系统的设计方法进行分析,设计了系统中的相关类。
系统需要解决的主要问题
基于在android平台下设计电子词典软件需要解决以下几个问题:
数据库使用情况:
当前android平台采用的是sqlite数据库。
把单词库作成“.db”文件导入到android平台下的sqlite数据库。
首要问题是在初始化时需要创建的数据库名称,并且表名要和导入的数据库名称一致。
此外还要熟悉Fileexplorer的文档结构。
布局问题:
在android平台下开发应用软件,最重要的是布局问题。
在该平台中采用的是xml文件来设置布局。
在SDK平台下,提供了包括图片、文字显示、以及xml文件的布局设计方法。
在此基础上,开源爱好者也开发出一个可视化的布局工具。
虽然控件不是很丰富,但随着android平台被更多广大爱好者的关注,更多更好的布局工具将会出现在我们面前。
系统功能框架
在设计系统的功能架构时,主要分为查询、动态装载和定位、增删改、显示尺寸、动态导入和导出等功能模块。
系统模块结构示意图如下:
系统功能结构示意图
英汉查询功能模块中包括了英文查询功能,并且还实现了模糊查询功能。
主要操作是在主界面中单击查询和输入动态查询。
单词的增删改功能包括单词的增加,删除,修改功能。
用户可以向单词库中增加、删除、修改单词库中的单词。
导入和导出功能现在只能手动在模拟器中才能实现单词库的导入和导出的功能。
详细的处理过程:
1)首先,配置好数据库。
使数据库支持模拟器文本框的检索。
通过模拟器的文本框进行单词输入。
通过数据库进行匹配,并将结果输出到屏幕。
2)其次,把不同类型的文件(英文单词库)制作成一个.db文件。
通过Fileexplorer,使得sqlite数据库可以动态的导入。
3)添加4个功能模块,分别为:
添加词汇功能、删除功能、查询功能以及导入功能(单词库文件)。
4)进行屏幕尺寸的调配,使得中心屏幕更适合用户的要求。
系统总体流程图
启动模拟器后,模拟器会自动加载指定的单词库,然后进入主界面,并在主界面中把单词库中的单词显示出来,而且会根据屏幕的大小自动调整显示出的单词数量。
然后在菜单栏中可以选择添加、删除和查询功能,并进入相应的界面。
如果不想进入相应的界面,按ESC可以后退到主界面。
整个流程图如下:
总体流程图
系统关键技术
在android平台下开发电子词典所采用的关键技术有以下几点:
1)对数据库数据(单词库)的导入、导出(对Fileexplorer的dos操作或鼠标操作)
2)模糊查询
3)单词的添加、删除、修改
复杂性分析:
1)当启动模拟器后,android平台会自动启动DDMS功能,把已有的功能模块的File文件自动生成镜像文件。
可以在dos下输入:
adbemulator-tcp-5555shell来进入数据库,并输入指定位置的的数据库名称,并打开相应的文件查看。
利用模拟器自带的push和pull功能来实现单词库导入和导出。
其复杂度中等。
2)界面查询功能的实现需要了解android平台下的定位操作,也是SDK中的基本功能之一。
其复杂度较小。
3)添加、删除、查询功能的实现需要查看底层代码。
深入了解后可以在程序中直接使用相关的函数。
数据库的设计
数据库名称:
sqlite.db
表名:
dict
表中字段名称:
id,title,body
说明:
title:
存放英文单词。
body:
存放相应的英文单词的中文解释。
数据库定义为sqlite.db的原因是:
android平台下采用的数据库是sqlite3,运行后生成数据库的名称.db文件。
定义好的外部数据库可以直接导入到模拟器下的位置为:
/data/data/com.gewei.dictionary/databases/sqlite.db。
这样单词库的数据就可以直接在模拟器中显示出来。
在DOS下查看android下的数据库文件的内容如下:
sqlite>/data/data/com.gewei.dictionary/databases/sqlite.db
/data/data/com.gewei.dictionary/databases/sqlite.db
...>.modeline
.modeline
Select*fromdict;
数据库E-R图
系统实现
本章阐述了电子词典中各个功能的实现,并且对该软件实现过程中的主要问题进行了分析并提出了解决方案。
根据上章得知,该软件包括界面布局、查询、动态装载和定位、增删改、显示尺寸以及动态导入和导出等功能模块。
查询模块的实现
查询模块的功能就是把查询到单词的中文解释在界面中显示出来。
在屏幕中单击要查询的单词或输入要查询的单词,另一个界面中显示出单词和单词的中文解释。
实现过程:
设置6个静态字段——包括3个数据库中表字段的名称、数据库的名称、表的名称和数据库的版本(sqlite版本默认为3)。
首先,创建数据库,并通过模拟器把外部单词的数据库导入,修改创建数据代码将其改为已打开的数据库。
其次,通过调用函数publicCursorquery(Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy)来实现查询功能,并在相应的editText中显示出查询的信息。
查询界面
添加模块的实现
添加单词的功能就是在数据库中添加没有的单词。
当点击菜单栏中的添加按钮后,会进入另一个界面,在此界面中输入要添加的单词。
由于api未支持中文的输入,所以单词的释义还不能添加。
添加后的单词会自动进入数据库中并保存下来。
实现过程:
在editText中输入英文单词,调用dictionaryeditText.java中的saveState()函数。
在此函数中调用createNote()方法,参数为输入的内容。
此内容的获取是通过读取当前在editText中的字符串,利用insert()方法把读取到的内容插入到数据库中,从而完成对单词的添加。
添加界面
删除模块的实现
删除单词功能的实现过程是在点击菜单栏的删除键,前提已经选中要删除的单词。
界面会弹出一个消息栏,提示单词已经删除,并且在数据库中该单词也已经删除。
实现过程:
删除功能的实现过程调用函数publicintdelete(Stringtable,StringwhereClause,String[]whereArgs)操作数据库。
具体的参数如下:
delete(DATABASE_TABLE,KEY_ROWID+"="+rowId,null)>0;根据ID来进行单词的删除。
删除界面
装载模块的实现
动态装载模块在现阶段仅仅实现了手动加载。
从模拟器加载进来外部已经生成好的.db文件。
利用模拟器中的push和pull可以把单词库文件导入。
加载界面
主界面
系统交互界面的实现
AndroidXML布局文件的大体的结构很简单。
它是一个标签的树,任何一个标签就是View类的名字。
在这个例子中,它是一个很简单的只有一个元素的树,一个TextView。
你可以使用任何继承自View类的名字作为标签的名字。
包括在你的代码中自定义的View类。
这个结构可以很容易的构建界面,它比你在源代码中使用的结构和语法更简单。
这个模式的设计灵感来自于Web开发。
就是可以将界面和应用程序逻辑分离的模式。
本软件关于界面布局的设置主要是与dictionary_edit.xml,dictionnary_list.xml,string.xml文件有关。
相关文件具体说明如下:
dictionary_edit.xml采用的是线性布局。
本布局的具体含义是:
设置的垂直或水平的属性值来排列所有的子元素。
通过两个edittext、一个button和两个textview来实现两个文本框(在界面视图中包含)和一个按钮(save),并设置其相关的属性值。
该布局体现在对单词添加功能和对单词查询功能进行操作时显现的界面。
Dictionary_list.xml采用的也是线性布局。
该布局通过两个界面元素listview和textview,实现了当从数据库中导入的单词在主界面中动态的加载和显示时,会自动的扩充单词在主界面中显示的行数,并根据模拟器的尺寸来进行调整。
String.xml该文件主要是设置在界面中显示出的中文和英文信息(标题等显示在界面中的信息)。
dictionary_edit.xml:
xmlversion="1.0"encoding="utf-8"?
>
android=" android: orientation="vertical"android: layout_width="fill_parent" android: layout_height="fill_parent"> orientation="horizontal" android: layout_width="fill_parent" android: layout_height="wrap_content"> layout_width="wrap_content" android: layout_height="wrap_content" android: text="@string/title"/> id="@+id/title" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_weight="1"/> layout_width="wrap_content" android: layout_height="wrap_content" android: text="@string/body"/> id="@+id/body"android: layout_width="fill_parent" android: layout_height="wrap_content" android: layout_weight="1" android: scrollbars="vertical"/> id="@+id/confirm" android: text="@string/confirm" android: layout_width="wrap_content" android: layout_height="wrap_content"/> 系统测试及性能分析 系统测试 总体性能图 主类dictionary.java测试图 工程测试图 该图说明代码结构良好,不需要进行重构。 (红线在绿色的范围之内)复杂度较小。 而在dictionaryEdit.java文件中我们可以看到: dictionaryEdit.java测试图 说明该段代码需要进行重构,进行重构的方法可以从下图看出: 函数复杂度测试图 在onCcreate()方法的复杂度大到了9,说明该方法需要进行改进和重构。 主方法测试图 测试总体来说,需要进行重构的方法较少,整体性能较好。 数据测试表 输入值 预期结果 实际结果 结论 添加新词汇测试: 输入abnormal,单击保存 添加abnormal到数据库 添加abnormal到数据库 添加成功 删除单词测试: 选择单词base并点击删除按钮 只能删除用户保存过的单词,不能删除掉系统自带的单词 单词base从数据库中删除。 删除成功 查询单词测试: 输入ad 查询结果: 以ad开头的单词。 如: admin 查询结果: admin 查询成功 动态加载和导出功能测试: 动态加载和导出,点击push和pull并调整屏幕尺寸 从页面中显示出单词库中的单词(尺寸自动调整) 成功从页面中显示出单词库中的单词(尺寸自动调整) 加载成功 尺寸调整成功 总结与展望 虽然基于android平台开发的电子词典的应用软件还很不完善,例如不能进行汉英的功能查询。 但本课题完成了电子词典软件的添加,删除,查询基本功能。 不足之处在于界面设计不够完善,更多更好的功能没有实现。 下一版本的系统将从以下几个方面进行功能扩展: 1)扩展电子词典软件的模糊查询功能,可以利用网络利用该平台下开发的google搜索的功能,提供在线翻译的功能。 2)电子词典软件可以自动的装载需要加入的单词库。 3)代码和界面效果的优化。 提供更为丰富的界面设计,优化代码使结构更加合理,反应速度会更快。 4)扩展功能,增加多单词的翻译,即全文翻译等功能 参考文献 [1]Android开发者论坛 [2]Android实验室 [3]Android爱好者 [4]Sqlite中文社区 [5]http: //www.linuxfans.org中国Linux论坛 [6]Android中国论坛 [7]Android官方网站 [8]郎波,java程序语言设计,北京: 清华大学出版社.2005 [9]BruceEckeljava编程思想北京: 机械工业出版社2007 [10]RajKamalEMBEDDEDSYSTEMSARCHITECTUREPROGRAMMINGANDDESIGN北京: 清华大学出版社2005 [11]DanielW.LewisFUNDAMENTALSOFEMBEDDEDSOFTWARE北京: 高等教育出版社2005 致谢 时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。 首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。 本次毕业设计大概持续了半年,现在终于到结尾了。 本次毕业设计是对我大学四年学习下来最好的检验。 经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。 这期间凝聚了很多人的心血,在此我表示由衷的感谢。 没有他们的帮助,我将无法顺利完成这次设计。 首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。 郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。 从他身上,我学到了许多能受益终生的东西。 再次对周巍老师表示衷心的感谢。 其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。 另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。 最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。 致谢 四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。 从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。 回首四年,取得了些许成绩,生活中有快乐也有艰辛。 感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。 学友情深,情同兄妹。 四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。 在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。 最后,我要特别感谢我的导师刘望蜀老师、和研究生助教吴子仪老师。 是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。 老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。 他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。 在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺: 所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。 尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。 对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名: 日 期: 指导教师签名: 日 期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即: 按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 google android 平台 电子辞典 软件设计 实现 硕士学位 论文