基于google+android平台电子辞典软件设计与实现V011.docx
《基于google+android平台电子辞典软件设计与实现V011.docx》由会员分享,可在线阅读,更多相关《基于google+android平台电子辞典软件设计与实现V011.docx(19页珍藏版)》请在冰豆网上搜索。
基于google+android平台电子辞典软件设计与实现V011
基于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
目录
1前言1
1.1系统开发背景1
2系统概述2
2.1系统需求分析2
2.2Android平台结构2
3系统设计4
3.1系统需要解决的主要问题4
3.2系统功能框架4
3.3系统总体流程图6
3.4系统关键技术7
3.5数据库的设计7
4系统实现9
4.1查询模块的实现9
4.2添加模块的实现10
4.3删除模块的实现11
4.4装载模块的实现12
4.5系统交互界面的实现14
5系统测试及性能分析17
5.1系统测试17
6总结与展望23
参考文献24
致谢25
1前言
1.1系统开发背景
目前,市场上使用较多的智能手机操作系统包括Symbian、PalmOs、windows MobilesLinux等,谷歌基于Linux的手机软件Android一度被业内视为最有希望的移动平台。
Android的强势进入不但给Linux带来了新的生机,也加剧了Linux移动平台内部的竞争,开发这样一个手机软件平台的原因之一,就是30亿的手机用户享受近年来各种各样的技术创新,特别是在互联网方面的各种技术创新。
在这样的基础和前景下,基于android平台下设计电子词典应用软件,可以在android平台下更好的学习相关技术。
2系统概述
2.1系统需求分析
针对本课题在当前google提供的SDK的最新版本的开发过程中,汉英功能暂不能实现,只能进行英汉功能模块的开发,在使用数据库方面使用默认自带的sqlite嵌入型的小型数据库。
尽管不如完全面向对象的数据库(例如db4o)开发的更加方便。
但当完成开发后,可以尝试用db4o来取代sqlite数据库。
这样就使整个数据库的操作效率更加完善。
系统总体业务可以描述为以下几点:
1)在主界面是否能显示出数据库中的单词,并按一定次序显示出来。
2)显示菜单功能,是否能进行功能键的判断并进行相应的测试。
3)运行状态的判断,根据对菜单功能进行测试得到的结果,对当前状态进行判断。
4)异常的出现,判断可能出现的异常,并对不同的功能进行测试。
5)模拟器的重新启动,清除在模拟器下操作功能出现的异常情况。
2.2Android平台结构
以下图表展示了Android操作系统的主要组成部分。
图2.1Android系统架构图
3系统设计
本章对系统的功能框架以及各个功能模块之间的关系进行描述,使用面向对象的思想对系统的设计方法进行分析,设计了系统中的相关类。
3.1系统需要解决的主要问题
基于在android平台下设计电子词典软件需要解决以下几个问题:
数据库使用情况:
当前android平台采用的是sqlite数据库。
把单词库作成“.db”文件导入到android平台下的sqlite数据库。
首要问题是在初始化时需要创建的数据库名称,并且表名要和导入的数据库名称一致。
此外还要熟悉Fileexplorer的文档结构。
布局问题:
在android平台下开发应用软件,最重要的是布局问题。
在该平台中采用的是xml文件来设置布局。
在SDK平台下,提供了包括图片、文字显示、以及xml文件的布局设计方法。
在此基础上,开源爱好者也开发出一个可视化的布局工具。
虽然控件不是很丰富,但随着android平台被更多广大爱好者的关注,更多更好的布局工具将会出现在我们面前。
3.2系统功能框架
在设计系统的功能架构时,主要分为查询、动态装载和定位、增删改、显示尺寸、动态导入和导出等功能模块。
系统模块结构示意图如下:
图3.1系统功能结构示意图
英汉查询功能模块中包括了英文查询功能,并且还实现了模糊查询功能。
主要操作是在主界面中单击查询和输入动态查询。
单词的增删改功能包括单词的增加,删除,修改功能。
用户可以向单词库中增加、删除、修改单词库中的单词。
导入和导出功能现在只能手动在模拟器中才能实现单词库的导入和导出的功能。
详细的处理过程:
1)首先,配置好数据库。
使数据库支持模拟器文本框的检索。
通过模拟器的文本框进行单词输入。
通过数据库进行匹配,并将结果输出到屏幕。
2)其次,把不同类型的文件(英文单词库)制作成一个.db文件。
通过Fileexplorer,使得sqlite数据库可以动态的导入。
3)添加4个功能模块,分别为:
添加词汇功能、删除功能、查询功能以及导入功能(单词库文件)。
4)进行屏幕尺寸的调配,使得中心屏幕更适合用户的要求。
3.3系统总体流程图
启动模拟器后,模拟器会自动加载指定的单词库,然后进入主界面,并在主界面中把单词库中的单词显示出来,而且会根据屏幕的大小自动调整显示出的单词数量。
然后在菜单栏中可以选择添加、删除和查询功能,并进入相应的界面。
如果不想进入相应的界面,按ESC可以后退到主界面。
整个流程图如下:
图3.1总体流程图
3.4系统关键技术
在android平台下开发电子词典所采用的关键技术有以下几点:
1)对数据库数据(单词库)的导入、导出(对Fileexplorer的dos操作或鼠标操作)
2)模糊查询
3)单词的添加、删除、修改
复杂性分析:
1)当启动模拟器后,android平台会自动启动DDMS功能,把已有的功能模块的File文件自动生成镜像文件。
可以在dos下输入:
adbemulator-tcp-5555shell来进入数据库,并输入指定位置的的数据库名称,并打开相应的文件查看。
利用模拟器自带的push和pull功能来实现单词库导入和导出。
其复杂度中等。
2)界面查询功能的实现需要了解android平台下的定位操作,也是SDK中的基本功能之一。
其复杂度较小。
3)添加、删除、查询功能的实现需要查看底层代码。
深入了解后可以在程序中直接使用相关的函数。
3.5数据库的设计
数据库名称:
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;
图3.1数据库E-R图
4系统实现
本章阐述了电子词典中各个功能的实现,并且对该软件实现过程中的主要问题进行了分析并提出了解决方案。
根据上章得知,该软件包括界面布局、查询、动态装载和定位、增删改、显示尺寸以及动态导入和导出等功能模块。
4.1查询模块的实现
查询模块的功能就是把查询到单词的中文解释在界面中显示出来。
在屏幕中单击要查询的单词或输入要查询的单词,另一个界面中显示出单词和单词的中文解释。
实现过程:
设置6个静态字段——包括3个数据库中表字段的名称、数据库的名称、表的名称和数据库的版本(sqlite版本默认为3)。
首先,创建数据库,并通过模拟器把外部单词的数据库导入,修改创建数据代码将其改为已打开的数据库。
其次,通过调用函数publicCursorquery(Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy)来实现查询功能,并在相应的editText中显示出查询的信息。
图4.1查询界面
4.2添加模块的实现
添加单词的功能就是在数据库中添加没有的单词。
当点击菜单栏中的添加按钮后,会进入另一个界面,在此界面中输入要添加的单词。
由于api未支持中文的输入,所以单词的释义还不能添加。
添加后的单词会自动进入数据库中并保存下来。
实现过程:
在editText中输入英文单词,调用dictionaryeditText.java中的saveState()函数。
在此函数中调用createNote()方法,参数为输入的内容。
此内容的获取是通过读取当前在editText中的字符串,利用insert()方法把读取到的内容插入到数据库中,从而完成对单词的添加。
图4.1添加界面
4.3删除模块的实现
删除单词功能的实现过程是在点击菜单栏的删除键,前提已经选中要删除的单词。
界面会弹出一个消息栏,提示单词已经删除,并且在数据库中该单词也已经删除。
实现过程:
删除功能的实现过程调用函数publicintdelete(Stringtable,StringwhereClause,String[]whereArgs)操作数据库。
具体的参数如下:
delete(DATABASE_TAB