毕业设计(论文)-基于Android平台的韩语单词记忆软.doc_第1页
毕业设计(论文)-基于Android平台的韩语单词记忆软.doc_第2页
毕业设计(论文)-基于Android平台的韩语单词记忆软.doc_第3页
毕业设计(论文)-基于Android平台的韩语单词记忆软.doc_第4页
毕业设计(论文)-基于Android平台的韩语单词记忆软.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)设计(论文)题目基于Android平台韩语单词记忆软件姓名:学号:学院:专业:年级:指导教师:目录摘要3一、前言5二、需求分析6(一)系统功能61手机客户端功能需求62服务器端功能需求63其它需求6(二)系统建模71系统用例图72. 系统活动图8三、系统设计10(一)总体结构图10(二)子系统设计101. 手机端功能设计102. 服务器端功能模块图11(三)类设计11(四)数据库设计131. 学习用户资料表设计132. 排名表设计143用户历史记忆表设计14(五)单词资料存储设计15四、系统实现15(一)开发环境151. 手机端152. 服务器端16(二)相关主要技术161. RSA公钥加密算法162. 记忆算法16(三)关键功能实现171. 匹配不同设备172. Android直连SQL SERVER数据库173. 手机端自动登录实现184手机和服务器通信185. 手机端音频和文件加载19五、结语20参考文献21谢辞22摘要现代社会对知识的获取效率要求越来越高。此次基于Android平台韩语单词记忆软件正是本着让韩语学习者能快速、高效地记忆韩语词汇的原则来设计的。使用手机端软件能让用户有系统,有步骤地学习韩语单词。此次设计的记忆算法参考了艾宾浩斯对人类记忆的研究来实现。并且通过调研了一部分优秀韩语学习者的学习经验来设计。期间还参考了多本相关学习书籍。系统采用了C/S架构,数据通信和存储采用RSA公钥加密算法,保证用户信息安全。同时对于用户的学习进行记录,统计和分析。便于用户在不同客户端进行进度同步,自我评价,同时还可以和其它学习者进行比较,还能帮助在后期帮助改进软件。关键词Android, 韩语, 单词记忆, C/S架构, 外语学习ABSTRACTNowadays, the extraciton efficiency of the knowledage have becoming increasingly demanding. The priciple of this Android based software design is to let Korean learners learn vocabularies quickly and efficiently. Using the mobile client software allows users to learn Korean words systematically and step by step. The design of the memory algorithm references Ebbinghaus memory method and some excellent learners experience. Absolutely, references some relevant books. The system uses the C / S architecture and some datas be encrypted , such as password and personal informations in order to ensure security. At the same time, to record, collect and analysis in order to synchronize in different client and self-evaluation. Also help learns to compare with each other and improve the software.KEYWORDSAndroid, Korean, Word Remember, C/S architecture, foreign language learning一、前言现代社会,是学习型,知识型的社会,国际交流频繁。人们对外语学习的需求也逐渐提升,掌握一门或几门外语是大家都在努力追求的。但是,社会发展步伐太快,对人们的知识量要求增高,需要短时间消化,吸收很多。这对每个人的学习能力及学习技巧提出了新的考验。传统的一些学习方式和技巧已经无法满足要求。于是,更新的,更科学的学习技巧应运而生。在当今世界,英语是最流行的外语。学习英语的风潮一直未缩减。针对人们零散的时间和不确定的的学习环境。各类英语单词记忆软件层出不穷,但是,针对小语种韩语,相应的单词记忆软件寥寥无几。国内仅有的就是沪江网校推出的“开心词场”单词记忆软件。但“开心词场”并非是专门的用于记忆韩语单词软件,而是多语种单词记忆软件。我们知道,不同的语言,其特点是相异的。因此其记忆手段当然要针对语言本身来定制,这样才能高效记忆。在本课题中,通过自身对韩语单词的学习经历和通过调研其它韩语学习者单词记忆经历,并结合相关书籍。针对韩语单词特点,针对性地设计该单词记忆软件。当然,该单词记忆软件是针对母语为汉语的人群。通过该软件,用户能通过零散的时间,记忆大量单词。软件中采取了高效的艾宾浩斯记忆曲线,但并非完全相同。只是整体记忆时间安排参考了该研究成果。在软件中,学习者经过注册后,能拥有属于自己的学习档案。其中记录自己的学习历史,当前学习进度。软件采用C/S结构进行设计。学习档案存储于服务端。手机客户端也存储有学习进度,是为了方便在不连接网络情况下进行学习进度的记录。软件设计的整体思路是,所有单词配有文本,配音和例句。记忆时以问答式方式学习,阶段式学习。每一阶段的学习资料存于一个阶段包中。用户将阶段包下载好后,开始学习。如果当前阶段记忆未完成。无法进入下一阶段的学习。每个阶段必须一次性学习完成。手机客户端和服务器端对学习进度进行同步。手机客户端软件基于Android平台,采用Java语言编写。服务器端平台是基于Windows平台,部署Tomcat,数据库使用SQL Server。为了保证用户信息安全性,用户资料和密码等信息采用128位RSA公钥加密算法。存储在服务器端的密码信息是加密存储的,无法获取原值。当用户忘记口令时,可以重置,无法找回。因为采取阶段式学习,所以只有当一个阶段学习完毕,手机客户端和服务器端才会进行一次学习进度同步通信,在软件打开时进行一次同步通信。总的来说,手机端和服务器端在这方面通信很少,故对于该部分采取加密传输。对于学习资料阶段包部分,采取明文传输。学习资料包下载到本地后,自行解压到手机存储空间,其中包含单词文本,采用TXT文件存储。单词音频,采用MP3格式存储。最后为了软件体验较好,对Android手机系统版本作了限定,只能在Android4.0以上版本中运行。而且手机屏幕分辨率在480x800以上。软件为了能更好改进,设置有反馈功能,并且有自动检测更新功能。二、需求分析在对目前韩语词汇学习作了一些调研后,用面向对象方法来分析和设计软件。(一)系统功能韩语单词记忆系统分两部分,后台服务器端和手机客户端,采用C/S结构。手机客户端存放有当前用户登录信息,学习资料包和当前用户学习进度记录。而在服务器端存放全部的学习资料包和所有用户注册资料数据和学习进度记录。1手机客户端功能需求用户注册,用户登录。用户基本资料管理。当用户第一次注册时只要求填入用户名,密码和用于密码找回的邮箱。对用户名进行在线检测,看是否有重复。同时对密码进行加密后存储到后台服务器。用户登录时可以勾选自动登录功能,方便以后打开软件直接进行登录。在联网情况下,用户可以修改基本资料。比如密码,昵称,出生年月,所在地等。用户学习资料管理。客户端可以从服务器端获取学习资料包,对下载的资料包进行解压、浏览,删除处理。同时在手机本地存在一个TXT文本用于存储用户当前学习进度。当存在时,如果在离线情况下,根据本地学习进度学习。联网时,与服务器端比较,同步学习记录,以最先的进度进行学习。当不存在时,自动从服务器端获取进度,并创建该TXT文件,将进度存储其中。用户学习方式管理。学习方式采用问答的形式。学习形式是固定的,用户不能定制。记忆算法是一开始就设计好应用于资料包中。用户反馈管理。允许用户对软件存在问题进行反馈,用于后期的完善和优化。词汇记录排行榜。显示前25名词汇记忆最多的用户进行显示。可以点击相应的排名用户获取该用户的资本资料和联系方式(如果用户公开)。历史词汇记忆列表。显示用户历史记忆词汇,方便用户复习查看。2服务器端功能需求学习资料管理功能。提供学习资料的下载,更新,删除,更改等操作。学习用户信息管理。用户信息加密存储。用户基本信息的更改,删除,增加等操作。用户学习进度记录存储、同步等操作。系统管理。提供手机客户端的更新。系统日志管理。文件访问权限管理。系统用户管理。数据库管理。密钥管理。连接管理。3其它需求系统交互。手机客户端与用户交互界面要尽量美观、简介还有重点突出。数据传输。手机客户端需要下载的学习资料采取压缩包的形式,减少数据传输。资料下载到手机本地后再进行解压。系统稳定。在程序代码中,对尽可能多的情况进行出错处理,并提示用户。努力做到程序稳定运行。(二)系统建模1系统用例图用例图是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图。【1】通过用例可以对系统功能作一个总体描述。对于手机客户端,参与者是学习用户。学习者可以浏览历史学习词汇,浏览当前阶段词汇,学习当前阶段词汇,学习资料管理,软件设置等。如图2-1。在下图中列出了学习者可能会用到的所有功能,及一些功能的细分。在软件实现时主要是根据该图提示的功能来编码的,这也是手机端应该实现的基本功能。图2-1 学习者用例图对于服务器端,参与者是系统管理员。数据库管理员。系统管理员管理软件更新,服务器维护,手机客户端和服务器端通信维护,系统所有用户管理。如图2-2。数据库管理员负责学习者用户管理,学习资料管理,数据库系统管理,如图2-3。在设计服务器端时是根据下图来设计主要功能的,同时分配不同角色的职责,管理权限。图2-2 系统管理员用例图图2-3 数据库管理员用例图2.系统活动图活动图(activity diagram,动态图)是阐明了业务用例实现的工作流程。业务工作流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工作。【2】手机客户端与用户交互时。主要活动如图2-4。在该活动图中把用户和手机端作为一个整体看待,这个整体在一个学习周期里所产生的活动。图2-4 手机端活动图服务器端接受到用户请求会响应相应动作。如图2-5所示。该图主要展示用户登录时对服务器来说会产生的活动,根据不同活动会返回不同数据。图2-5 服务器端活动图三、系统设计(一)总体结构图系统结构图反映的是系统中模块的调用关系和层次关系,谁调用谁,有一个先后次序(时序)关系.【3】在该基于Android平台的软件开发时采用了C/S架构设计。其整体系统结构图如图3-1。如图中所示,手机客户端是直接和服务器通信的。这样能够减轻服务器运行时传输的数据负荷。对于客户端的响应时间也相对与B/S架构快速。因为考虑到实际情况,和只在单一的Android平台开发客户端。故采取这种形式是比较符合实际的。图3-1 系统整体结构图(二)子系统设计1. 手机端功能设计手机端功能设计包括注册登录模块,同步模块,学习资料管理模块,注册资料管理模块,软件设置模块和学习模块。如图3-2所示。图3-2 手机端功能模块图2. 服务器端功能模块图服务器端功能设计包括系统用户管理模块,学习资料管理模块,学习用户管理模块,连接通信管理模块,日志管理模块,软件管理模块。如图3-3所示。图3-3 服务器功能模块图(三)类设计手机客户端所用类初始注册登录界面类LoginAndRegisterActivity,学习类是LearnActivity,主界面类是MainActivity, 个人资料类是SelfData,SD卡操作和文件读写类是GetSDCardInfoAndFileOperation,如图3-4。其中列出了主要的类成员变量和成员方法。图3-4 手机端设计类图主要成员变量和方法说明。LoginAndRegisterActivity中。User_name:用户名。User_password:登录密码。User_email:用户邮箱,当用户初次注册时使用。onCreate()方法:初始手机客户端,初始数据。onClickLoginButton()方法:用户选择登录,切换到登录界面。 onClickRegisterButton()方法:用户选择注册,切换到注册界面。onClickConfirmButton()方法:用户选择了确认注册或登录,完成相关操作。MainActivity中。dataName:用户当前学习的单词包名。packageName:用户当前学习的阶段包名。currentWord:记录用户当前学习到的单词位置。selfData:用户个人相关数据类的实例,存储有个人用户数据,方便操作。onCreate()方法:读取相关信息,初始化主界面。onClick()方法:接收用户在主界面上的点击事件,根据不同控件做出不同响应。onClickStartLearnButton()方法:用户点击开始学习按钮后,初始化学习界面,开始学习。initialCurrentStudyView()方法:初始化用户学习进度相关信息并显示。LearnActivity中。dataName:用户当前学习的单词包名。packageName:用户当前学习的阶段包名。currentWord:记录用户当前学习到的单词位置。audiofileStrArray:存放学习资料音频文件名。wordsfileStrArray:存放学习资料文本文件名。minNumber:用户学习阶段,所有单词的最小编号。maxNumber:用户学习阶段,所有单词的最大编号。mediaPlayer:当前正在学习的单词的音频播放实例,根据不同的单词更换不同的音频源。onCreate()方法:根据学习进度初始化学习界面。updateMediaPlayer()方法:根据学习单词不同,更替音频源。initialWordsInfo()方法:初始化学习资料,将单词存放的文本和音频文件名等信息加载进内存中,并且创建六个HashMap,分别用键值对方式存放单词音频文件名,单词韩语文本,汉语文本,韩语例句文本,汉语例句翻译。randomSetTextToButton()方法:从HashMap中取出韩语或汉语文本,然后随机设置进四个Button按钮中,供用户选择。GetSDCardInfoAndFileOperation中。filePath:学习资料文件存储路径。sdCardPath:sd卡的绝对路径。getSDCardPath()方法:因为Android系统中,不同的手机中,SD Card路径可能不一样,所以用该方法得到当前的手机中的SD Card路径。fileIsExists()方法:判断目标文件或文件夹是否存在。getFileList()方法:得到指定文件夹中的所有文件,返回类型为文件。fileArrray()方法:得到指定文件夹中所有文件,返回类型为文件名。writeFile()方法:将指定字符串写入文件。readFile()方法:从指定文件读取内容。SelfData中:mContext:程序的上下文,用于得到存储在手机中的SharedPreferences中的配置信息。SelfData()方法:类的构造函数,初始化所有成员变量,并赋值。getUserData()方法:返回所有的用户数据。(四)数据库设计1. 学习用户资料表设计设计用户表(UserDataTable),便于对学习用户进行管理。如下表3-5。表3-5 用户资料表名称类型是否为空备注User_namenvarchar(20)Not null用户名User_passwordnvarchar(20)Not null密码,加密存储User_genderNvarchar(2)Not null用户性别User_idintNot null用户识别码User_Regist_timedateNot null注册时间User_emailnvarchar(30)Not null用户邮箱User_qqnvarchar(20)null用户QQ号码User_wechatnvarchar(30)null用户微信号码User_phonenvarchar(30)null用户电话号码User_Remembered_wordintNot null记住单词数User_Current_wordintNot null当前记忆单词位置User_Current_packagenvarchar(10)Not null当期阶段学习包User_Self_IntroduceNvarchar(100)null自我介绍User_Current_rankIntNot null目前排名User_otherNvarchar(100)null用户备注表关键字段详细说明:User_name:用户名,相当于用户昵称,可以更改,但是要求是唯一的。但在系统内部是用User_id来唯一表示用户的。User_password:用户密码,对密码强度没有规定,用户可根据自己喜好设置密码强度。User_id:用户标识码,在系统内部唯一标识用户的,从用户注册后就不可更改。该字段是用于更方便管理用户信息,在表之间建立联系的。User_Current_word:用户当前记住的单词在总的计划中的位置标号。因为所有单词是按照记忆曲线方式重复排序的。所以每个单词是重复出现多次的。这个字段是为记录用户进度设置的。因为后期用户阶段学习包可能回更改,所以用该字段能准确定位。User_Current_package:当前阶段学习包字段,用于记录用户学习的阶段包名,也用与记录用户进度,和User_Current_word配合使用。User_Current_rank:用户排名字段,记录用户在所有用户中记忆单词的排名情况。之所以会在用户资料表中有该字段,是为了方便用户自己后其它用户在查看资料时能更快方便。User_other:用于后期可能拓展用户相关信息的字段。2. 排名表设计排名表(RankTable)用于记录所有用户单词记忆排名。该表每周更新一次。如下表3-6。该表是为了方便展示排名,在实际展示排名时只取前25名展示。表3-6 每周排名表名称类型是否为空备注Rank_orderIntNto null排名Rank_remembered_wordIntNot null单词记忆数Rank_user_nameNvarchar(20)Not null用户名Rank_user_idIntNot null用户识别码Rank_datedateNot null执行排名时间Rank_otherNvarchar(100)null备注表关键字段说明:Rank_order:用户在所有用户中的排名。Rank_remembered_word:用户在排名执行前一周内记忆的所有单词数量。Rank_date:排名执行时间。一周进行一次排名。执行时间在每周日晚00:00执行。Rank_other:保留字段,用于后期可能增加的字段。3用户历史记忆表设计用户历史记忆表(HistroyRecordTable)记录每一个用户历史记忆单词最大记录,如下表。表3-7 历史记忆表名称类型是否为空备注Rem_user_idIntNot null用户识别码Rem_user_nameNvarchar(20)Not null用户名Rem_max_wordIntNot null用户记住最多单词数Rem_max_packageNvarchar(20)Not null用户记忆到最高的学习包Rem_total_timeIntNot null用户记忆单词总的时间(以秒为单位)Rem_total_loginIntNot null用户历史登录次数Rem_othernvarchar(100)null备注表关键字段说明:Rem_max_word:用户从使用该软件以来记住的所有单词的数量。实际每个单词是对应一个唯一的int型的数值的。所以也可以通过该字段知道用户记忆了那些单词。Rem_max_package:用户记忆到的最高学习包,该字段是为了用户在不同的客户端登录使用时来快速同步学习记录。后期有可能舍弃。和Rem_max_word配合使用。Rem_total_tiem:用户从注册使用软件记忆的总时间。这是为了方便统计分析和方便用户自己对自己作评价的字段。(五)单词资料存储设计每一学习阶段单词资料分音频和文本。对于文本,每个单词有唯一一个txt文档,存储有单词编号,韩语单词本身,汉语意思,韩语例句,韩语例句翻译。每一项中间用英文句号分隔。文本都存储在words文件夹中。单词自身文本命名方式“number.txt”,其中number为单词编号。如单词“”的文本命名为“10.txt”,对于的文本内容是“10.【动词】穿过,越过.穿过马路”相应单词音频存储在audios文件夹中,分别以单词编号命名,格式为mp3音频。如“10.mp3”。每一阶段的audios文件夹和words文件夹都是存放在阶段包中的。四、系统实现(一)开发环境1. 手机端以Android操作系统为平台进行开发。Android是自由及开放源代码的操作系统。可用于移动设备,比如平板电脑和智能手机。也可用于家电,如智能电视。当然还能用于其它设备。在本课题中软件设计的运行平台只针对Android智能手机。因为考虑到软件运行的流畅度,界面的美观,软件整体运行效果。对Android智能手机要求是Android 4.0及以上平台。对屏幕分辨率要求是480x800及以上。如果基本条件不符合,程序会提示,并且自动退出。开发手机端所用的开发工具采用了比较流行的Eclipse IDE,然后配置好Java环境变量和用于Android应用程序开发的SDK。分别用不同配置的虚拟Android设备和真实的Android智能手机对手机端软件进行测试,尽可能保证程序在不同设备上能良好运行。2. 服务器端服务器端暂时是基于Windows平台。采用Tomcat作为Web服务器。Tomcat服务器是一个免费开源的轻量级应用服务器,对于该韩语单词记忆软件来说,用户访问量相对小,并发性不高,故采用Tomcat比较合适。该程序中Tomcat 采用了最新8.0版本。对于数据管理软件采用了SQL Server 2012。SQL Server是由微软推出的关系型的数据库管理系统。在该软件开发中,之所以采用SQL Server是因为其友好的管理界面和方便的操作。(二)相关主要技术1. RSA公钥加密算法RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。【4】在本次软件开发中,对存储在手机本地的用户信息进行加密处理。同时对于客户端和服务器的通信部分信息进行加密。如用户登录,学习记录同步等通信信息。对于学习资料下载等通信信息采取明文传输。加密通信的大致流程是在手机客户端程序中存有服务器端的公钥,用户需要传送的信息先用公钥加密后再发送给服务器。在用户第一次注册时,客户端会把由用户密码计算得来的公钥发送给服务器,这样每次服务器需要向客户端发送加密信息时也用用户的公钥加密后发送回客户端。2. 记忆算法记忆算法根据德国心里学家艾宾浩斯的研究制定。根据人们在不同的时间间隔对事物的遗忘百分比,采用不同时间段后重复记忆来达到强化记忆,永久记忆的效果。在记忆复习点的确定上采用了下面的策略。第一个记忆周期:5分钟第二个记忆周期:30分钟第三个记忆周期:8小时第四个记忆周期:1天第五个记忆周期:2天第六个记忆周期:4天第七个记忆周期:8天第八个记忆周期:15天对于记忆时间安排基本按上面的时间间隔来确定。在软件中,将要记忆的所有单词划分为大致相同个数的很多包。每一个包的学习算作学习者学习的一个阶段。学习者只有将一个包学习完毕后才能进入下一个包学习。软件会记录每一个包的学习完成时间,当到下一个记忆周期时会提醒学习者复习,并且只能复习,替换当前学习包。在该软件设计中,对单词的学习采用一个问答形式学习。同时记忆充分调动用户思考,联想与词汇相关的事物,以此强化记忆。3. 单词排序规则及记忆 对于单词包中单词的先后顺序不是无序的,而是按照韩语单词的词根来进行的。相当不同词根的单词排序相对来说是无序的。在本次软件编写中,主要参考李妍彤主编的绝对不借给人的韩语单词书这本书来进行单词的排列的。主要记忆算法里是按词根进行单词的分类记忆。这里的词根分为韩语词根和汉字词根两大类。在安排上把所有的韩语词根的单词排在前面。这样学习到一定阶段,再学习汉语词根的单词,学习者能快速拓展词汇量,并且能根据词根猜测一些从来没有见过的单词。最后,还根据不同种类事物来分类单词。这三种方式都是通过一定的联系让单词串联起来,使学习者有系统,有规律地学习,做到高效记忆。(三)关键功能实现1. 匹配不同设备对于Android设备,因为市面上有很多不同配置。一般来说,现在的手机都达到了软件运行所需要的硬件要求。影响软件运行效果的主要障碍来自设备不同分辨率的屏幕。同时也为了界面运行的稳定性。先是在Android程序设计的布局文件(一种xml文件)中,对手机端界面进行良好的布局设置。主要采用了线性布局LinearLayout和相对布局RelativeLayout相结合的形式。同时由于部分子视图需要频繁更替,采用了fragment元素。程序运行前先用如下代码获取屏幕分辨率信息。根据得到的分辨判断手机是否适合运行该程序。WindowManager wm = getWindowManager();Display d = wm.getDefaultDisplay();Point size = new Point();d.getSize(size);int screen_x = size.x;int screen_y = size.y;2.Android直连SQL SERVER数据库由于在该程序设计时采用C/S架构设计。Android手机客户端需要直连SQLSERVER数据库。在程序中采用了JTDS来实现Android手机客户端与SQL SERVER数据库的直连。JTDS是开放源码的纯JAVA实现的JDBC驱动。可用于连接SQL SERVER和Sybase。是可企业级应用的SQL SERVER驱动程序。JTDS不需要安装,只需下载好后 把JAR文件放在classpath路径中就可以。所用的连接关键代码如下Class.forName(net.sourceforge.jtds.jdbc.Driver);con=DriverManager.getConnection(jdbc:jtds:sqlserver:/8:1433/KoreanWord,UserName,Password);在以上代码中,第一行代码是加载jtds驱动程序。接着第二行代码建立连接。其中8是SQL SERVER数据库运行所在服务器IP地址,可以根据实际更改。1433是所在的端口号,这里也可以更改。KoreanWord是数据库文件。UserName和Password分别是连接数据库需要的用户名和密码。当然这里的用户是数据库用户里的一般用户,只有很少的权限。在Android直连SQL SERVER的时候很重要的是对服务器端的防火墙和杀毒软的设置。 如果设置不当,连接是不会成功的。3.手机端自动登录实现Android提供了五种方式用于存储数据。分别是使用SharedPreferences存储,文件存储,SQLite数据库存储,ContentProvider存储和网络存储。比较这五种方式,对于自动登录信息的存储采用SharedPreferences存储是最方便,简洁的。SharedPreferences存储方式是Android提供的用于存储一些简单配置信息的机制。采用了Map数据结构来存储数据,以键值对的方式存储,可实现简单的读写操作。在Android系统中,SharedPreferences中的信息是以XML文件形式保存的。位于/data/data/PACKAGE_NAME/shared_prefs目录下。一般Android手机在没有获取root权限的情况下,是无法用文件管理软件查看data目录的。所以是比较安全的。另外,在存储登录密码时是采用加密存储的方式。关键代码实现如下,存数据Editor userLocalData = getSharedPreferences(UserData, 0).edit();userLocalData.putString(user_name,user_name_string);userLocalDmit();取数据SharedPreferences userLocalData = getSharedPreferences(UserData, 0);String user_name = userLocalData.getString(“user_name”, null);4手机和服务器通信在手机和服务器进行一部分信息交互时,比如下载资料包请求,同步请求等。通信中表示信息的格式是使用JSON(JavaScript Object Notation)格式。因为JSON是轻量级的数据交换格式,有利于读写,易于解析和生成。同时能减少对机器性能的依赖。JSON中的信息都是以键/值对的形式存在的,键/值对组成了有序的列表。在本次开发中主要用到的是Android SDK提供的JSONArray和JSONObject两个类来处理JSON数据的。另外,对于学习资料数据包的下载通信,在手机端处理时,采用异步通信方式。这样做是因为,下载学习资料包是费时的,但是Android主线程中如果5秒内控件没反映的话就会认为无响应,提示用户是否结束。对于普通用户来说并不了解程序实际还在工作,所以会选择结束程序。所以在下载资料时使用了Android提供的AsyncTask来处理。5. 手机端音频和文件加载对于存储在手机外部存储器上的音频和文本数据,在用户学习时要及时加载进内存中并播放和显示,尤其是音频。如果每次需要时才去存储设备上读取,这无疑是很耗时的,在性能比较差点的设备上就会更明显。因为每一阶段单词数大概30个左右,所以选择了使用Android中的SoundPool类来一次性加载所有的音频,用一个HashMap对象audioId来存放所有音频加载后在SoundPool中的Id。如下代码:soundPool = new SoundPool(wordsNumber, 0, 5);for (int i = 0; i wordsNumber; i+) int j = i + 1;if(GetSDCardInfoAndFileOperation.fileIsExists(audiofileStrArrayi)audioId.put( j, soundPool.load(audiofileStrArrayi, 1 );对于单词文本,为了便于显示,采取的处理方法是先从存储器中读取文本,然后将每个单词文本每一项拆分好存进一个二维数组中去。数组一维存储相应单词编号,二维存储单词的韩语文本,汉语文本,韩语例句和汉语例句翻译。五、结语在设计该基于Android平台韩语背单词软件过程中,不断接触和学习了很多新东西。程

温馨提示

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

评论

0/150

提交评论