admin 管理员组

文章数量: 887053


2023年12月25日发(作者:sql触发器怎么新建)

2020年10月10日第4卷第19期DOI:10.19850/.2096-4706.2020.19.014现代信息科技Modern Information Technology

Oct.2020

Vol.4

No.19基于Android阿拉伯语学习APP设计与实现刘巨铭,温柔,赖益强,周海贝(广东外语外贸大学南国商学院,广东 广州 510545)摘 要:针对目前手机应用市场上关于阿拉伯语学习类APP功能单一,无法满足学习者日常学习需求的问题,同时为了广外南国商学院阿拉伯语学习者们能拥有一个具有自身特色的学习APP,设计并实现了口袋阿语APP。该APP基于Android平台,使用了多线程、9Patch、XML、JSON和SHA-256等技术实现了用户注册登录、单词学习复习、趣味学习、个人中心和打卡签到等功能。该APP可以为学习者们在移动端学习阿拉伯语带来极大的便利和趣味性。关键词:Android;APP开发;阿拉伯语;单词学习中图分类号:TP311.56 文献标识码:A 文章编号:2096-4706(2020)19-0056-06Design and Implementation of Arabic Learning APP Based on AndroidLIU Juming,WEN Rou,LAI Yiqiang,ZHOU Haibei(South China Business College Guangdong University of Foreign Studies,Guangzhou 510545,China)cannot meet the daily learning needs of learners,at the same time,for the Arabic language learners of SCBC to have a learning APP with their

own characteristics,the Pocket Arabic APP was designed and implemented. Based on the Android platform,the APP uses multi-threading,9Patch,XML,JSON and SHA-256 technologies to realize user registration and login,word learning and review,fun learning,personal

center and check-in and other functions. The APP can bring great convenience and fun for learners to learn Arabic on the mobile ct:Aiming at the problem that the functions of Arabic learning APPs in the current mobile application market are single,and

Keywords:Android;APP development;Arabic;word learning0 引 言国内对于英语学习软件的开发起步较早,但与阿拉伯语相关的学习软件可选择范围较小且功能单一。针对此问题,口袋阿语APP借鉴了各类外语学习APP软件的功能特点,为阿语学习者们搭建了一个具有专业特色的学习互动平台。该APP通过查词、单词学习、基于艾宾浩斯遗忘曲线的智能单词复习、“消消乐”卡片复习和口袋阿语世界排行榜等功能模块构成了一个完整的学习流程和激励体系,用户在使用口袋阿语APP学习时,可以有效提高用户的注意力、提升学习过程的趣味性、提高用户成就感并减少用户遗忘等效果。笔者通过对广东外语外贸大学南国商学院的阿拉伯语专业的师生进行需求调研,采用软件工程的开发方法,结合APP设计理念针对口袋阿语APP进行了近一年的设计与开发,本文从APP架构设计到具体的功能的设计与实现进行了详细的阐述,旨在为学习类APP设计者和开发者分享设计与实现的思路和方法。上为其提供了基于Gradle的构建支持、Android专属的重构、优化小贴士和功能强大的可即时预览的布局编辑器等开发工具有效地提高了本项目开发和调试效率。1.2 开发语言——JavaJava是一种面向对象的语言,其语言特性是封装、继承和多态,这些特性使得在牺牲一定的性能情况下能设计出低耦合的系统,这样的系统还具有易维护、易复用和易扩展的特点。在减少代码量的同时还降低了系统维护成本。由于本项目的需求不断变化,因此这些特点为开发和维护带来了极大的便利。1.3 开发框架本项目采用Android原生开发,原生开发模式开发的APP具有运行速度快、性能高和兼容性好等特点。原生应用支持大量的图形以及动画,能更好操控手机硬件设备(比如多点触控、NFC等),在开发中充分利用这些特点可以给予用户更好的体验。在本项目中以最为常用的MVP(Model View

Presenter)架构搭建Android端,以SSM(Spring+SpringMVC+

Mybatis)框架搭建服务器后端与Android端进行JSON数据交互。基于MVP设计的系统具有代码逻辑清晰、低耦合和方便维护等优点。项目部署在装有CentOS 7系统的云端服务器中,Android端通过Web请求实现前后端的数据交互,这样前后端分离的设计模式更加符合现代APP需求快速变更的特以及海量数据需要存储的基本特征,同时降低系统的耦合度,对日后的维护工作具有深远意义。1 APP架构1.1 开发平台——Android StudioAndroid Studio是美国谷歌公司推出的一个基于IntelliJ

IDEA的Android集成开发环境,谷歌公司在IDEA的基础收稿日期:2020-09-20基金项目:广东省大学生创新创业训练项目(S2)562020.10

