标题 | 基于Android平台的便携式工作记忆训练系统 |
范文 | 赵宇飞+禹东川 摘 要: 研究表明,工作记忆在个体认知行为上可起到积极作用。通过工作记忆训练,个体的认知绩效可以得到有效提高。工作记忆是儿童发展的重要指标,因此研发面向儿童的工作记忆训练系统具有重要意义。随着移动终端的普及和便捷性,运用Android和HttpClient等技术设计一款基于Android平台的移动终端应用,可对儿童进行便捷的工作记忆训练,并可对训练过程和数据进行跟踪和查询,为工作记忆训练的运用提供了技术支持,促进工作记忆训练的发展。通过测试,验证了该方案的可行性。 关键词: 工作记忆; 认知训练; Android; 系统设计 中图分类号: TP311 文献标识码: A 文章编号: 1004?373X(2015)10?0045?04 工作记忆是指个体在执行认知任务中,对信息暂时保持与操作的能力[1]。工作记忆与很多高级认知能力如推理、问题解决和学习等密切相关,并为日常生活中的许多重要认知活动提供信息加工的空间,因此被认为是人类认知活动的核心,是进行学习、推理、问题解决活动以及智力活动的必要成分[2?4]。 近来的研究发现,通过对工作记忆进行训练可以提高个体的工作记忆能力[5]。工作记忆成为近年来提升个体认知绩效的一种有效方式[6]。现在国内外已有一些认知训练系统(如以色列CogniFit公司开发的个性化训练系统)涉及到工作记忆训练,但并没有专门针对工作记忆的训练系统。即使有少数工作记忆训练程序(如瑞典卡洛琳那研究所设计开发的Cogmed网站),也只能通过计算机完成,不仅不便携带,对于儿童群体特别是低龄儿童来说,鼠标操作的形式也会使训练难以进行。近些年来,Android平台以其良好的开放性和平台便捷性等特点得到人们青睐,加上Android平板电脑的触摸操作方式简单友好,可以带来很好的用户体验。因此本文基于Android平台设计出便携式工作记忆训练系统,旨在方便的训练个体工作记忆,并能将训练数据上传至数据库。通过大样本量跟踪分析,个性化改善训练任务,更好的用于工作记忆训练的研究和发展。 1 系统分析与设计 1.1 系统架构设计 本系统的总体架构如图1所示,采用C/S三层结构模式,由基础数据层、通信网络层和终端展现层构成[7]。硬件方面由联想公司的“万全R520”服务器和平板电脑组成,开发工具为台式电脑。软件方面考虑到安全性和易用性,选择微软公司的SQLServer数据库管理软件。 图1 系统总体架构 1.2 系统需求分析 本系统基于Android平台的智能终端进行设计和开发,根据工作记忆训练系统的需求分析,本系统需要实现以下功能,系统功能结构如图2所示。 图2 系统功能结构图 (1) 用户注册/登录功能。为保证数据的安全性和用户的数据独立性,需要采用先注册再登录的模式,才能进入系统进行训练; (2) 工作记忆训练功能。根据工作记忆模型设计不同的任务进行训练。不仅要根据训练目标设计训练任务,还应充分利用人机交互和多媒体等技术设计出生动友好、易于操作的各项训练; (3) 数据查询功能。该功能可以获取训练的历史数据,通过历史数据的查询,可清晰地看出个体的训练效果,可采用曲线图和图表等方式予以显示; (4) 数据通信功能。该功能为客户端和服务器端的交互提供支撑。用户登录系统、数据上传和查询功能都需要此模块的后台支撑; (5) 数据库管理功能。本地数据库管理功能是利用Android内嵌SQLite数据库存储管理用户信息及训练数据。服务器端数据库管理功能为获取Android客户端的数据后,需响应客户端发送的各项请求;能存储客户端发来的数据并根据要求查询和修改;保护数据安全,防止恶意攻击。 2 系统实现 随着移动技术的发展和智能手机的普及,Android操作系统以其强大的功能及方便和实用性迅速在各行业推广应用,被称为第一个真正为移动终端开发的完整且开放的移动操作系统[8]。本系统开发平台为Android 2.2版以上。在进行Android应用程序开发时,最基本的是要掌握一些重要组件的定义与属性的设置,如活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)以及内容提供器(Content Provider)等[9]。软件流程图设计如图3所示。用户通过客户端进行注册,Web服务器对注册信息进行验证,访问后台数据库。用户通过已注册的用户名和密码进行登录,Web服务器对登录信息进行验证。工作记忆训练模块作为本系统的核心模块主要通过Android的Activity类和SurfaceView类实现。数据查询模块可实现历史数据的查询和显示。客户端通过数据通信模块与服务器之间进行通信,获得数据后,以曲线和图表的形式显示在界面上。数据通信模块的实现是客户端利用HTTP协议建立与Web服务的通信连接再收到服务器端发来的JSON序列进行反序列化显示在页面[10]。 图3 系统程序流程图 2.1 用户注册/登录模块 用户通过客户端进行注册的步骤为: (1) 用户填写注册信息,点击“注册”按钮判断密码和确认密码一致,如不相同,则需要提示用户重新输入,否则将注册信息提交给Web服务器; (2) Web服务器对注册信息进行验证,访问后台数据库,若数据库中已经存在相同用户名,则注册失败,否则将注册信息存入后台数据库。验证完成后Web服务器需将注册状态信息封装成JSON数据格式发送回客户端; (3) 客户端解析返回的注册状态信息。若注册成功,则跳转到登录界面,否则返回到注册界面并提示失败原因。 用户通过客户端请求登录的具体步骤是: (1) 用户填写用户名和密码,点击“登录”按钮后,程序判断用户名和密码是否为空,若为空,提示用户重新输入信息,否则将登录信息(用户名和密码)提交给Web服务器; (2) Web服务器对登录信息进行验证,查询后台数据库,验证完成后Web服务器将登录状态信息封装成JSON数据返回至客户端; (3) 客户端解析返回的登录状态信息。若登录成功,则进入主功能界面;登录失败则返回至登录界面,提示失败原因。 2.2 工作记忆训练模块 工作记忆训练模块是整个系统的核心模块,根据Baddeley工作记忆多成分模型设计实现不同的训练任务[11]。工作记忆广度以序列记忆任务训练,数字以不同的方位呈现在平板电脑上,要求顺序或倒序回忆数字的方位。工作记忆刷新以N?back任务训练,依次呈现图形,要求判断每一个出现的图形是否与刚呈现过的前N个图形匹配。复杂工作记忆以找不同任务训练,首先找出三副图片中不同的一副,多次选择过后,再回忆出每次选择的图片的位置。因文章篇幅有限,本文仅以N?back任务来展示。N?back任务为一种连续加工的任务类型,是研究工作记忆最常用的认知实验之一,对其训练可以达到流体智力的提高[12]。其具体操作为参与者浏览逐个呈现的图片,从第N个图片起判断每一个出现的图片是否与前面的倒数第N个图片相匹配。在此模块中,根据注册时训练者的年龄对应完成不同难度的训练任务,如低龄儿童采用one?back任务,随着年龄的增长,N也会相应增加。此方法实现了训练的适应性和软件的个性化,其他训练任务也根据这个原则进行设计及实现,更有效的对不同年龄的人群进行工作记忆训练。 N?back任务的控制由NbackActivity类实现,此类继承自Activity类,是整个任务的入口,同时也接收了用户的年龄变量。重写Activity类的onCreate方法完成窗体显示状态操作,初始化界面进入训练界面。通过对NbacktipsActivity的xml布局文件设计完成说明界面。图形界面的绘制由NbackView类实现。此类继承SurfaceView类并实现SurfaceHolder.Callback接口,通过getHolder()获得SurfaceHolde对象,再通过addCallback()添加回调函数lockCanvas()获得Canvas对象并锁定画布Canvas进行绘画,最后通过unlockCanvasAndPost()结束锁定画图,并提交改变,将图形显示。通过监听用户点击屏幕,重写onTouchEvent()方法实现人机间的交互。以下代码为NbackView重写surfaceCreated()方法的主要部分。 public void surfaceCreated(SurfaceHolder holder) { Canvas canvas = mSurfaceHolder.lockCanvas(); if(mSurfaceHolder==null||canvas==null) {return;} Paint paint= new Paint(); canvas.drawBitmap(back, 0, 0, paint); paint.setTextSize(30); paint.setColor(Color.RED); play = BitmapFactory.decodeResource(getResources(), R.drawable.play); mSurfaceHolder.unlockCanvasAndPost(canvas); touchFlag = true; } 2.3 数据查询模块 通过SQLiteDatabase的rawQuery()方法读取SQLite中存储的数据可绘制出用户历史训练数据的表格及其曲线。表格及其曲线的绘制由Canvas类和Paint类实现,以下为此模块实现运用的几个主要方法: 画线:drawLine(float startX,float startY,float stopX,float stopY,Paint paint); 画点: drawPoint(float x,float y,Paint paint); 渲染文本:drawText(String text,float x,float y, Paint paint); 抗锯齿效果:Paint.setAntiAlias()。 2.4 数据通信模块 用户注册和登录需要与远程服务器进行交互,同时也要把相关数据存入远程数据库并获取所需历史数据,数据通信模块主要为客户端和远程服务器之间的数据通信服务。 为了实现与Web的通信,客户端首先需要利用HTTP协议建立与Web服务的通信连接。Android平台提供了Apache HttpClient接口,为客户端的HTTP编程提供了高效、便捷、功能丰富的工具包支持[13]。此模块中使用POST方式向服务器提交数据。首先对请求体参数(即所要提交的数据)进行封装,再创建一个POST方式的HttpRequest对象,并设置POST方式的请求体。其次创建一个默认的HTTP客户端,并执行该POST方式的HTTP请求。获得服务器的响应码,据此判断服务器是否正确响应。最后获得服务器的响应内容,转换成String字符串进行显示。使用GET方式获取服务器上的数据,方法与POST方式相类似。客户端收到服务器发来的JSON序列后需要将其反序列化为可正常显示的对象,通过JSONArray类和JSONObject类来实现[14?15]。 2.5 数据库管理模块 为方便管理并保证数据的安全可靠,采用了本地数据存储和远程数据库存储2种方式。本地数据库采用了SQLite这种轻量级的小型数据库。SQLite在数据存储、管理、维护等各方面都相当出色,功能十分强大[16]。对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取[17]。以下代码实现了训练模块中N?back任务的数据存储。 public void SaveToDb() { File Path = new File("/sdcard/databasefile"); File f = new File("/sdcard/databasefile/WMDb"); if(!Path.exists()) { Path.mkdirs(); } if(!f.exists()){ try {f.createNewFile(); }catch(IOException e) {e.printStackTrace();} } SQLiteDatabase db = SQLiteDatabase.openOrCreate Database(f, null); … db.insert("Nback_Info", null, cv); db.close(); } 远程服务器数据库中主要包括2张表:用户信息数据表以及工作记忆训练信息数据表。 表1 用户信息数据表 3 系统测试 基于Android平台的便携工作记忆训练系统的软件测试主要包括3个方面:功能测试、界面测试、数据项测试。功能测试:测试各个模块及窗口所完成的功能是否准确,操作是否方便,是否能够准确执行。界面测试:界面是否简洁友好并符合需求,各个训练模块的提示语是否清晰明了,功能键是否描述准确。数据项测试:与数据库的连接是否正常,后台数据库的数据存储是否正确,各个模块的数据计算结果是否正确。经过对软件每一模块和单元的测试,验证了功能和界面的有效性和完整性。因论文篇幅有限,这里给出部分系统运行截图,如图4和图5所示,分别为用户登录/注册界面和N?back任务运行界面。经过多次数据传输测试和对后台数据库的数据校验,数据的正确率为100%。通过系统运行测试,验证了此基于Android平台的便携式工作记忆训练系统的可行性。 表2 工作记忆训练信息数据表 图4 用户注册/登录界面 图5 N?back任务运行界面 4 结 语 工作记忆在个体的认知行为中起来了不可替代的作用,与人类智力、学习、推理、创造力等高级认知活动之间存在密切的关系。通过工作记忆训练,儿童的智力水平等方面可以得到有效的提高。本文介绍了基于Android平台的工作记忆训练系统设计和开发,可将智能终端与工作记忆训练有效结合,提供更便捷、更有效的训练手段,对于工作记忆训练具有一定的实用价值和借鉴价值。 参考文献 [1] BADDELEY A D. Working memory [J]. Scholarpedia, 2010, 5(2): 3015?3018. [2] 赵鑫,周仁来.工作记忆:人类高级认知活动的核心[J].北京师范大学学报:社会科学版,2010(5):38?44. [3] 蔡笑岳,苏静.工作记忆与领域知识在个体认知行为中的作用[J].心理与行为研究,2008(4):306?310. [4] 黎翠红,何旭,郭春彦,等.工作记忆训练的研究述评[J].心理与行为研究,2014(3):407?412. [5] 赵鑫,周仁来.工作记忆训练:一个很有价值的研究方向[J].心理科学进展,2010,18(5):711?717. [6] 仲崇健. 工作记忆与注意的训练对小学生流体智力的影响[D].重庆:西南大学,2011. [7] 虞开森,骆小龙,余魁,等.基于iphone的防汛掌上通平台设计与应用[J].水利水电科技进展,2010,30(6):74?77 [8] 李宁.Android应用开发实战[M].2版.北京:机械工业出版社,2012. [9] 张毅.Android软件安全开发研究[J].信息安全与技术,2014(9):70?71. [10] 龚成莹,邢敬宏,胡银保,等.基于JSON的Android移动终端与PHP及MySQL数据通信[J].工业仪表与自动化装置,2013(1):63?65. [11] 钟洁.Baddeley工作记忆模型发展的综述[J].湖北经济学院学报:哲学社会科学版,2010,24(4):136?137. [12] 赵延鑫.n?back范式在工作记忆研究中的应用[J].心理医生,2012(7):64?64. [13] 黄淑静,杨红梅.利用JSON+Web Service实现Android访问远程数据库[J].科技信息,2013(9):98?99. [14] 邢四为.基于JSON的信息交互系统的研究与实现[D].合肥:安徽大学,2013. [15] 江燕.基于Android智能终端的远程控制系统[J].电子技术应用,2012(8):129?132. [16] 倪红军.基于Android系统的数据存储访问机制研究[J].计算机技术与发展,2013,23(6):90?93. [17] 马获蕾,汤海凤.Android系统中SQLite数据库的研究[J].电脑知识与技术,2013(8):6243?6245. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。