版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、毕必设计f论丈j基于android平台韩语单词记忆设计(论文)题目软件姓 名: 学 号: 学 院: 专 业: 年 级:指导教师摘s3一刖 s5二、胃求射斤6(一)系统功能61. 手机客户端功能需求62. 服务器端功能需求63. 其它需求6(二)系统建模71. 系统用例图72. 系统活动图8三、系统设计10(一)总体结构图10(二)子系统设计101. 手机端功能设计102. 服务器端功能模块图n(三)类设计11(四)数据库设计131.2.3.(五)(一)2345学习用户资料表设计13排名表设计14用户历史记忆表设计14单词资料存储设计15开发环境手机端服务器端相关主要技术rsa公钥加密算法记忆算
2、法关键功能实现匹配不同设备android 直连 sql server 数据库手机端自动登录实现手机和服务器通信五、参5结语.玄献.21手机端音频和文件加载22谢 辞.摘要现代社会对知识的获取效率要求越来越高。此次基于android平 台韩语单词记忆软件正是本着让韩语学习者能快速、高效地记忆韩语 词汇的原则来设计的。使用手机端软件能让用户有系统,有步骤地学 习韩语单词。此次设计的记忆算法参考y艾宾浩斯对人类记忆的研宄 来实现。并且通过调研了一部分优秀韩语学习者的学习经验来设计。 期间还参考了多本相关学习书籍。系统采用了 c/s架构,数据通信和 存储采用rsa公钥加密算法,保证用户信息安全。同时对
3、于用户的学 习进行记录,统计和分析。便于用户在不同客户端进行进度同步,自 我评价,同时还可以和其它学习者进行比较,还能帮助在后期帮助改 进软件。关键词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 qu
4、ickly 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
5、 / 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 softwar
6、e.keywordsandroid, korean, word remember, c/s architecture, foreignlanguage learning、月曰现代社会,是学习型,知识型的社会,国际交流频繁。人们对外语学习的需 求也逐渐提升,掌握一门或几门外语是大家都在努力追求的。但是,社会发展步 伐太快,对人们的知识量要求増高,需要短时间消化,吸收很多。这对每个人的 学习能力及学习技巧提出了新的考验。传统的一些学习方式和技巧己经无法满足 要求。于是,更新的,更科学的学习技巧应运而生。在当今世界,英语是最流行的外语。学习英语的风潮一直未缩减。针对人们 零散的时间和不确定的的学习环
7、境。各类英语单词记忆软件层出不穷,但是,针 对小语种韩语,相应的单词记忆软件寥寥无几。国a仅有的就是沪江网校推 出的“幵心词场”单词记忆软件。但“开心词场”并非是专门的用于记忆韩语单词软 件,而是多语种单词记忆软件。我们知道,不同的语言,其特点是相异的。因此 其记忆手段当然要针对语言木身来定制,这样才能高效记忆。在本课题中,通过自身对韩语单词的学习经历和通过调研其它韩语学习者单 词记忆经历,并结合相关书籍。针对韩语单词特点,针对性地设计该单词记忆软 件。当然,该单词记忆软件是针对母语为汉语的人群。通过该软件,用户能通过 零散的时间,记忆大量单词。软件中采取了高效的艾宾浩斯记忆曲线,但并非完 全
8、相同。只是整体记忆时间安排参考了该研究成果。在软件中,学习者经过注册后,能拥冇属于自己的学习档案。其中记录自己 的学习历史,当前学习进度。软件采用c/s结构进行设计。学习档案存储于服务 端。手机客户端也存储有学习进度,是为了方便在不连接网络情况下进行学习进 度的记录。软件设计的整体思路是,所有单词配有文本,配音和例句。记忆时以 问答式方式学习,阶段式学习。每一阶段的学习资料存于一个阶段包中。用户将 阶段包下载好后,开始学习。如果当前阶段记忆未完成。无法进入下一阶段的学 习。每个阶段必须一次性学习完成。手机客户端和服务器端对学习进度进行同步。手机客户端软件基于android平台,采用java语言
9、编写。服务器端平台是 基于windows平台,部署tomcat,数据库使用sql server。为了保证用广信息 安全性,用户资料和密码等信息采用128位rsa公钥加密算法。存储在服务器 端的密码信息是加密存储的,无法获取原值。当用户忘记口令时,可以重置,无 法找回。因为采取阶段式学习,所以只有当一个阶段学习完毕,手机客户端和服 务器端冰会进行一次学习进度同步通信,在软件打开时进行一次同步通信。总的 来说,手机端和服务器端在这方面通信很少,故对于该部分采取加密传输。对于 学习资料阶段包部分,采取明文传输。学习资料包下载到木地后,自行解压到手 机存储空间,其中包含单词文本,采用txt文件存储。单
10、词咅频,采用mp3格 式存储。最后为了软件体验较好,对android手机系统版本作了限定,只能在 android4.0以上版本中运行。而且手机屏幕分辨率在480x800以上。软件为了能 更好改进,设置有反馈功能,并且有自动检测更新功能。二、需求分析在对目前韩语词汇学习作了一些调研后,用面向对象方法来分析和设计软件。(一)系统功能韩语单词记忆系统分两部分,后台服务器端和手机客户端,采用c/s结构。 手机客户端存放有当前用户登荥信息,学习资料包和当前用户学习进度记荥。而 在服务器端存放全部的学习资料包和所有用户注册资料数据和学习进度记录。1. 手机客户端功能需求用户注册,用户登录。用户基木资料管理
11、。当用户第一次注册时只要求填入 用户名,密码和用于密码找冋的邮箱。对用户名进行在线检测,看是否冇重复。 同时对密码进行加密后存储到后台服务器。用户登录时可以勾选自动登录功能, 方便以后打开软件直接进行登录。在联网情况下,用户可以修改基本资料。比如 密码,昵称,出生年月,所在地等。用户学习资料管理。客户端可以从服务器端获取学习资料包,对下载的资料 包进行解压、浏览,删除处理。同时在手机本地存在一个txt文本用于存储用 户当前学习进度。当存在时,如果在离线情况下,根据本地学习进度学习。联网 时,与服务器端比较,同步学习记录,以最先的进度进行学习。当不存在时,自 动从服务器端获取进度,并创建该txt
12、文件,将进度存储其中。用户学习方式管理。学习方式采用问答的形式。学习形式是固定的,用户不 能定制。记忆算法是一开始就设计好应用于资料包中。用户反馈管理。允许用户对软件存在问题进行反馈,用于后期的完善和优化。词汇记录排行榜。显示前25名词汇记忆最多的用户进行显示。可以点击相 应的排名用户获取该用户的资本资料和联系方式(如果用户公开)。历史词汇记忆列表。显示用户历史记忆词汇,方便用户复习查看。2. 服务器端功能需求学习资料管理功能。提供学习资料的下载,更新,删除,更改等操作。学习用户信息管理。用户信息加密存储。用户基本信息的更改,删除,增加 等操作。用户学习进度记录存储、同步等操作。系统管理。提供
13、手机客户端的更新。系统日志管理。文件访问权限管理。系 统用户管理。数据库管理。密钥管理。连接管理。3. 其它需求系统交互。手机客户端与用户交互界面要尽量美观、简介还有重点突出。数据传输。手机客户端需要下载的学资料采取压缩包的形式,减少数据传 输。资料下载到手机本地后再进行解压。系统稳定。在程序代码中,对尽可能多的情况进行出错处理,并提示用户。 努力做到程序稳定运行。(二)系统建模1.系统用例图用例图是指由参与者(actor)、用例(use case)以及它们之间的关系构成 的用于描述系统功能的动态视图。111通过用例可以对系统功能作一个总体描述。对于手机客户端,参与者是学习用户。学习者可以浏览
14、历史学习词汇,浏览 当前阶段词汇,学习当前阶段词汇,学习资料管理,软件设罝等。如图2-1。在 下图中列出了学习者可能会用到的所有功能,及一些功能的细分。在软件实现时 主要是根据该图提示的功能来编码的,这也是手机端应该实现的基本功能。突科蝥改注*资科管a廉户注螭单龙孝:?x(盅甿阶长译二竽3莩刁看史钭下蕺史图2-1学习者用例图对于服务器端,参与者是系统管理员。数据库管理员。系统管理员管理软件 更新,服务器维护,手机客户端和服务器端通信维护,系统所有用户管理。如图 2-2。数据库管理员负责学4者用户管理,学习资料管理,数据库系统管理,如 图2-3。在设计服务器端时是根据下图来设计主要功能的,同时分
15、配不同角色的 职责,管理权限。软件更新服幫麵户系统菅理员通信维护系统用户菅理图2-2系统管理员用例图韵者用p飽学聰斗荀里数捤库菅理员数据库系统養理图2-3数据库管理员用例图2.系统活动图活动图(activity diagram,动态图)是阐明了业务用例实现的工作流程。业务 工作流程说明了业务为向所服务的业务主角提供其所需的价值而必须完成的工作。手机客户端与用户交互时。主要活动如图2-4。在该活动图中把用户和手机 端作为一个整体看待,这个整体在一个学习周期里所产生的活动。开尨掌石保存并t步乏度图2-4手机端活动图服务器端接受到用户请求会响应相应动作。如图2-5所示。该图主要展示用 户登录时对服务
16、器来说会产生的活动,根据不同活动会返回不同数据。图2-5服务器端活动图三、系统设计(一)总体结构图系统结构图反映的是系统屮模块的调用关系和层次关系,谁调用谁,冇一个 先后次序(时序)关系.3在该基于android平台的软件开发时采用了 c/s架构设计。其整体系统结构 图如图3-1。如图中所示,手机客广端是直接和服务器通信的。这样能够减轻服 务器运行时传输的数据负荷。对于客户端的响应时间也相对与b/s架构快速。 因为考虑到实际情况,和只在单一的android平台开发客户端。故采取这种形式 是比较符合实际的。系统数据库服务器端手机客户端手机客户端手机客户端图3-1系统整体结构图(二)子系统设计1.
17、 手机端功能设计手机端功能设计包括注册登录模块,同步模块,学习资料管理模块,注册资 料管理模块,软件设置模块和学习模块。如图3-2所示。注册登录模块学习资料管理模块同步摸块学习摸块注册资14管理模块软件设g模块图3-2手机端功能模块图user-nameuscrpassworddatanamepackagehamemcontextselfoataogetuserdata()2. 服务器端功能模块图服务器端功能设计毡括系统用户管理模块,学习资料管理模块,学习用户 管理模块,连接通信管理模块,id志管理模块,软件管理模块。如图3-3所示。图3-3服务器功能模块图(三)类设计手机客户端所用类初始注册登
18、录界面类loginandregisteractivity,学习类是learnactivity,主界 而类是mainactivity,个人资料类是selfdata, sd卡操作和文件读写类是 getsdcardlnfoandfileoperation,如图3-4。其中列出了主要的类成员变量和成员方法olearnactivityuser nameuscr_passworduser_cmailoncreateq ondicklocinbutton onclickregisterbutton onclickconfirm buttondatanamepacksgenamecurrentwordself
19、oatsoncreate)onclickoonclickstartleambuttonoinitialcurrentstudyview()getsdcardlnfoandfileoperationselfdatadatanamepackagenamecurrentwordaudiofilestrarraywordsfilestrarrayminnumbermediaplayermaxnumberoncreateoupdatemediaplayerf)inrtialwordslnfo()randomsettexttobutton()filepathsdcirdpathgetsdardpath()
20、filelsexists()getfilellstofilearray()wrrtcfiledreadfile()图3-4手机端设计类图主要成员变量和方法说明。loginandregisteractivity 中。user_name :用户名。user_password:登录密码。user_email :用户邮箱,当用户初次注册时使用。oncreate()方法:初始手机客户端,初始数据。onclickloginbutton()方法:用户选择登录,切换到登录界面。onclickregisterbutton()方法:用户选择注册,切换到注册界面。 onclickconfirmb utton()方法
21、:用户选择了确认注册或登录,完成相关操作。mainactivity 中。dataname:用户当前学习的单词包名。 packagename:用户当前学习的阶段包名。 currentword:记录用户当前学习到的单词位置。sehdata:用户个人相关数据类的实例,存储有个人用户数据,方便操作。 oncreate()方法:读取相关信息,初姑化主界面。onclicko方法:接收用户在主界面上的点击事件,根据不同控件做出不同响应。onclickstartlearnbuttono方法:用户点击开始学习按钮后,初始化学习界面, 开始学习。initialcurrentstudyview()方法:初始化用户学
22、习进度相关信息并显示。learnactivity 中。dataname :用户当前学的单词包名。 packagename:用户当前学习的阶段包名。 currentword:记录用户当前学习到的革词位置。 audiofilestr array:存放学习资料音频文件名。 wordsfilestrarray:存放学习资料文木文件名。 mi nn umber :用学阶段,所冇单词的最小编号。 maxnumber:用户学习阶段,所有单词的最大编号。mediaplayer :当前正在学习的卑词的音频播放实例,根据不同的牢词更换不 同的音频源。oncreate()方法:根据学习进度初始化学习界面。 upda
23、temediaplayer()方法:根据学単词不m,更替音频源。 initialwordsinfo()方法:初始化学习资料,将单词存放的文本和音频文件名等信息加载进内存中,并且创建六个hashmap,分别用键值对方式存放单词音频 文件名,单词韩语文本,汉语文本,韩语例句文本,汉语例句翻译。randomsettexttobutton()方法:从hashmap中取出韩语或汉语文木,然后随 机设置进四个button按钮中,供用户选择。getsdcardlnfoandfileoperation 中。filepath:学习资料文件存储路径。sdcardpath: sd卡的绝对路径。getsdcardpa
24、th()方法:因为android系统中,不同的手机中,sd card路径可能不一样,所以用该方法得到当前的手机中的sd card路径。 filelsexistso方法:判断h标文件或文件夹是否存在。 getfilelisto方法:得到指定文件夹中的所有文件,返回类型为文件。 filearrray()方法:得到指定文件夹中所有文件,返冋类型为文件名。 writefile()方法:将指定字符串写入文件。 readfiie()方法:从指定文件读取内容。selfdata 中:mcontext:程序的上下文,用于得到存储在手机中的sharedpreferences中的 配置信息。selfdata()方法
25、:类的构造函数,初始化所有成员变量,并赋值。 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用户识别码u ser regis t一timedatenot null注册时间user
26、emailnvarchar(30)not null用户邮箱user qqnvarchar(20)null用户qq号码user_wechatnvarchar(30)null用户微信号 码user一phonenvarchar(30)null用户电话号 码u ser remembered wordintnot null记住单词数u ser_current_wordintnot null当前记忆单 词位罝u ser_current_packagenvarchar(lo)not null当期阶段学 习包u ser selfintroducenvarchar(loo)null自我介绍user curren
27、t rankintnot null目前排名user othernvarchar(loo)null用户备注表关键字段详细说明:user_name:用户名,相当于用户昵称,可以更改,但是要求是唯一的。但 在系统内部是用userjd来唯一表示用户的。user_password:用户密码,对密码强度没有规定,用户可根据自己喜好设 置密码强度。userjd:用户标识码,在系统内部唯一标识用户的,从用户注册后就不可 更改。该字段是用于更方便管理用户信息,在表之间建立联系的。user_current_word:用户当前记住的单词在总的计划屮的位置标号。因为所 有单词是照记忆曲线方式重复排序的。所以每个单词是
28、重复出现多次的。这个 字段是为记录用户进度设罝的。因为后期用户阶段学习包可能回更改,所以用该 字段能准确定位。user_current_package:当前阶段学包字段,用于记录用户学的阶段包 名,也用与记录用户进度,和user_current_word配合使用。user_cuitent_rank:用户排名¥段,记i用户在所有用户中记忆单词的排名 情况。之所以会在用户资料表中有该字段,是为了方便用户自己后其它用户在查 看资料时能更快方便。user_other:用于后期可能拓展用户相关信息的字段。2. 排名表设计排名表(ranktable)用于记录所有用户单词记忆排名。该表每周更新一次
29、。如下表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(loo)null备注表关键字段说明:rank_order:用户在所有用户中的排名。rank_remembered_word:用广在排名执行前
30、一周内记忆的所有单词数量。 rank_date:排名执行时间。一周进行一次排名。执行时间在每周hd晚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用户
31、记忆到最 高的学习包rem_total_timeintnot null用户记忆单词 总的时间(以 秒为单位)rem 一 total_loginintnot null用户历史登录 次数rem othernvarchar(loo)null备注表关键字段说明:rem_max_word:用户从使用该软件以来记住的所有单词的数量。实际每个 单词是对应一个唯一的int型的数值的。所以也可以通过该字段知道用户记忆了 那些单词。rem_max_package:用户记忆到的最高学习ti,该字段是为了用户在不同的 客户端登录使用时来快速同步学习记录。后期有可能舍弃。和rem_max_word 配合使用。rem_t
32、otal_tiem:用户从注册使用软件记忆的总时间。这是为丫方便统计分 析和方便用户自己对自己作评价的字段。(五)单词资料存储设计每一学习阶段单词资料分音频和文本。对于文本,每个单词有唯一一个txt 文档,存储有单词编号,韩语单词本身,汉语意思,韩语例句,韩语例句翻译。 每一项屮间用英文句号分隔。文本都存储在words文件夹屮。单词自身文本命名 方式“number.txt”,其中number为单词编号。如单词“外中的文本命名为“ 10.txt”, 对于的文本内容是“10.石m外呌.【动词】穿过,越过.省省石m外呌.穿过马路” 和应单词音频存储在audios文件夹中,分别以单词编号命名,格式为m
33、p3音频。如“10.mp3”。每一阶段的audios文件夹和words文件夹都是存放布阶段中的。四、系统实现(一)开发环境1.手机端以android操作系统为平台进行开发。android是自由及开放源代码的操作 系统。可用于移动设备,比如平板电脑和智能手机。也可用于家电,如智能电视。 当然还能用于其它设备。在本课题中软件设计的运行平台只针对android智能手 机。因为考虑到软件运行的流畅度,界面的美观,软件整体运行效果。对android 智能手机要求是andmid 4.0及以上平台。对屏幕分辨率耍求是480x800及以上。 如果基本条件不符合,程序会提示,并且自动退出。开发手机端所用的开发工
34、具采用了比较流行的eclipse ide,然后配置好java 环境变量和用于android应用程序开发的sdk。分别用不同配罝的虚拟android 设备和真实的android智能手机对手机端软件进行测试,尽可能保证程序在不同 设备上能良好运行。2. 服务器端服务器端暂时是基于windows平台。采用tomcat作为web服务器。tomcat 服务器是一个免费开源的轻量级应用服务器,对于该韩语单词记忆软件来说,用 户访问量相对小,并发性不高,故采用tomcat比较合适。该程序中tomcat采 用了最新8.0版本。对于数据管理软件采用了 sql server 2012。sql server是由微软
35、推出的关 系型的数据库管理系统。在该软件开发中,之所以采用sql server是因为其友 好的管理界面和方便的操作。(二)相关主要技术1. rsa公钥加密算法rsa算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但 是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。【4】在本次软件开发屮,对存储在手机本地的用户信息进行加密处理。同时对于 客户端和服务器的通信部分信息进行加密。如用户登录,学习记录同步等通信信 息。对于学习资料下载等通信信息采取明文传输。加密通信的大致流程是在手机 客户端程序中存有服务器端的公钥,用广需要传送的信息先用公钥加密后再发送 给服务器。在用
36、户第一次注册时,客户端会把由用户密码计算得来的公钥发送给 服务器,这样每次服务器需要向客户端发送加密信息时也用用户的公钥加密后发 送回客户端。2.记忆算法记忆算法根据德国心里学家艾宾浩斯的研究制定。根据人们在不同的吋间间 隔对事物的遗忘百分比,采用不同时间段后重复记忆来达到强化记忆,永久记忆 的效果。在记忆复习点的确定上采用了下面的策略。第一个记忆周期:5分钟第二个记忆周期:30分钟第三个记忆周期:8小时第四个记忆周期:1天第五个记忆周期:2天第六个记忆周期:4天第七个记忆周期:8天第八个记忆周期:15天对于记忆时间安排基本按上面的时间间隔来确定。在软件中,将要记忆的所 有单词划分为大致相同个
37、数的很多伍。每一个包的学习算作学习者学习的一个阶 段。学4者只冇将一个包学完毕后才能进入下一个包学软件会记录每一个 包的学习完成时间,当到t一个记忆周期时会提醒学习者复习,并且只能复习, 替换当前学习包。在该软件设计中,对单词的学习采用一个问答形式学习。同时 记忆充分调动用户思考,联想与词汇和关的事物,以此强化记忆。3. 单词排序规则及记忆对于单词包屮单词的先后顺序不是无序的,而是按照韩语单词的词根來进行 的。相当不同词根的单词排序相对来说是无序的。在本次软件编写中,主要参考 李妍彤主编的绝对不借给人的韩语单词书这本书来进行单词的排列的。主要 记忆算法里是按词根进行单词的分类记忆。这里的词根分
38、为韩语词根和汉字词根 两大类。在安排上把所有的韩语词根的单词排在前面。这样学习到一定阶段,再 学习汉语词根的单词,学习者能快速拓展词汇量,并且能根据词根猜测一些从來 没有见过的单词。最后,还根据不同种类事物来分类单词。这三种方式都是通过 一定的联系让单词串联起来,使学习者有系统,有规律地学习,做到高效记忆。(三) 关键功能实现1.匹配不同设备对于andmid设备,因为市面上有很多不同配置。一般来说,现在的手机都 达到了软件运行所需要的硬件要求。影响软件运行效果的主要障碍来自设备不同 分辨率的屛幕。同时也为了界面运行的稳定性。先是在android程序设计的布局 文件(一种xml文件)中,对手机端
39、界面进行良好的布局设置。主要采用了线性 亦局linearlayout和相对介局relativelayout相结合的形式。同时由于部分子视 阁需耍频繁更替,采用了 fragment元素。程序运行前先用如下代码获取屏幕分 辨率信息。根据得到的分辨判断手机是否适合运行该程序。windowmanager wm = getwindowmanager();display d = wm.getdefaultdisplayo;point size = new point(); d.getsize(size); int screen_x = size.x; int screen_y = size.y;2. an
40、droid 直连 sql server 数据库由于在该程序设计时采用c/s架构设计。android t机客户端需要直连sql server数据库。在程序中采用了 jtds来实现android手机客户端与sql server数据库的直连。jtds是开放源码的纯java实现的jdbc驱动。可用 于连接sqlserver和sybase。是可企业级应用的sql server驱动程序。jtds不需要安装,只需k载好后把jar文件放在classpath路径屮就可以。所用的连接关键代码如下ciass.forname( hnet.sourceforge.jtds.jdbc.drivern);con = dri
41、vermanager.getconnection( njdbc:jtds:sqlserver:/27.208.124.98:1433/ korean word,username,password);在以上代码屮,第一行代码是加载jtds驱动程序。接着第二行代码建立连接。 其中27.208.124.98是sql server数据庳运行所在服务器ip地址,可以根据实 际更改。1433是所在的端口号,这里也可以更改。koreanword是数据库文件。 username和password分別是连接数据库需要的用户名和密码。当然这里的用户 是数据库用户里的一般用户,只有很少的权限。在android直连s
42、ql server的时候很重要的是对服务器端的防火墙和系毒 软的设置。如果设置不当,连接是不会成功的。3. 手机端自动登录实现android提供了五种方式用于存储数据。分别是使用sharedpreferences存储, 文件存储,sqlite数据库存储,contentprovider存储和网络存储。比较这五种方 式,对于自动登荣信息的存储采用sharedpreferences存储是最方便,简洁的。 sharedpreferences存储方式是android提供的用丁存储一些简革配置信息的机制。 采用了 map数据结构来存储数据,以键值对的方式存储,可实现简单的读写操 作。在android系统中
43、,sharedpreferences中的信息是以xml文件形式保存的。 位于/data/data/package_name/shared_prefs 目录卜。一般 android 手机在没有 获取mot权限的情况下,是无法用文件管理软件斉看data目录的。所以是比较 安全的。另外,在存储登录密码时是采用加密存储的方式。关键代码实现如下,存数据editor userlocaldata = getsharedpreferencesc'userdata", o).edit();userlocaldata.putstring('user_name','user
44、_name_string);userlocaldmit();取数据sharedpreferences userlocaldata = getsharedpreferencesc'userdata", 0);string user_name = userlocaldata.getstring(“user_name”,null);4. 手机和服务器通信在手机和服务器进行一部分信息交互时,比如下载资料包请求,同步请求等。 通信中表示信息的格式是使用json(javascript object notation)格式。因为json 是轻量级的数据交换格式,有利于读写,易于解析和生成。
45、冋吋能减少对机器性 能的依赖。json中的信息都是以键/值对的形式存在的,键/值对组成了有序的列表。在本次开发中主耍用到的是android sdk提供的jsonarray和jsonobject两个类来处理json数据的。另外,对于学习资料数据包的下载通信,在手机端处理吋,采用异步通信方 式。这样做是因为,k载学习资料包是费时的,但是android主线程屮如果5秒 内控件没反映的话就会认为无响应,提示用户是否结束。对于普通用户来说并不 了解程序实际还在工作,所以会选择结束程序。所以在下载资料时使用了 android 提供的asynctask来处理。5. 手机端咅频和文件加载对于存储在手机外部存储器上的音频和文本数据,在用户学习时要及时加载 进内存中并播放和显示,尤其是音频。如果每次需要时才去存储设备上读取,这 无疑是很耗时的,在性能比较差点的设备上就会更明显。因为每一阶段单词数人 概30个左右,所以选择丫使用android屮的soundpool类來一次性加载所有的 音频,用一个hashmap对象audiold来存放所有音频加载后在soundpool中的id。 如下代码:soundpool = new soundpool(wordsnumber,0, 5); f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代码安全开发与漏洞防护工作手册
- 2025云南富源产投集团面向社会招聘工作人员10人笔试历年难易错考点试卷带答案解析
- 2025云南丽水市汽车运输集团股份有限公司招聘工作人员2人笔试历年典型考点题库附带答案详解
- 农业现代化技术与模式手册
- 润滑油生产技术与质量控制手册
- 烹饪技艺与营养搭配手册
- 2025中国邮政集团有限公司青岛市分公司招聘笔试历年典型考题及考点剖析附带答案详解
- 2025中国能建葛洲坝集团西南分公司招聘20人笔试历年常考点试题专练附带答案详解
- 机电工程施工机械设备安全使用手册
- 塑料制品设计与生产规范手册
- 企业环保工作绩效考核方案
- 2026年航空航天基础知识模拟题库
- 肿瘤免疫治疗伦理审查的特殊考量
- 河北省石家庄市2026年小升初入学分班考试数学试卷解析及答案
- 煤矿事故应急培训课件
- 感染性腹主动脉瘤诊断治疗专家共识解读指南
- 胸痛CBL的课件教学课件
- 全国园林绿化养护概算定额(2018版)
- 2025年人文班考试试题及答案
- GB/T 46563-2025公共机构能效分级导则
- 超星尔雅学习通《走进西方音乐》章节测试答案
评论
0/150
提交评论