刘巨铭,等:基于Android阿拉伯语学习APP设计与实现第19期2 总体设计与需求分析2.1 功能框架介绍功能模块如图1所示。2.2 UI设计APP部分UI设计如图2、图3所示。口袋阿语APP部分模块的UI设计采用Google Material Design的设计风格,如趣味模块中的“消消乐”卡片复习模式,就是直接采用了Android提供的原生MaterialCardView组件设计成卡片式布局,这样具有动效且色彩大胆的卡片布局更符合视觉连贯性并且更有交互性,在用户的使用过程中这些细节能给用户带来一种细腻的愉悦感。精致的UI设计可以使用户在口袋阿语APP停留更多的时间,以此变相地增长用户的学习时间。口袋阿语APP注册登录模块注册登录查词模块查词单词学习复习模块章节学习考级学习学习状态自由复习艾宾浩斯遗忘曲线复习趣味模块“消消乐”卡片复习考核阿拉伯语短视频世界排行群组群主组员用户数据模块个性化设置修改密码绑定签到万年历已学和收藏单词展示图1 功能模块图图2 单词详释页面图3 趣味复习页面据库,MySQL数据库是关系型数据库,其支持多种数据类型、语句和函数。数据库部分数据表如表1~表3所示,数据库E-R图如图4所示。数据库英文名表英文名描述主键外键外键———————arabicuser_subject默认值自增长—————————2.3 数据库设计通过前期的调研,根据需求分析说明书以及使用条件设计了满足3NF范式的数据库。在本项目中采用了MySQL数数据库中文名表中文名字段名subject_iduidbc_idbg_idword_cutword_likeword_alreadyword_buf_bitgmt_creategmt_modified阿拉伯语用户当前词汇表字段中文名类型主键int用户idint单词idint词书idtinyint排除tinyint收藏tinyint已掌握tinyint缓冲位tinyint创建时间datetime修改时间datetime表1 用户当前单词表长度00011111——键pkfkfk———————必填是是是—————是是2020.1057

第19期现代信息科技表2 用户签到数据表数据库中文名表中文名字段名signdate_iduiddatetimeday_count字段中文名主键用户id签到时间总签到次数阿拉伯语用户签到表类型intintdatetimeint长度00—32表3 用户表数据库中文名表名字段中文名uiduser_nameuser_pwduser_sexuser_iconuser_mailuser_phoneuser_bookuser_chapteruser_detailuser_methoduser_groupgmt_creategmt_modified字段中文名主键用户名密码性别头像邮箱手机号当前词书id当前章节当前进度背词方法是否分组创建时间修改时间阿拉伯语用户表类型intvarcharvarcharvarcharmediumblobvarcharvarcharvarchartinyintvarcharvarchartinyintdatetimedatetimebg_iduidword_buf_bitgmt_modifiedgmt_createword_needagainNuser_subjectbc_idsubject_idMword_alreadyword_cutword_likeantonymexp_chineserootnounsletterexamplechapterpresent记录uidday_countNuser_signdatsigndate_idtypegossipbook_collegeNgmt_modifiedgmt_creategossipxgrammarsynonymbc_idbg_idorderwordchinese数据库英文名表英文名描述主键外键——键pkfk——arabicuser_signdate默认值自增长———必填是是——数据库英文名表英文名长度32232321——描述主键—————————————键pk—————————————bg_idbook_group1属于arabicuser默认值自增长———————0——0——book_imagebook_namegmt_creategmt_modified必填是———————————是是gmt_createuiduser_nameuser_pwduser_sexuser_detailuser_icongmt_modifieduser_groupuseruser_methoduser_mailuser_chapteruser_phone1user_bookdatetime图4 数据库E-R图582020.10

