基于Android的大学生在线心理轻问诊APP的设计与实现

2018-07-28 07:19魏亮水宋英男邓静静崔星童
电脑知识与技术 2018年11期
关键词:数据分析移动互联网

魏亮水 宋英男 邓静静 崔星童

摘要:大学生心理轻问诊APP是基于大学生心理咨询室而设计开发的线上平台,充分协调和整合资源,服务在校大学生,提高大学生心理健康水平。问诊平台的主要功能是为学生科普心理学知识,增强学生对心理学的认识,同时咨询师能够在问答社区对提出问题的学生进行问诊和帮助。平台也为学生提供预约咨询师的入口。心理咨询师能根据学生用户在平台留下的数据分析用户,监测学生的的心理健康状况。心理轻问诊平台让大学生拥有一个更加健康的心灵世界。

关键词:Android;移动互联网;心理咨询系统;社区问答;数据分析

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)11-0089-03

1 背景

在我国互联网的发展过程中,PC互联网已日趋饱和,移动互联网却呈现井喷式发展。伴随着移动终端价格的下降及wifi的广泛铺设,移动网民呈现爆发趋势。智能手机在大学生群体中的普及率也是非常高。

在工作、生活中,人们越来越依赖于智能设备所提供的种种便利的功能。而在众多智能设备中,装有Android操作系统的智能手机、平板电脑,占据了很大的比例,由广大开发者所设计实现的Android应用,提供了种类繁多的功能[1]。

全球大概3亿5千万人遭受抑郁困扰,全球14%的疾病困扰来自于精神疾病,每年有80万人死于自杀,6000万人受双向情感障碍困扰。工作、生活、感情等方面影响着现代人的身心健康,除了严重的精神疾病之外,更多人们经受“失眠”、“抑郁”、“焦虑”等问题。人们需要获得更多专业信息及服务来帮助自己[2]。

随着互联网技术的迅速发展,开展在线心理健康服务,正逐步成为高等学校信息化建设的一个重要内容。所以适应时代变化,加强和改进大学生心理服务工作,提升高校心理咨询师工作效率和服务效果,必须积极创新思想观念、改进管理方式,构建一个具有大学生特色的心理工作在线平台,以提高大学生心理工作的科学化和信息化水平[3]。

大学生在线心理轻问诊APP服务的是在校的大学生。通过智能手机终端,学生可以查看各类的心理学知识,与周围的同学一同交流,也可以向学校专业的心理咨询老师需求帮助。同时心理咨询老师也能更加高效服务学生,监测学生的心理健康状况。

2 开发环境介绍

2.1 Android 系统

Android 是基于 Linux 的自由及开放源代码的操作系统,运用于移动终端,例如:手机、平板电脑。它是由Google 公司和开放手机联盟合作起来领导及开发的。Android系统具有开放性、丰富的硬件支持、方便开发、与谷歌的无缝连接等优点[4]。

2.2 MySQL数据库

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。目前属于 Oracle 旗下 产品,是目前应用广泛的关系型数据库管理系统之一。

2.3 Tomcat

Apache Tomcat 由Apache、Sun 和其他一些公司及个人共同开发而成。Tomcat 服务器是一个开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

2.4 Android stuido

Android Studio 是一个它是谷歌推出的新的Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT。Android Studio 提供了集成的 Android 开发工具用于开发和调试。

2.5 Myeclipse

MyEclipse是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate、MyBatis等。

3 应用分析与设计

3.1 系统设计

3.1.1 首页板块

首页设计的比较简洁明了,主要分为三部分的内容。首页顶部将以轮播图的形式展现与心理有关的新闻,或者学校内部举办的与心理有关的活动通知。让同学能意识到人们的心理健康问题一直是受到社会、政府、媒体和学校关注的。在首页中部,是六类心理学文章,分别是“个人成长”、“人际交往”、“性心理”、“家庭关系”和“职业生涯”,用户能对阅读的文章收藏、点赞和评论,给学生提供一条学习对心理学知识的渠道。在分类文章下方,是科普推送的文章,这是根据所有学生对文章的浏览记录,推荐的浏览数较多的文章,让用户及时了解关注量较高的优质文章。

