版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Android的外文词典软件的设计和实现摘要在经济全球化的趋势下,英语的广泛应用让它不再只是学生的学科之一,学习英语已经成为社会各个人群的基础需求。移动互联网技术在高速发展的科技影响下变得愈发成熟,移动智能终端也由此在社会中普及,词典APP孕育而生。词典软件相较于传统纸质词典,没有大体积、高重量、不方便携带等局限性,对英语学习者而言使用起来更加方便。它不仅能直接内置于移动设备中,而且查询速度快,不需要费时费力的翻阅查询,让语言学习者没有了时间和地点的限制,任何情况下都可以进行碎片化学习,大幅度的提高了用户学习英语的效率。本文首先对词典软件的研究背景及国内外的发展现状进行了介绍,分析市面上已有的电子词典和用户需求。然后详细介绍了基于安卓平台的外文词典软件的设计和实现过程,对软件功能需求、技术可行性以及实现的方法进行全面分析,对系统架构和系统模块设计以及创新部分和难点等方面进行了细致地阐述,并且对本软件的功能结构进行讲解和展示,最后阐述了各个模块的详细设计。本文所介绍的是基于安卓平台的外文词典软件的设计和实现,研究方法和技术主要与安卓应用层开发技术相关,使用Java作为开发语言。使用安卓内置的轻量级SQLite数据库,作为离线单词的存储、增删和检索的开发接口;设计了语音识别输入、在线查询等功能,让用户能够更加方便的使用本词典,提高用户体验。目前本软件在真机及模拟器上均已通过测试。关键词:Android,外文词典,英文单词,SQLite数据库目录摘要 2目录 4第一章绪论 61.1研究工作的背景与意义 61.2国内外研究历史与现状 61.3本文的主要工作 71.4本论文的结构安排 7第二章系统需求分析 82.1功能需求分析 82.2可行性分析 82.3相关技术及开发工具 9第三章系统总体概要设计 103.1系统框架设计 103.2具体功能模块设计 103.2.1主菜单模块设计 103.2.2离线词库模块设计 113.2.3在线词库模块设计 113.2.4生词本模块设计 123.2.5单词编辑模块设计 123.2.6用户登录模块设计 123.2.7用户注册模块设计 133.2.8密码修改模块设计 133.2.9用户主页模块设计 133.3数据库设计 14第四章系统的详细设计及实现 144.1离线词库模块实现 154.2在线词库模块实现 194.3生词本模块实现 224.4单词编辑模块实现 244.5用户登录模块实现 264.6用户注册模块实现 284.7密码修改模块实现 304.8用户主页模块实现 32第五章运行结果与系统测试 345.1运行结果 345.2系统测试 345.2.1离线词库测试 355.2.2在线词库测试 355.2.3生词本及单词编辑模块测试 365.2.4登录、注册及密码修改模块测试 375.2.5用户主页模块测试 39第六章总结与展望 406.1总结 406.2展望 40参考文献 42第一章绪论1.1研究工作的背景与意义英语是全球60多个国家的官方语言,被最广泛的作为第二语言学习。世界各国的联系在全球经济一体化的趋势下变得日益紧密,英语是大部分国际场合的沟通语言。英语已不再是一个国家或民族所专有的语言,而是一种国际交往工具,是一种中性的信息媒介。同时出国留学需要对学生的雅思、托福或其他英语等级考试成绩进行考核,我国也一直将英语作为学生中高考必考科目。由此可见对,于社会中各个人群而言,英语水平已成为升学求职的有力竞争因素。随着科技进步以及社会生产力的提高,电子产品与人们的日常生活紧密相连。数字革命首先向词典发起冲击,从开始的传统纸质词典到掌上词典、电脑词典、电子词典,词典的旧载体不断被新载体取代。新一代的外语学习者更加习惯于新的,能够便捷的进行阅读、学习和交流信息的方式。他们在成长在数字信息时代,从电脑、平板到智能手机等等,各种网络智能终端纷纷强势崛起,并且迅速在社会中普及。REF_Ref71150233\r\h[1]与多数体积大、难以携带的传统纸质词典相比,直接在手机上安装的词典软件更受当代语言学习者的青睐,词典软件系统具有重要功能实现全面、词库收录完整、多种情景学习发展模式、便携智能的优点。REF_Ref71150244\r\h[2]研究表明,电子词典在接收和生产任务时更加有用REF_Ref71196078\r\h[3],手机词典软件已迅速成为英语学习者不可或缺的工具之一。1.2国内外研究历史与现状人们的外语学习方式,随着互联网技术的发展和智能移动终端的大面积普及,发生了进一步的变化REF_Ref71150276\r\h[4],,词典的形式迅速从纸质词典向电子词典软件发展。REF_Ref71150294\r\h[5]电子词典的起源是20世纪40年代末期由美国机器翻译研究提出的。REF_Ref71150305\r\h[6]中国的电子词典研究始于本世纪70年代,同样起源于对自然语言处理和机器翻译的研究。REF_Ref71150314\r\h[7]如今的电子词典已经完全融入到人们的生活中,人们的学习在很大程度上摆脱了时间和地点的限制,在移动设备上学习英语,可以让英语学习者利用其零散的时间,实现碎片化学习。调查分析研究结果表明,大学生在手机中装有词典软件的比例已达100%REF_Ref71150460\r\h[8],词典软件的受欢迎程度可见一斑。目前市面上的已有许多功能不一的电子词典,其中百度词典、有道词典的用户及下载量位居前列,但是它们的内存占用空间大、网络流量需求大。部分词典软件则不支持语音输入或标记生词的功能,徒有许多其他内容,用户却难以受益。而有更多词典内置了许多收费内容,用户体验差。英语词典是能够沟通汉语和英语的桥梁,作为跨文化交际的重要研究工具,其作用不可估量。REF_Ref71150662\r\h[9]因此开发一款内存占用小,满足用户需求,绿色无广的电子词典,可以为社会、为所有语言学习者创造更多价值。1.3本文的主要工作本文探讨了在安卓平台上开发外语词典软件的基本方法,对整个系统进行了详细全面的需求分析、概要设计、详细设计、系统运行和测试。设计实现了离线词典、在线词典、生词本、用户中心等功能模块。对模糊查询、语音识别、数据库存储等技术与词典软件的结合进行了研究和思考,旨在设计实现一款内存占用小、能耗低、实用性强、可移植性高并且对用户友好的的外文词典软件,让用户更加方便、快捷、高效的学习英语。1.4本论文的结构安排本文在第一章主要介绍了词典软件的研究背景及意义,发展历史与现状;第二章对系统的需求分析和概要设计进行介绍,详细说明了本系统的功能需求及可行性,开发平台及开发技术;第三章介绍了此次设计的外文词典的系统总体框架、具体功能模块及数据库的设计;第四章展示了本系统的用户界面设计,采用多种表达方式着重阐述了系统实现的详细过程,交代了包括离线词库模块、在线词库模块、生词本模块、单词修改模块及用户登陆、注册、密码修改模块等各个功能模块的实现方法,重点讲解了本系统实现的关键技术和要点;第五章是对本系统的测试结果和运行情况进行分析,保证系统能够正常工作;最后一章是对全文概括和对全部工作内容和工作中的不足之处进行总结,提出日后可以改进的地方。第二章系统需求分析2.1功能需求分析本系统为满足用户需求,提供以下功能:离线查询:用户从本地词库中查询单词,在未联网的情况下可以使用其查询单词。有自动语音识别,用户可以语音输入查询生词。用户可在离线词库中将查询的生词加入到生词本中。在线查询:用户在联网情况下可以使用在线词库查询单词。在线查询同样提供语音识别功能进行语音输入查询。生词本:用户可以将离线词库中的生词添加到生词本中,在生词本中可以对生词进行删除或修改单词拼写和单词解释。生词本与用户个人账号绑定。用户中心:用户个人中心,显示用户的个人信息,可在用户中心退出个人账号。登录、注册及修改密码:用户需要登录个人账号以使用本系统功能,用户忘记密码时,可修改新密码。新用户可注册个人账号后登录软件。2.2可行性分析(1)技术可行性:本系统在技术上是可行的,软件实现所采用的技术均已发展成熟且底层支持高效,具备可开发条件。本系统使用Android作为开发平台,它以Linux为基础,REF_Ref71150705\r\h[10]其具有和Linux一样的开放精神。REF_Ref71150718\r\h[11]Android平台本身大量使用开源库类,系统功能丰富,安全性高,并且为开发人员提供了一个非常便捷的开发环境REF_Ref71150774\r\h[12]。对于安卓的应用开发,系统提供了Activity、Service、BroadcastReceive和ContentProviderREF_Ref71150787\r\h[13]四个基本组件。Activity组件,是应用程序可以看得到的窗口,作为应用程序的界面框架,负责动态的加载各种UI视图,实现底层的消息传递,提供人机交互的功能;Service没有用户界面,为应用程序提供后台服务,最基本的两个功能是执行需要长时间运行的耗时操作和组件之间的交互;BroadcastReceiver用来接收处理intent广播,实现安卓应用程序的跨进程通信;ContentProvider使得应用程序独立安全的同时可以把自身数据提供给其他应用程序访问,不同应用程序之间的数据共享创造出更加丰富的功能,安卓开发的所有应用程序都是在这些组件之上构建的。REF_Ref71150798\r\h[14]采用Java作为开发的编程语言,它是非常成熟的计算机语言,具有超高的稳定性、安全性和独立性,其对象适用面广,使用简单便捷,REF_Ref71150812\r\h[15]目前市面上许多软件都是基于Java开发。Java和安卓开发几乎已经成为固定搭档,应用面向对象的技术快速构建所需基类,通过对基类进行继承及接口调用实现用户界面,能够快速地实现电子词典的各种activity之间的数据传递REF_Ref71150825\r\h[16]。本系统数据库选择安卓平台自带的小型轻量级数据库SQLite,SQLite数据库不仅性能很好,而且消耗内存少REF_Ref71150852\r\h[17],符合减少软件占用内存的期望。支持大部分的主流操作系统,能够和许多编程语言结合,具有ODBC接口,相比其他著名的开源数据库管理系统来说,它的处理速度要更快。REF_Ref71150861\r\h[18]SQLite引擎不是程序与之通信的独立进程,而是连接到程序中成为它的主要部分之一.所以主要的通信协议是在编程语言内的直接API调用,这在消耗总量、延迟时间和整体简单性上有积极的作用。REF_Ref71150871\r\h[19](2)操作可行性:本系统在安卓平台运行,市场研究机构IDC2019年发布的智能手机市场最新预测报告显示安卓手机占87%市场份额,保证了大部分用户都能够使用本软件。且系统操作简单,直观的展示离线词库,在线词库,生词本等功能,使用者可以轻松使用产品各项功能,符合大部分用户的需求,具有实际可操作性和使用价值。REF_Ref71150893\r\h[20]2.3相关技术及开发工具开发工具:Androidstudio;开发环境:win10;Androidstudio是谷歌专为Android应用开发而打造开发工具,其性能稳定启动速度快,支持多种插件和各种主流代码管理工具,具有强大的UI编辑器,集合了Eclipse+ADT的优点,并且能够实时展示界面布局效果。本系统使用的科大讯飞提供“科大讯飞云”的语音识别技术来完成系统功能。“科大讯飞云”是一个基于云计算技术,给开发者提供有着一个智能语音技术的开放平台。REF_Ref71150908\r\h[21]它提供高质量的语音识别服务,将人的声音准确转换成对应文字,相对简单方便的使用方法,使开发者的开发工作量大幅减少。第三章时域积分方程数值方法研究电子科技大学学士学位论文第三章系统总体概要设计3.1系统框架设计本系统的基本功能框架如图3-1-1所示,根据手机词典软件的各项功能划分功能模块,具体功能模块的详细说明在3.2节中介绍。图3-SEQ图3-\*ARABIC1系统基本功能用例图3.2具体功能模块设计3.2.1主菜单模块设计主菜单中包含四个子页:离线词典、在线词典、生词本及用户主页。主菜单界面中共包含四个按钮,在mainactivity.java中为各个按钮设置跳转程序。图3-SEQ图3-\*ARABIC2主菜单模块框架图3.2.2离线词库模块设计图3-SEQ图3-\*ARABIC3离线词库模块框架图(1)搜索框输入查询的单词:用户在搜索框中输入要查询的单词(2)单词联想:用户在搜索框中输入的过程中,系统自动联想相关单词,用户可以点击联想列表中的单词,直接进行此单词的查询。(3)语音识别输入:用户点击语音识别按钮,说出要查询的单词,系统自动识别并转换成相对应的文字显示在搜索框中,用户可以直接查询此单词。(4)显示查询单词结果:用户点击查询按钮,界面中显示从离线词库查询到的结果。(5)删除搜索框中的内容:用户可以点击删除按钮,对搜索框中的内容进行一次性删除。(6)添加到生词本:在查询单词的结果页面中提供添加到生词本的按钮,用户点击此按钮可以将单词加入生词本中。3.2.3在线词库模块设计图3-SEQ图3-\*ARABIC4在线词库模块框架图(1)搜索框输入在线查询的单词:用户在搜索框中输入要在线查询的单词。(2)语音识别输入:用户点击语音识别按钮,说出要查询的单词,系统自动识别转换成相对应文字显示在搜索框中,用户可以直接查询此单词。(3)显示在线查询单词结果:用户点击查询按钮,界面中显示在线查询结果。(4)删除搜索框中的内容:用户可以点击删除按钮,对搜索框中的内容进行一次性删除。3.2.4生词本模块设计图3-SEQ图3-\*ARABIC5生词本模块框架图(1)添加到生词本:用户在离线查询时点击添加到生词本按钮后,查询单词结果保存在生词本中。(2)删除生词:用户选中生词本中单词,点击删除按钮可将其删除。(3)编辑单词:用户可以选择单词点击编辑按钮对单词进行修改。(4)生词本与用户个人账号绑定,仅显示当前用户的生词本内容。3.2.5单词编辑模块设计图3-SEQ图3-\*ARABIC6单词编辑模块框架图(1)编辑单词:点击编辑按钮后,用户可对生词本中选中的单词拼写和解释进行修改。(2)取消编辑:用户点击返回按钮,单词不变,返回到生词本界面。3.2.6用户登录模块设计图3-SEQ图3-\*ARABIC7用户登录模块框架图(1)登录:用户如果已经拥有个人账号,可以输入手机号和密码登录账号。登陆成功即可进入软件主菜单使用本软件。(2)立即注册:如果用户没有注册过账号,可点击立即注册处,注册新账号。(3)忘记密码:如果用户忘记密码,可点忘记密码处,修改新的密码。3.2.7用户注册模块设计图3-SEQ图3-\*ARABIC8用户注册模块框架图(1)注册新用户:用户输入手机号、昵称、账号密码和验证码即可注册个人账号。(2)立即登录:点击此处进入登录界面。3.2.8密码修改模块设计图3-SEQ图3-\*ARABIC9密码修改模块框架图(1)修改密码:用户输入手机账号、新密码和验证码即可修改密码。(2)立即登录:点击此处进入登录界面。3.2.9用户主页模块设计图3-SEQ图3-\*ARABIC10用户主页模块框架图用户主页显示用户昵称、手机号及用户账号(注册时所用手机号)。用户可以在用户主页退出登录。3.3数据库设计本系统对离线词库中的单词及用户数据的存储使用安卓自带的SQLite数据库,根据需求设计创建以下表:表3-SEQ表3-\*ARABIC1数据库所包含表表名表含义word离线单词数据库user用户数据库(1)word表用来保存离线词库中的单词的各项属性,包括单词编号、单词和单词解释。_id为主键,不允许为空。Word不允许为空,yisi不允许为空。word表结构如下:表3-SEQ表3-\*ARABIC2word表的字段含义及具体字段设计字段名称字段含义类型长度是否为主键_id单词编号varchar30是word单词varchar32否yisi单词解释varchar255否(2)user表用来保存用户的个人信息,包括用户昵称、手机号和账号密码。username为主键,不允许为空。phone不允许为空,password不允许为空。user表结构如下:表3-SEQ表3-\*ARABIC3user表的字段含义及具体字段设计字段名称字段含义类型长度是否为主键username用户昵称varchar30是phone手机号varchar32否password账号密码varchar32否第六章全文总结与展望第四章系统的详细设计及实现4.1离线词库模块实现(1)离线词库模块用户界面实现图4-1-1展示离线词库界面,在离线词库xml文件中,使用linearlayout布局,该布局下添加一个语音按钮buttonvoice、一个输入框seek、一个查询按钮buttongo、一个清除按钮clearbutton。离线查询界面上方搜索框输入单词,点击右侧放大镜按钮进行查询,点击旁边的删除按钮可以一次性清除搜索框中内容。右侧话筒按钮可以进行语音识别输入,下方提示“请开始说话…”。输入单词过程中自动联想,将匹配到的相关单词显示在搜索框下方列表中。离线查询结果显示在界面中,点击加入生词本将查询单词添加到生词本中,点击关闭返回查询界面。若未在离线词库中找到查询单词,提示“未找到该单词”;若搜索框内容为空白,提示“查询内容不能为空”。图4-1-SEQ图4-1-\*ARABIC1离线词库界面(2)离线词库模块功能实现离线词库使用流程如图4-1-2所示:图4-1-SEQ图4-1-\*ARABIC2离线词库流程图使用离线词库进行查询单词时,查询结果由本地词库文件提供,本地词库文件保存在res\raw目录中。将res\raw目录中数据库文件dictionary.db用getResource().openRawResources方法获得InputStream对象,将其中的数据写入到手机SD卡的目录文件(/sdcard/dictionary)中。主要实现代码如代码4-1-1所示:代码4-1-SEQ代码4-1-\*ARABIC1获取dictionary.db文件的绝对路径,如果/sdcard/dictionary目录中存在,创建这个目录;如果在/sdcard/dictionary目录中不存在dictionary.db文件,则从res\raw目录中复制这个文件到SD卡的目录(/sdcard/dictionary)。复制完成后打开/sdcard/dictionary目录中的dictionary.db文件。使用离线词库查询单词在查询框输入字母时自动联想相关单词,显示在输入框下方列表中。将English字段的别名设为_id,使用模糊查询语句"selectenglishas_idfromt_wordswhereenglishlike?"进行联想,调用tostring()返回文本到listview中。使用语音输入点击语音按钮后界面中提示“请开始说话…”,停止说话1秒后系统则认为不再输入,自动停止录音,查询框中显示监听到的内容。若用户超过4秒还未说话,系统自动当作超时处理。主要实现代码如代码4-1-2所示:代码4-1-SEQ代码4-1-\*ARABIC2isshowDialog为true时显示听写对话框,设置回调窗口,调用mlatDialog.show()开始听写,调用showtip()在屏幕中提示“请开始说话…”。使用离线词库查询单词时若所查询单词不在本地词库中,返回“未找到该单词.”;若查询框内容为空点击搜索,返回“查询内容不能为空!”;若所查询单词在本地词库中,返回查询结果,点击加入生词本将查询单词加入到生词本中,点击关闭将关闭查询结果。实现代码如代码4-1-3所示:代码4-1-SEQ代码4-1-\*ARABIC3触发点击事件时,当点击buttongo,如果查找到所输入单词,显示其中文意思,必须使用movetofirst方法将记录指针移动到第一条记录的位置。如果actvword获取字符串为空,调用toast.maketext()提示用户。用AlertDialog.Builder(this)显示查询结果对话框,对话框图标从drawable中获取,标题设置为“查询结果”,消息框显示查询结果的内容,并设置加入生词本和关闭按钮。语音识别输入部分本系统使用的是科大讯飞SDK开发包,开发者在科大讯飞官网注册后申请一个APPID,申请到APPID之后就可以下载SDK开发包,使用科大讯飞的语音服务了。实现代码如代码4-1-4所示,此处appid必须和下载的SDK保持一致,否则会出现10407错误:代码4-1-SEQ代码4-1-\*ARABIC4定义一些参数:语音听写对象privateSpeechRecognizermIat;语音听写UIprivateRecognizerDialogmIatDialog;用HashMap存储听写结果privateHashMap<String,String>mIatResults=newLinkedHashMap<String,String>();SpeechConstant.VAD_BOS设置语音前端点,静音超时时间,即用户多长时间不说话则当做超时处理;SpeechConstant.VAD_EOS设置语音后端点,后端点静音检测时间,即用户停止说话多长时间内即认为不再输入,自动停止录音。在听写监听器中,设置onbeginofspeech()类,此回调表示sdk内部录音机已经准备好了,用户可以开始语音输入;onerror()错误码10118(您没有说话),可能是录音机权限被禁,需要提示用户打开应用的录音权限;onendofspeech()检测到语音的尾端点,已经进入识别过程,不再接受语音输入;onresult返回语音输入结果。4.2在线词库模块实现(1)在线词库模块用户界面实现图4-2-1展示在线词库界面,在线词库xml文件中使用linearlayout布局,该布局下添加一个语音按钮buttonvoice、一个输入框seek、一个查询按钮buttongo、一个清除按钮clearbutton和一个网页视图mywebview1。在线词库界面和离线词库界面大致相同,在搜索框内输入要查询的单词,点击搜索按钮即可查看单词解释,在线词库中的单词解释从有道在线翻译网站中获取。若搜索框中未输入内容点击搜索按钮,提示“查询内容不能为空”。左侧有语音识别输入按钮,右侧有清空搜索框按钮。图4-2-SEQ图4-2-\*ARABIC1在线词库界面(2)在线词库模块功能实现在线词库使用流程如图4-2-2所示:图4-2-SEQ图4-2-\*ARABIC2在线词库查询流程图本系统在线词典通过调用有道翻译API实现在线查询功能,实现代码如代码4-2-1所示:代码4-2-SEQ代码4-2-\*ARABIC1当点击clearbutton时,清空输入框;点击buttongo时,获取输入框中内容,输入框为空时,调用toast.maketext()提示“查询内容不能为空”;若不为空获取内容后跳转到"/m/search?keyfrom=dict.mindex&q=",为了实现与web页面的动态交互,本系统允许webview通过myWebView1.addJavascriptInterface()接口向web页面注入Java对象,这样html就能调用客户端。在在线词库的代码实现中,系统会自动启动自带浏览器来响应正在解析的http开头的字符串中的URL。本系统并不希望在使用软件的过程中跳转到系统外,系统需要将查询结果显示在webview控件中,所以重写shouldoverrideurlloading方法来覆盖webview中的webviewclient对象,这个方法的处理告诉Android系统,由指定代码中指定的webviewclient来处理这个意图,并加载url,使点击链接后不使用其他浏览器打开。实现代码如代码4-2-2所示:代码4-2-SEQ代码4-2-\*ARABIC2在线词库语音识别输入功能和清空输入框功能实现代码与离线词库功能实现代码类似,可参考4.2离线词库模块功能实现部分介绍及代码。4.3生词本模块实现(1)生词本模块用户界面实现图4-3-1展示生词本界面,生词本使用linearlayout布局,该布局下添加一个列表视图listview。本系统生词本功能与用户账号绑定,生词本中仅显示当前用户已加入到生词本的单词,用户可以点击列表中的单词显示提示框,可对单词进行编辑和删除的操作。若点击编辑按钮,则跳转到单词编辑界面,可修改拼写和注释;若点击删除按钮,则将该单词从生词本中删除;若点击取消按钮,则返回生词本界面。图4-3-SEQ图4-3-\*ARABIC1生词本界面(2)生词本模块功能实现图4-3-2为生词本使用流程:图4-3-SEQ图4-3-\*ARABIC2生词本流程图生词本和用户id绑定。从data中逐行取出数据返回到listview中,添加一个事件监听,对用户选中项处理。主要实现代码如代码4-3-1所示:代码4-3-SEQ代码4-3-\*ARABIC1用listview1.setadapter设置listview后端数据:getcount()返回listview1中要显示的子view数量,从data.size()中获取;getitem()返回一个子view;getitemid()返回一个item的id,由position决定是哪个id;getview()对listview的优化,convertview为空时,创建一个新视图,convertview不为空时,代表他是滚出屏幕,放入recycler中的视图,若需要用到其他layout,则用inflate(),同一视图,用findviewby()。为视图添加一个事件监听,对于用户选中的项进行处理。用AlertDialog.Builderbuilder=newBuilder(NoteBook.this)创建一个新的对话框,它的标题图标从drawable中获取,设置标题为“提示”,消息框内容为“确认操作”,并且包含取消、编辑、取消三个按钮。4.4单词编辑模块实现(1)单词编辑模块用户界面实现图4-4-1展示单词编辑界面,在布局中添加一个单词文本框,一个注释文本框,一个单词拼写输入框,一个中文解释输入框,一个确定按钮和一个取消按钮。用户在编辑单词界面单词文本框处输入可修改单词拼写,在注释文本框处输入可修改中文解释。若点击确定,修改成功则返回单词本界面,生词本中显示已修改的单词;若用户点击确定时,单词拼写输入框或中文注释输入框未输入内容,则修改失败,提示“信息不能为空”。若用户点击取消,则取消编辑直接返回生词本界面。图4-4-SEQ图4-4-\*ARABIC1单词编辑界面(2)单词编辑模块功能实现图4-4-2为单词编辑使用流程:图4-4-SEQ图4-4-\*ARABIC2单词编辑流程图编辑单词时,程序获取输入框数据,验证单词拼写和单词注释均不为空,将数据传递给intent对象。实现的主要代码如代码4-4-1所示:代码4-4-SEQ代码4-4-\*ARABIC1当action.equals(“edit”)时文本框中返回单词和解释,获取单词和解释输入框中的内容,并设置index和ids的值。设置字符串word和explain获取输入框的数据,如果点击取消,直接结束;如果点击确定,判断单词和注释是否为空:是,则显示“信息不能为空”;否则输出单词解释,更新数据库中的内容。当确定修改单词时,创建intent对象参数分别为当前界面和主菜单,将要传递的word和explain值传给intent对象,启动该intent实现跳转到主菜单。4.5用户登录模块实现(1)登陆模块用户界面实现图4-5-1展示用户登录界面,布局中添加两个titleborderlayout,在其中一个添加账号输入框,另一个添加密码输入框。在布局下方再添加一个登录按钮、一个忘记密码文本框和一个立即注册文本框。用户登陆时,已注册用户在账号输入框中输入注册时所用的手机号,密码输入框中输入用户密码,点击登录即可进入本系统主菜单。若用户未在账号输入框或密码输入框中输入内容就点击立即登录,则提示“账号或密码为空”;若账号或密码输入错误,则提示“账号或密码错误”。如果已注册用户忘记密码,点击登录界面“忘记密码?”处,进入修改密码界面。未注册用户点击下方“立即注册”跳转到注册界面可注册新账号。图4-5-SEQ图4-5-\*ARABIC1登陆界面(2)登陆模块功能实现图4-5-2为用户登录流程:图4-5-SEQ图4-5-\*ARABIC2用户登陆流程图用户登录时验证用户输入的手机号和密码是否匹配,登录成功跳转页面。主要实现代码如代码4-5-1所示:代码4-5-SEQ代码4-5-\*ARABIC1phone、pwd、register、find和login分别用findviewbyid()获取textview对象,bundle得到一个intent对象所带数据,若不为空在phone输入框中返回intent对象的数据。register、find和login添加一个事件监听,使点击时跳转到相应页面。当点击login时,对phones和password所获取的字符串分别验证,如果账号密码不为空,判断账号密码是否存在在数据库中;否则调用Toast.makeText()在当前页面提示“账号或者密码为空”。如果账号和密码正确,跳转到主菜单。否则调用Toast.makeText()在当前页面显示消息提示“账号或者密码错误”。4.6用户注册模块实现(1)注册模块用户界面实现图4-6-1展示用户注册界面,添加四个输入框,分别用来实现手机账号输入、用户昵称输入、登入密码输入和验证码输入。在下方添加一个注册按钮和一个立即登录文本框。用户在注册界面输入用户昵称、手机号、登入密码以及正确的验证码即可注册账号,点击注册按钮注册成功后自动跳转到登录界面。若输入手机号格式错误,提示“手机格式错误”;若输入密码格式错误,提示“密码格式错误,格式以字母开头,长度在6-18之间”;若输入验证码错误,提示“验证码错误”。点击下方“立即登录”,立即返回登录界面。图4-6-SEQ图4-6-\*ARABIC1注册界面(2)注册模块功能实现图4-6-1为用户注册流程:图4-6-SEQ图4-6-\*ARABIC2用户注册流程图用户注册时,验证输入的用户昵称、手机号密码格式以及验证码是否正确,符合要求后数据返回intent对象,跳转页面。主要实现代码如代码4-6-1所示:代码4-6-SEQ代码4-6-\*ARABIC1user_phone、user_name、user_password、code、logins、btn_register和img都调用findviewbyid()获取对象,并且分别给logins、btn_register和img添加事件监听,处理用户操作。还需在控件初始化时设置随机生成图片验证码,以防止运行第一次出现图片白色情况。点击btn_register时,触发onclick事件,字符串phones、name、passwordre和gister_confirem_code分别获取输入框中的内容。如果phones、register_confirm_code或者password输入框为空,调用toast.maketext提示消息“请输入手机号/验证码/密码”;如果phones、password格式不匹配或register_confirm_code输入错误,调用toast.maketext返回相关错误信息。如果以上情况均未出现,则用户注册成功将数据传入数据库中。4.7密码修改模块实现(1)密码修改模块用户界面实现图4-6-1展示密码修改界面,在密码修改界面布局中分别添加手机账号输入框,新密码输入框和验证码输入框,一个修改密码按钮和一个立即登录文本框。忘记密码的用户进入密码修改界面后,在界面中输入注册时所用手机号、新密码和正确验证码,点击修改密码按钮即可修改密码。修改成功后,弹出提示“修改成功”。点击下方立即登录可进入登陆界面登录账号。若输入手机号格式、密码格式或验证码错误,均返回修改失败,提示相关错误信息;若手机号、密码或验证码输入框为输入内容,返回修改失败,提示“请输入手机号/密码/验证码”。图4-7-SEQ图4-7-\*ARABIC1密码修改界面(2)密码修改模块功能实现图4-7-1为密码修改流程:图4-7-SEQ图4-7-\*ARABIC2密码修改流程图修改密码时,系统验证手机号、新密码、验证码是否与要求的格式相符合。不相符则修改失败,返回错误提示。相符合则修改成功,则更新数据,提示用户“修改成功”。主要实现代码如代码4-7-1所示:代码4-7-SEQ代码4-7-\*ARABIC1参数初始化方法可参考4.6用户注册模块中实现中初始化方法。点击button触发点击事件,字符串phones、password、register_confirem_code分别获取输入框中的内容,验证各个信息输入框是否为空,账号、密码格式以及验证码是否正确方法与4.6用户注册模块实现方法类似,修改成功后对数据库中的内容进行更新。4.8用户主页模块实现(1)用户主页模块用户界面实现用户主页界面如图4-8-1所示,在布局中添加六个文本框,分别为个人中心、用户昵称、姓名、账号、联系方式和退出登录。用户主页最上方显示“欢迎您xx”,下方显示用户昵称,账号及手机号,右边有退出登录,点击立即退出账号,返回到登录页面。图4-8-SEQ图4-8-\*ARABIC1用户主页界面(2)用户主页模块功能实现用户主页使用流程如图4-8-1所示:图4-8-SEQ图4-8-\*ARABIC2用户主页使用流程图调用findviewbyid()方法获取用户昵称、手机号和账号。设置一个退出按钮,添加一个事件监听。调用settext()把数据返回在界面中。第五章运行结果与系统测试5.1运行结果在对本系统完成了需求分析、详细设计等步骤之后,对本系统进行了具体的实现,在编码过程中对程序进行不断地调试,消除了基本的语法错误和大量的运行bug。但是为了进一步提升产品质量,还需要对软件各个模块进行全方位的功能测试,最大程度上保证系统运行的稳定性、正确性和完整性。通过对本软件的设计与实现,分析了本系统的预期目标后,选择系统测试的软硬件如下:真机环境:使用MI10作为测试手机,系统版本为AndroidOS10。模拟器环境:雷电4.0.53,系统版本为AndroidOS10。经测试运行表明本系统在真机及模拟器环境下均能正常运行。运行结果表明,系统可以获取到离线词库数据库中的信息并正常运行离线查询功能和保存生词功能;可以正常调用有道翻译API实现在线查词功能;生词本可与用户个人账号绑定,并且可以正常对单词进行修改保存;用户可以正常登录、注册及修改密码。程序运行过程稳定,页面跳转正常,各个功能模块正常实现无异常,与预期设计目标符合。5.2系统测试黑盒检测是常用的软件分析测试的方法之一,将检测研究对象看作黑色盒子,向在检测中的软件输入检测信息,分析软件中的数据输出,来探知软件设计功能的实现发展情况。REF_Ref71150933\r\h[22]如果输出数据与预设结果能够保持一致,就基本可以判定软件的功能可以正确实现。如果与预设结果有差距,那么就需要对其中的差距进行分析,找出错误原因。本文中对于系统的功能测试,采用的方法就是黑盒测试。对本系统的通用模块进行测试,分别为界面触摸,输入框输入及应用的退出。对界面进行滑动、点击、切换等操作,无触摸无效或点击无效的情况;输入框可正常输入信息;应用从程序内及后台均可正常退出。本系统各界面的布局展示、切换及跳转均正确无误,且长时间运行无内存负载过高或手机持续发烫等问题出现。5.2.1离线词库测试主菜单点击离线词库,使用离线词库查询功能。表5-1为离线词库功能测试:表5-SEQ表5-\*ARABIC1离线词库功能测试模块测试条件操作内容返回结果离线词库词库中无所查单词输入单词点击查询提示“未找到该单词”词库中有所查单词输入单词点击查询返回查询结果搜索框空白不输入内容就点击查询返回“查询内容不能为空”加入生词本点击加入生词本添加生词成功对离线词库中有无所查单词的情况进行测试,词库中有所查单词返回查询结果;反之,则返回“未找到该单词”。对搜索框为空白的情况测试,返回“搜索框不能为空”。对返回结果进行加入生词本测试,能成功添加生词。返回结果均与预设期望相同。图5-1(a)展示使用离线词库时,输入框下方自动联想单词;图5-1(b)展示的是使用语音输入时的运行界面;图5-1(c)展示离线词库查询结果界面:图5-SEQ图5-\*ARABIC1(a)单词联想界面、(b)语音输入界面、(c)查询结果界面5.2.2在线词库测试主菜单点击在线词库,使用在线词库查询功能。表5-2为在线词库功能测试:表5-SEQ表5-\*ARABIC2在线词库功能测试模块测试条件操作内容返回结果在线词库网络连接正常输入单词点击查询返回查询结果网络未连接输入单词点击查询无响应搜索框空白不输入内容点击查询返回“查询结果不能为空”对在线词库联网情况进行测试,网络正常连接时,返回查询结果;反之,则界面不响应。对在线查询时搜索框空白情况测试,返回“查询结果不能为空”。在线词库测试返回结果与预期相同。图5-2(a)展示的是在线词库的语音识别输入界面;图5-2(b)展示在线词库查词结果界面,显示在线查询结果:图5-SEQ图5-\*ARABIC2(a)在线词库语音输入、(b)在线词库查询结果5.2.3生词本及单词编辑模块测试主菜单点击在线词库,使用在线词库查询功能。点击生词本中单词,使用单词编辑功能。表5-3为生词本及单词编辑功能测试:表5-SEQ表5-\*ARABIC3生词本及单词编辑功能测试模块测试条件操作内容返回结果生词本单词已存在生词本中删除单词单词从生词本中删除单词编辑修改单词拼写或者解释在单词拼写和解释输入框输入修改成功,返回修改后的单词拼写和解释单词拼写或单词解释输入框为空点击确定修改失败,提示“信息不能为空”对生词本中单词进行处理,选中删除按钮,可将单词从生词本中移除。对编辑单词功能进行测试,若单词拼写或解释输入框空白,则修改失败,返回“信息不能为空”;反之,修改单词信息成功,返回修改后的单词。测试结果与预期结果相符。如图5-3所示,用户对生词本中单词点击后弹出提示,点击提示框中按钮均可正确跳转到对应界面:图5-SEQ图5-\*ARABIC3生词本操作界面5.2.4登录、注册及密码修改模块测试启动软件,进入首页,可立即登录账号。右下角忘记密码可更新密码。最下方立即注册可注册新账号。表5-4为登录、注册及密码修改功能测试:表5-SEQ表5-\*ARABIC4登录、注册及密码修改功能测试测试模块条件操作内容返回结果登录账号正确并且密码正确点击登录验证通过,进入主菜单账号或密码错误点击登录验证失败,提示“账号或密码错误”账号或密码为空点击登录验证失败,提示“账号或密码为空”注册手机号、昵称、登入密码、验证码均输入正确并且格式无误点击注册注册成功,自动跳转到登录界面手机号/用户昵称/账号密码/验证码空白点击注册注册失败,提示“请输入手机号/用户昵称/密码/验证码”手机号格式错误点击注册注册失败,提示“手机号格式错误”密码格式错误点击注册注册失败,提示“密码格式错误,格式以字母开头,长度在6-18之间”验证码输入错误点击注册注册失败,提示“验证码错误”密码修改输入用户手机号,新密码和验证码正确且格式正确点击修改密码修改成功,提示“修改成功”手机账号/密码/验证码空白点击修改密码修改失败,提示“请输入手机号/密码/验证码”手机号格式错误点击修改密码修改失败,提示“手机格式错误”密码格式错误点击修改密码注册失败,提示“密码格式错误,格式以字母开头,长度在6-18之间”。验证码输入点击修改密码注册失败,提示“验证码错误”。对用户登录、注册及修改密码功能分别进行测试,分为手机号、密码、昵称以及验证码输入正确、错误、是否空白及格式是否符合规定等多种情况,所有输入内容均正确的情况下,用户操作成功,返回到对应界面;反之,则操作失败,返回相应的错误信息提示用户。测试返回结果与系统预设结果相符。5.2.5用户主页模块测试用户可在用户主页退出账号。表5-5为用户主页功能测试:表5-SEQ表5-\*ARABIC5用户主页功能测试测试模块条件操作内容返回结果用户主页程序运行中点击退出按钮可以退出账号对用户主页的退出账号功能进行测试,点击可退出账号,跳转到登录界面,与预设结果相同。第六章总结与展望6.1总结本文对基于安卓平台外文词典软件进行了系统的说明。首先介绍了电子词典的研究背景、发展历史以及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广东家电行业分析报告及未来发展趋势报告
- 2026年抛光液行业分析报告及未来发展趋势报告
- 财务管理考试题及答案2026年
- 2026年中职农村电气技术(农村电气应用)试题及答案
- 上海市(2025年)省直机关公开遴选公务员笔试题及答案解析
- (2025年)iso15189考试试题及答案
- 2025年注塑质量面试题及答案
- 2026年事业单位统考公共基础知识综合模拟题库(含答案)
- 2025年产品设计功能题库及答案
- 2025年陕西一建试题及答案
- 2026年学校防范非法宗教势力渗透工作机制
- 2026年四川省成都市网格员招聘笔试模拟试题及答案解析
- 2025年四川农信(农商行)社会招聘试题及答案解析
- 2026年水利水电二级建造师继续教育通关试题库含完整答案详解【夺冠】
- 2026福州首邑产业投资集团有限公司第一次招聘19人笔试参考题库及答案解析
- 2026年校园食品安全培训试题及答案
- 建设项目提级论证方案
- 抖音直播课程培训
- 2026届山东省济南市高三二模英语试题(含答案和音频)
- 人形机器人与具身智能标准体系(2026版)
- 饲料质量培训课件
评论
0/150
提交评论