刘巨铭,等:基于Android阿拉伯语学习APP设计与实现3 功能实现3.1 注册登录模块注册模块采用了通过邮箱发送验证码的方式验证本次注册是一次“合法”的注册,这种方式可以有效限制“非法”的注册,如:编写恶意程序短时间进行多次注册或大量无用注册等等,“非法”注册会造成服务器拥挤甚至崩溃,导致损失大量用户关键数据。这种方式不仅保护了服务器,同时也为用户注册带来了更多的便利,利用邮箱注册不需要用户记住新建的账号,只需要输入使用了多年的邮箱地址即可,更可以为健忘的用户提供了一个可靠的找回密码的途径。登录功能的初衷是把每个用户的状态数据持久化到服务器,但是传统无免登录功能的方式却提高了打开这个APP的时间开销,同时会间接地降低用户体验度。作为一个用户每天都需要使用的APP,如果每次使用前都需要进行登录操作是一件极其不愉快的事情,因此,口袋阿语APP在保证用户信息安全的前提下把用户登录设计为具有时效性的登录,即在一段合理时间内用户可以免登录使用APP,如果用户长时间内处于不活跃的状态,系统会自动要求该用户下一次使用时必须进行登录。用户密码是敏感信息,因为用户很有可能为了便利把所有APP以及支付软件的密码都设置为同一个密码,一旦泄漏会造成用户个人信息泄漏甚至造成财产损失。因此用户密码加密是重中之重,口袋阿语APP在应用层使用SHA-256加密算法,使用户密码在网络上传输时具有可靠的安全性。SHA-256是迭代的单向Hash函数,可以处理消息以产生称为“消息摘要”的精简表示。在抵抗生日攻击和抵御已知差分攻击方面,SHA-256比现在广泛使用的MD5和SHA-1等更具安全性。3.2 查词模块查词模块支持中文和阿拉伯语互查与模糊查询,用户在搜索框中输入部分阿拉伯语字母时,APP会根据所输入的字母进行即时查询,并在搜索框下方提示符合输入内容的单词,以方便用户通过直接点击提示的单词完成一次查询动作,而不需要用户输入完整的单词。用户对搜索框内容的每一次修改都会触发一次提示内容的更新,因此可以保证提示内容的实时性。用户在输入中文查阿拉伯语单词时会根据用户的输入进行中文智能组词,并在提示框中显示,每一栏中文词语后都会显示该中文词语的阿拉伯语近义词供用户参考。3.3 单词学习复习模块3.3.1 当前课时口袋阿语APP默认按照课时是顺序为用户合理安排背词内容,设n为每日必学单词量,即一组词,n∈[15,25](单位:个)为一组词的合理区间。当一个用户学习完第五章才开始使用这个APP的情况下,用户可以点开当前课时功能选择任意课时作为起点背诵。这个功能使得用户在背词内容选择上更加的自由。3.3.2 章节学习情况以章节为单位采用进度条的形式直观地展示了用户对当前词书学习的具体情况,同时,给用户制定未来学习计划提供了参考数据。第19期3.3.3 单词学习单词学习以考核的形式学习,考核分为两种形式:(1)提示阿拉伯语单词,从选项中选出正确的中文意思;(2)提示中文,从选项中选出正确阿拉伯语单词。这两种方式出现的比例为2:1。选项数量的设定为四个。在选项内容的设定上,系统会首先检测当前单词是何种词性,进一步筛选出同词性的单词作为干扰项。这样的设置方式可以使得干扰项更具有迷惑性。具体流程图如图5所示。开始背词进入背词模块是否为中选阿是模式?否显示阿语单词显示中文意思选中文意思选阿语单词筛选出当前单词同词性的单词作为干扰项否用户选择是否正确?出现提示语并展示单词相关例句否是是是否为第一次选错?否进入单词详情页面是否为最后一题?是结束背词图5 背词功能3.3.4 复习复习提供了两种模式分别是正常模式和趣味模式。正常模式下几乎与“单词学习”模块中提供的考核模式相似,但在考核形式上两种方式出现的比例会对调。趣味模式详细的介绍在(3.4.2“消消乐”复习模式)中。复习的内容有两种:(1)用户自行选择任意章节(可多选)作为复习内容;(2)系统会根据用户的每日学习内容并依据艾宾浩斯遗忘曲线为用户智能地规划出当前需要复习的内容。3.4 趣味模块3.4.1 阿拉伯语短视频短视频的素材来源于阿拉伯本地的经典动画片、电视剧、电影、新闻和学术讲座等视频的剪辑。剪辑的内容经过阿拉伯语言专业人士挑选,其内容为一小段(1~5句)对话和单人讲述等,经过如此筛选的内容是具有一定教学意义的,在短视频中也提供了考核方案和激励措施。(1)考核方案。用户可以反复观看一个短视频,在点击“开始回答”的按钮后,界面出现两个选择按钮以及一个倒计时器,倒计时的时长系统会根据当前视频的时长设定。考核的形式分2020.1059