3.1.2 问答社区板块

问答社区的主要功能是用户可以在社区中提出自己的问题,在社区中需求专业心理咨询师的帮助。用户可以直接点击问题编辑按钮,然后在问题编辑界面用户可以描述自己的问题。在问题发布后,专业的咨询师将会对问题进行解答。学生用户可以对咨询师的回答进行点赞。同时用户在搜索栏中可以通过关键字搜寻自己感兴趣的问题。

3.1.3 咨询板块

在咨询界面,学生用户可以查看到学校的心理咨询老师的信息,主要包括咨询师的个人信息和擅长的咨询领域。在界面顶部区域,学生能够点击预约按钮跳转至预约编辑界面,填写完预约内容后,学生就可等待老师的回复,为学生安排咨询时间。

3.1.4 个人中心板块

个人中心界面主要呈现用户模块、“我的收藏”模块、“我的提问”模块、“我的消息”模块。 用户模块,实现用户的登录、个人资料上传和头像修改。学生用户的登录是通过教务系统的账号密码来登录的。“我的收藏”和“我的提问”模块,用户可以分别查找到自己收藏的文章和提出过的问题。在“我的消息”模塊,用户可以查看预约回复信息。

3.2 系统功能结构

3.3 数据库设计

数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此数据库设计是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。该平台设计了应用服务器端accompany数据库,应用服务器端accompany数据库包括用户表、评论表、文章表、文章评论表,文章标签表,问题表,问题标签表等。

3.4 相关技术框架

1)Dagger2

面向对象编程经常需要处理各种依赖关系,都需要在使用它们的地方进行实例对象构建,对象之间可能还存在着各种各样的依赖关系。Dagger2 (A fast dependency injector for Android and Java)正是一个安卓和Java的依赖注入框架,使用代码自动生成创建依赖关系需要的代码。减少很多模板化的代码,更易于测试,降低耦合,创建可复用可互换的模块。

2) MVP(Model-View-Presenter)

Model 是数据源层。比如数据库接口或者远程服务器的api。Presenter是从Model中获取数据并提供给View的层,Presenter还负责处理后台任务。View是指显示数据并且和用户交互的层。

View层不持有Model层对象任何引用,当然参数里面和临时变量里可以有Model层对象。View层只持有Presenter层对象引用,任何需要更新或者操作数据的,都间接通过Presenter对象去操作数据。而Model层想要操作View层是无法实现的,必须通过Presenter层。

Presenter层持有View层对象的引用,除此之外不持有其他的UI控件等的引用,Model层会把想要更新View的操作委托Presenter去操作,而Presenter层会把更新View操作交给View层对象去操作。

3)retrofit2+OKHttp3+rxjava2

Retrofit是一个Android和 Java平台的类型安全的网络请求框架。Retrofit 通过将API 抽象成Java接口而让连接到 RESTweb服务变得简单。这个网络请求库可以很简单的把返回的JSON或者XML数据解析成简单Java对象(POJO)。GET, POST, PUT, PATCH和DELETE 这些请求都可以执行。

和大多数开源软件一样,Retrofit 也是建立在一些强大的库和工具基础上的。Retrofit 背后用了同一个开发团队的OkHttp 来处理网络请求。而且Retrofit不再内置JSON 转换器来将JSON装换为Java对象。取而代之的是提供以下JSON转换器来处理:

Gson: com.squareup.retrofit:converter-gson

Jackson: com.squareup.retrofit:converter-jackson

Moshi: com.squareup.retrofit:converter-moshi

对于 Protocol Buffers, Retrofit 提供了:

Protobuf: com.squareup.retrofit2:converter-protobuf

Wire: com.squareup.retrofit2:converter-wire

对于 XML 解析, Retrofit 提供了:

Simple Framework: com.squareup.retrofit2:converter-simpleframework

通过RxJava可以很简单的实现 Retrofit。在 Retrofit 1 中是默认整合的,但是在Retrofit2中需要额外添加依赖。