第19期为两种:1)两个按钮内容相近时是考核对视频的细节辨析;2)按钮内容不相近时是考核对视频的主旨大意理解。用户作出选择后,倒计时停止,以剩余的秒数作为本题目的分数计入用户账户中。(2)激励措施。“口袋阿语世界”是一个由使用本APP的全体用户构成的排行榜,会根据用户的分数进行世界排名。“口袋阿语世界”设置有周榜、月榜和年榜,榜首用户可以获得一枚勋章以及礼物作为激励。用户可以实时查看榜单以及自己当前的世界排名,可以邀请其他用户建立群组排行。群组性质类似于学校中的班级,群组的初衷是为了方便阿拉伯语教师组织以班级为单位的每日学习任务(第二课堂),同时也可以让多位志同道合的阿拉伯语学习者通过群内排名竞争以起到相互激励的作用。中国互联网络信息中心(CNNIC)的相关调查数据显示,截至2020年3月,我国网民数量达9.04亿,其中85.6%的网民使用短视频应用,用户规模达7.73亿;而在用户使用时长方面,截至2019年12月,短视频则仅次于即时通信和网络视频(不含短视频),位列第三。在此大背景下,阿拉伯语短视频为阿拉伯语学习者提供了一种新式阿拉伯语学习途径。短视频这种表现形式,自诞生之日起便展现出独特的吸引力和影响力,阿拉伯语短视频使用户可以在空闲的时候以愉悦轻松的方式在短时间内学习多种题材和多种场景的阿拉伯语知识。3.4.2