okhttp用于android中请求网络。用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient)。使用OKHttp进行网络请求支持两种方式,一种是同步请求,一种是异步请求。OkHttp有如下特性:支持http2,对一台机器的所有请求共享同一个socket 2;内置连接池,支持连接复用,减少延迟;支持透明的gzip压缩响应体 ;通过缓存避免重复的请求 5)请求失败时自动重试主机的其他ip,自动重定向。

4)观察者模式

观察者模式是一种使用频率非常高的设计模式,最常用的地方就是订阅-发布系统。

这个模式的重要作用就是将观察者和被观察者解耦,使他们之间的依赖更小甚至没有。

Subject:抽象被观察者(Observeable),把所有观察者对象的引用保存在一个集合里,每個主题都可以有任意数量的观察者,抽象被观察者提供一个接口,可以增加和删除观察者对象。

ConcreteSubject:具体的被观察者,将有关状态存入具体的观察者对象,在具体的被观察者内部状态发生变化时,给所有注册的观察者发送通知。

Observer:抽象观察者,定义了一个更新接口,使得在得到被观察者的通知时更新自己。

ConcreteObserver:具体的观察者,实现了抽象观察者锁定义的接口,用来在收到通知时更新自己。

3.5 技术难点

1)在Android中使用dagger2.0需要注意三个问题,以悟空使用金箍棒为例:

第一步,定义依赖和被依赖的对象的类,悟空类和金箍棒类。“依赖类”和“被依赖类”的构造函数用@Inject注解修饰。@Inject修饰的构造函数和`@Module`的`provideXXX`方法二者可以省略一个。Dagger可以根据其中的任意一种配置创建依赖的对象。

第二步,定义一个@Module注解的类,一般叫做XXXModule。里面写的@Provides注解修饰的方法。这些@Provides方法返回“悟空类”和“金箍棒类”对象。比如@Provides Wukong provideWukong(){ return new Wukong(); }

第三步,创建一个interface,并用@Component注解修饰。一般叫做XXXComponent。里面写一个注入方法:void inject(Wukong wk);。這里Wukong只是一个例子。任何你准备要注入的类都可以代替上面参数的Wukong类。

第四步,在需要注入的地方写@Inject的field。

最后,Dagger会根据上面的内容和最后的@Component接口生成一个DaggerXXXComponent的类型,使用这个类型来实现注入。上面的1到3步可以理解为依赖的配置。最后的XXXComponent代替之前的Reflect方式实现注入。

3.6 页面效果

3.6.1 首页

首页的效果图,包括轮播图展示新闻和学校的通知、分类的心理学知识以及推送的心理学文章。如图3。

当用户点击每一类文章的图标后,即可进入了文章列表界面,用户点击文章后,可以进行评论和点赞。以个人成长为例,如图4、5、6所示:

3.6.2 问答社区

问答社区界面如图7、8:

在用户点击进入每个问题之后,即可显示问题的具体情况和咨询师对他们的评价,并对其进行收藏或点赞操作。用户也可以在社区中提出自己的问题,在社区中寻求帮助,

3.6.3 预约咨询

4 结论

该应用程序基本实现了设计目标和要求的功能,为学校的心理健康教育提供了一个较好的线上平台,提高了学校心理咨询老师的服务效果。帮助学生用户提供了一个学习知识和需求心理上问题帮助的平台,让大学生在校园锻造一个健康的心灵世界。

参考文献:

[1] 陈浒. 基于Android的文件管理系统的设计与实现[D]. 厦门: 厦门大学, 2017.

[2] 简单心理学术研究团队. 心理咨询行业2016调查报告[R]. 简单心理和北京大学心理咨询与治疗中心, 2016: 4-5.

[3] 刘曦. 基于Android的社区生活服务系统的设计与实现[D]. 沈阳: 东北大学, 2014.

[4] 明日科技. Android 从入门到精通(2012 年版)[M]. 北京: 清华大学出版社, 2012: 4-10.

猜你喜欢
数据分析移动互联网
浅析大数据时代对企业营销模式的影响
大数据环境下基于移动客户端的传统媒体转型思路
基于移动互联网的心理健康教育初探