“消消乐”复习模式如图3所示,考核方式一改传统的四选一模式。用户通过中文和阿拉伯语配对的方式消除掉两个对应方块,直到消除完六个方块,卡片上会浮现出这些单词对应的完整释义。卡片式的布局可以使用户在任意时候通过左右滑动浏览前面考核过的单词,如图6所示。图6 完成一张卡片后其中关键算法和难点是在对用户点击事件进行判断后的动画播放期间仍能对用户的再次选词提供准确和即时的判断执行,下文为代码描述。定义一个内部类记录下需要进行判断的数据,代码为:private class JudgeBlock{ Button judgeBtn=null; //用户第一次点击的按钮 int funKey=0; //judgeBtn中的单词id602020.10现代信息科技}定义全局变量并用volatile修饰保证线程可见性,由于一张卡片中有三组元素,考虑到在用户极端操作(上组配对动画还未结束的1.5秒内完成全部配对),因此为保证系统的稳定运行,入队元素必须与卡片中元素组数相同。代码为:private volatile Queue judgeBlocks;judgeBlocks=new LinkedList<>();//线性队列(new JudgeBlock());(new JudgeBlock());(new JudgeBlock());//保证用户在1.5s动画内顺利完成全部配对startJudge方法是“消消乐”业务逻辑判断的入口,代码为:void startJudge(View view,JudgeBlock judgeBlock){ int key=(); //获取这个词在数据库中的id //success matching if(key==){ //id相同即配对成功 startAnimation(view,judgeBlock); ((Integer) ()+1); //成功配对次数+1 }else{//fail matching (); //队首元素出队,去除脏数据 (new JudgeBlock()); //填充一个队列元素,保证队列元素始终为3个 }}startAnimation方法负责为方法参数中的view开启新一个动画线程,代码为:void startAnimation(View view ,JudgeBlock judgeBlock){ /* 1、为两个按钮new两个独立线程执行动画 2、出队首元素(),并填充一个元素至队尾 */}onClick方法为按钮的点击事件提供业务响应,代码为:public void onClick(final View view) { LinearLayout parent=(LinearLayout) ent(); synchronized (judgeBlocks){ //锁judgeBlocks,保证操作该变量时的原子性,在这里是保证访问操作是在poll操作后,从而不拿到"脏"数据,队首元素始终为未使用的对象final JudgeBlockjudgeBlock=t(); //取出队列首元素if(tn==null)//first choiceinitJudgeBlock(); //初始化else if(tn!=null&&de()!=de()){//判断用户点击的不是同一个按钮

刘巨铭,等:基于Android阿拉伯语学习APP设计与实现第19期 startJudge(view);//开始判断 }if(成功配对次数==3)achieve(); //显示当前卡片三组单词详细信息 }}略和模式分析 [J].当代教育实践与教学研究,2019(19):35-36.[5] LI Z Q,WANG Y N. Design and Implementation of Online

Learning System based on Android Platform [J]. World Scientific

Research Journal,2020,6(11):376-384.[6] KURNIAWAN B,PERRY D. Android Application

Development:A Tutorial [M].Canada:Brainy Software,2015.[7] HENDIKAWATI P,ARIFUDIN R,ZAHID M Z.

Development of computer-assisted instruction application for statistical

data analysis android platform as learning resource [J]. Journal of Physics

Conference Series,2018,983(1):1-7.[8] KIM D K. Towards Performance-Enhancing Programming

for Android Application Development [J]. International JOURNAL OF

CONTENTS,2017,13(4):39-46.[9] ALLEN G,OWENS 权威指南:第2版 [M].杨谦,刘义宣,谢志强,译.北京:电子工业出版社,2012.[10] 孟德国,王耀龙,周金利,等.深入理解Android:WebKit卷 [M].北京:机械工业出版社,2016.[11] 秦小波.设计模式之禅:第2版 [M].北京:机器工业出版社,2014.[12] 张思民.Java语言程序设计:第3版 [M].北京:清华大学出版社,2015.[13] 李俊山,叶霞,罗蓉,等.数据库原理及应用(SQL

Server):第3版 [M].北京:清华大学出版社,2017.[14] GOETZ B,PEIERLS T,BLOCH J,等.Java并发编程实战 [M].童云兰,译.北京:机器工业出版社,2012.作者简介:刘巨铭(1998—),男,汉族,广东肇庆人,本科在读,研究方向:软件工程;温柔(1998—),女,汉族,广东河源人,本科在读,研究方向:阿拉伯语;赖益强(1982—),男,汉族,广东梅州人,副教授,硕士,研究方向:数据库技术;周海贝(1998—),女,汉族,广东汕尾人,本科在读,研究方向:阿拉伯语。3.5 用户数据模块用户数据包含了用户密码、已收藏和已学习单词、个性化设置中的邮箱地址和头像、用户签到等信息。用户的签到详情,用户的签到详情以万年历的形式展示给用户,系统也会记录每天的背词数量,通过计算后以进度条形式展示,方便用户了解学习情况。4 结 论目前应用市场上阿拉伯语学习APP偏少,或者大多数阿拉伯语学习APP规模偏小,缺乏针对性和科学的记忆方法。本文设计开发的基于Android的阿拉伯语单词学习APP可以很好地满足广大阿拉伯语学习者的需要,另外该APP的移动学习模式符合大学生的心理诉求,丰富了阿拉伯语教学的形式和教学资源,成为学生课外自主学习的“第二课堂”,同时还打破了师生交流的时空限制,提高了学习交流的及时性。参考文献:[1] 何润民,马俊.SHA-256算法的安全性分析 [J].电子设计工程,2014,22(3):31-33.[2] 冉思清.社会学视域下短视频与传统电视比较 [J].青年记者,2020(24):64-65.[3] 孙未冉.艾宾浩斯遗忘曲线在学习中的应用 [J].科学大众(科学教育),2018(10):32.[4] 刘东宁,马立蓉.基于智能手机的高校阿拉伯语移动学习策(上接55页)线性的收敛因子递减机制,有效均衡了全局搜索和局部开发能力;最后,算法引入混沌Chebyshev映射和高斯扰动机制对气泡攻击进行改进,有效改善攻击速度慢、精度低的问题,并避免陷入局部最优。通过一系列基准函数测试,证实IWOA可以有效提升寻优精度和收敛速度。进一步研究可以尝试在工程优化问题中验证改进算法的可行性和效率。参考文献:[1] MIRJALILI S,LEWIS A. The Whale Optimization Algorithm

[J]. Advances in Engineering Software,2016,95:51-67.[2] 宋婷婷,张达敏,王依柔,等.基于改进鲸鱼优化算法的WSN覆盖优化 [J].传感技术学报,2020,33(3):415-422.[3] 王迪,金辉.贪婪鲸鱼优化算法求解带时间窗的快递末端配送路径问题 [J].计算机应用与软件,2020,37(6):263-268+315.[4] 王生武,陈红梅.基于粗糙集和改进鲸鱼优化算法的特征选择方法 [J].计算机科学,2019,47(2):44-50.[5] 徐建中,晏福.改进鲸鱼优化算法在电力负荷调度中的应用 [J].运筹与管理,2020,29(9):149-159.[6] 袁姝,周朝荣,杨正清,等.群智感知系统中基于鲸鱼优化算法的任务分配 [J].计算机工程与设计,2020,41(7):2031-2037.[7] 张永,陈锋.一种改进的鲸鱼优化算法 [J].计算机工程,2018,44(3):208-213+219.[8] 刘竹松,李生.正余混沌双弦鲸鱼优化算法 [J].计算机工程与应用,2018,54(7):159-163+212.[9] 褚鼎立,陈红,王旭光.基于自适应权重和模拟退火的鲸鱼优化算法 [J].电子学报,2019,47(5):992-999.作者简介:郭文涛(1988—),男,汉族,山西大同人,工程师,硕士,研究方向:智能信息处理;张贻红(1987—),男,汉族,湖南娄底人,工程师,硕士,研究方向:大数据处理。2020.1061


本文标签: 用户 学习 单词