APP下载

基于Android平台的留学生应用系统的设计与实现*

2018-05-22吴国娟何明昌吴汉魏廖海玲

计算机时代 2018年5期
关键词:高德开放平台后台

吴国娟,何明昌,王 鹏,吴汉魏,廖海玲

(温州大学数电学院,浙江 温州 325035)

0 引言

教育部网站上数据显示,2016年在华留学生生源国家和地区总数已达205个[1],随着我国经济的快速发展与综合实力的不断提升,越来越多的海外学子到我国留学。据统计,2017年来华留学人数已达150多万人,且每年呈大幅增长趋势,据英国教育机构预测,到2027年中国将超过美国将会成为世界上第一大海外留学目的国家[2]。语言是用来进行文化诊释与交流的最重要的工具。留学生在中国学习的过程中面临的最大的问题是语言沟通和异域文化风俗问题。在中国文化输出过程中,对外汉语教学是关键性的第一步[3-4]。

留学生迫切需要一款专门为他们在中国学习及生活的手机软件APP。而目前市场上只有一些翻译软件供留学生使用,而这些翻译软件只能满足最基本的语言需要,对来华留学生来说,他们希望有一款集翻译、学习及生活帮助的手机软件。针对在华留学生这些需求,研发了一款在华留学生学习生活助手软件。通过这款手机APP,帮助来华留学生解决学习、生活上碰到的许多问题。该平台作为社区交流平台,能增加中外学生之间接触的机会,拉近中外学生之间的关系,丰富他们的课余生活。

1 系统需求分析

通过对大量在华留学生学习生活碰到的问题及需求调查,基于整个业务流程,把系统业务分为两大板块:学习和生活。包括用户注册、社区交流、学习、生活助手如快递导航查找、汇率转换、翻译等多种功能。系统架构图如图1所示。分为展示层、业务层、数据层。系统有四个模块:①社区交流模块;②生活应用模块;③文化学习模块;④个人中心模块。

图1 系统架构设计图

2 系统设计

2.1 技术结构

考虑到系统集成以及实现各子系统的管理,以达到信息最大程度的共享,也便于今后系统的扩充及增容,系统预留未来的功能扩展接口。在速度方面,外网前台系统要求能响应4000用户的并发访问,内网后台管理要求能响应2000用户的并发访问。

在安全方面,系统中所选用的各个功能子系统设备都具有开放的通讯接口,后台管理系统搭建在内部局域网中以保安全,同时对一些重要数据进行MD5加密存储,同时系统数据库有一套完善的保护方案。另外设计了一套严格的权限认证机制,保证当用户访问站点时系统的安全性。

2.2 Android前端设计

Android是现在最受欢迎的移动平台操作系统之一,也是用户使用最多的手机操作系统,它最大的特点就是代码开源,因此吸引了包括通信运营商、设备制造商、芯片制造商等各类企业[5]。采用安卓系统开发,APP前端技术采用MVP(Model-View-Presenter)三层体系架构,将整个业务应用划分为:模型(Model)、视图(View)、表示器(Presenter)。MVP模式会解除View与Model的耦合,有效的降低View的复杂性,同时又带来了良好的可扩展性、可测试性,保证系统的整洁性和灵活性[6]。MVP模式可以实现同一份逻辑代码搭配不同的显示界面,它们之间并不依赖与具体,而是依赖于抽象。这使得Presenter可以运用于任何实现了View逻辑接口的UI,使之具有更广泛的适用性,保证了灵活,使系统易于维护、易于测试、松耦合度、复用性高、健壮稳定,系统技术体系结构图如图2所示。

图2 系统技术体系结构图

2.3 后台架构设计

目前流行的服务端技术有Java、PHP、.NET、Python,由于PHP语言开源性好、跨平台性强、运行效率高[7],我们选择PHP作为服务端开发语言。MySQL是一个免费的关系型数据库系统软件,非常适用于Apache+PHP+MySQL组成的网站建构[8],因此后台数据库采用MySQL。为了提高数据库访问性能和后期大数据分析,引入Redis非关系型数据库。为了提高数据读的性能,在云服务器和数据库之间用缓存,并为数据库主从备份、读写分离。为了应对可能面临的并发问题,云服务器要考虑负载均衡。因为项目中可能存在大量的需要上传和下载照片和视频,所以系统选择腾讯的开放云存储服务,同时为了提升各个地区的下载体验,系统引入CDN。客户端通过API Service和服务端交换数据,图片和视频的下载直接通过CDN。

3 系统实现

3.1 分布式服务实现业务

随着业务不断增加,后台系统将由单一应用扩展成为多元应用系统,系统中逐渐聚合大量的应用和服务,各个模块之间有很多功能重复实现,这会给开发、运维、部署带来麻烦,为此,数据库服务器采用分布式结构,以方便实现业务复用,如图3所示。

图3 分布式服务实现业务的复用

3.2 JSON数据交换格式

JSON是一种轻量级的数据交换格式,采用完全独立于语言的文本格式[9],易于编写,也易于机器解析和生成,比XML格式更省流量,这些特性使得JSON成为理想的数据交换语言,所以系统在手机客户端采用JSON数据交换格式。

3.3 用户验证方案

一般的Web网站使用Cookie+Session来保持用户的登录状态,App后台则使用token进行验证[10],流程如图4所示。

按照上面的验证流程App将直接获取token值,这样容易被黑客攻击。为了用户安全,系统将不在网络上传输token,而采用签名校验(使用URL签名)的方式,API请求加上URL签名sign以及用户id,格式如下:

test.com/user/update?uid=2&sign=3f1e736bc4ae-958ae7e8500b45aefdbb&age=22。这样token就不需要附在URL上,App后台签名校验流程如图5所示。

图4 用户验证方案

图5 签名校检流程图

3.4 翻译功能

翻译功能是本系统平台的核心功能之一,系统的学习模块、帮助模块都用到了中英文双向翻译,目前国内外很多公司都开放了翻译平台,供开发者接入,通过比较,系统选择了百度翻译开放平台[11],目前该平台提供两项服务:通用翻译API、定制化翻译API。相关字段及描述如表1所示。

通用翻译API HTTP地址:http://api.fanyi.baidu.com/api/trans/vip/translate。

定制化翻译API地址为:https://fanyi-api.baidu.com/api/trans/vip/translate。

表1 字段及描述

通过POST或GET方法,发送表2对应的字段来得到相应的服务:

表2 对应的字段来得到相应的服务

将apple从英文翻译成中文,请求的参数为:

q=apple from=en to=zh appid=2015063000000001 salt=1435660288,平台分配的密钥为12345678来生成sign。其中拼接字符串为:appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678由此得到字符串 1=2015063000000001apple143566028812345678。计算后得到签名sign(对字符串1做md5加密,计算md5之前,串1必须为UTF-8编码):

sign=md5

(2015063000000001apple143566028812345678)

sign=f89f9594663708c1605f3d736d01d2d4

于是的完整请求为:

http://api.fanyi.baidu.com/api/trans/vip/translate?q=

apple&from=en&to=zh&appid=2015063000000001&salt=

1435660288&sign=f89f9594663708c1605f3d736d01d2d4

对于后台PHP服务器,提供服务的主要算法:

public static String getTranslateURL(String mWord)

{String mUrl=null;

String s1;

String s2;

String s3;

String MD5string;

String salt=String.valueOf(System.currentTimeMillis());

s3=mWord;

try{

MD5 getMD5=new MD5();

s2=URLEncoder.encode(mWord,"utf-8");

s1=ReplaceABC.mReplace(s3,"+","");

MD5string=getMD5.GetMD5Code(StringOfID.

BAIDU_APP_ID+s1+salt+StringOfID.BAIDU_KEY);

mUrl=UrlString.mUrlNOChangeForward+s2+

UrlString.mUrlNOChangeBehind+StringOfID

.BAIDU_APP_ID+"&salt="+salt+"&sign

="+MD5string;

//System.out.println(mUrl);

}catch(UnsupportedEncodingException e){

//TODO Auto-generated catch block

e.printStackTrace();

}

return mUrl;

}

3.5 地图定位及导航功能

为了更好地服务在华留学生,让留学生在校园内能很快找到教室、图书馆、指导教师的位置及相应的服务机构,系统平台提供了地图定位及导航功能,平台采用高德地图开放平台接口。

高德地图开放平台提供2D,3D导航,通过卫星多种地图形式供开发者选择。用高德开放平台提供的API和SDK可以轻松完成地图的构建工作。高德地图开放平台同时还提供强大的地图再开发能力,全面的地图数据支持,通过在线、离线两种使用方式,多种地图交互模式,满足各个场景下对地图的需求[12]。在平台中Android Studio开发步骤略。

在Android系统中地图定位SDK是一套简单的LBS服务定位接口,使用这套定位API可获取定位结果、逆地理编码(地址文字描述)、以及地理围栏功能[13]。主要算法如下:

⑴ 配置好XML布局以及相关权限;

⑵ 声明Service组件:

<service android:name="com.amap.api.location

.APSService"></service>

⑶ 设置高德Key:

<meta-data android:name="com.amap.api.v2.apikey"

android:value="key"> </meta-data>

⑷ 初始化定位:

//声明AMapLocationClient类对象

public AMapLocationClient mLocationClient=null;

//声明定位回调监听器

public AMapLocationListener mLocationListener

=new AMapLocationListener();

//初始化定位

mLocationClient=new AMapLocationClient

(getApplicationContext());

//设置定位回调监听

mLocationClient.setLocationListener(mLocationListener);

⑸ 配置参数并启动定位:

//声明AMapLocationClientOption对象

public AMapLocationClientOption mLocationOption=null;

//初始化AMapLocationClientOption对象

mLocationOption=new AMapLocationClientOption();

Android导航SDK是一款针对在线导航的产品,产品功能涵盖路径规划、模拟导航、GPS定位、自定义导航界面、获取导航播报信息等。该产品的导航路径计算与实时交通信息相结合,力求为用户提供更加合理、准确、人性化的导航服务[14]。实现算法略。

3.6 语音处理

系统中单词学习、短文朗读、智能导航都用到了语音处理功能,平台采用讯飞语音开放平台。作为全球首个开放的智能交互技术服务平台,讯飞致力于为开发者打造一站式智能人机交互解决方案[15]。讯飞开放平台以“云+端”的形式向开发者提供语音合成、语音识别、语音唤醒、语义理解、人脸识别、个性化彩铃、移动应用分析等多项服务。用户可通过互联网、移动互联网,使用任何设备、在任何时间、任何地点都能享受讯飞开放平台提供的“听、说、读、写……”等全方位的人工智能服务。本系统主要接入平台中的语音识别和语音合成功能。其中语音识别主要算法如下:

⑴ 导入相关SDK、添加获取相关权限;

⑵ 初始化SDK:

APPID申请地址:http://www.xfyun.cn

SpeechUtility.createUtility(context,SpeechConstant

.APPID+"=APPID");

⑶ 语音识别主要调用模块:

mAsr.setParameter(SpeechConstant

.CLOUD_GRAMMAR,null);

mAsr.setParameter(SpeechConstant.SUBJECT,null);

mAsr.setParameter(SpeechConstant.ENGINE_TYPE,engineType);

mAsr.startListening(mRecogListener);

⑷ 语音合成主要调用模块:

mTts.setParameter(SpeechConstant.ENGINE_TYPE,engineType);

mTts.setParameter(SpeechConstant.ENGINE_MODE,engineMode);

4 结束语

国外留学生来华求学,除了在校园接受正规系统学习专业知识外,很多学生通过“抱团”方式在中国学习及生活,他们通过小群体相互帮助传授经验来解决日常生活中的一些困难,基于Android平台的留学生系统,通过手机APP通过帮助留学生解决在华学习、生活中碰到的困难,除提供学习资源、生活知识外,更重要的是让他们通过平台来感受中国的文化、习俗,迅速融入中国的学习和生活,这不仅提高了我国的影响力,更重要的体现在一带一路建设中,让我国发挥更大的作用。

参考文献(References):

[1]教育部“.一带一路”沿线国家来华留学生数据增幅明显[EB/OL].http://www.moe.edu.cn/jyb_xwfb/xw_fbh/moe_2069/xwfbh_2017n/xwfb_170301/170301_mtbd/201703/t20170302_297943.html,2017-03-12/2017-03-12

[2]鑫鑫.来华留学人数创新高,中国已成最受欢迎的海外留学国家[EB/OL]..https://baijiahao.baidu.com/s?id=15834021 30664478769&wfr=spider&for=pc,2017-11-07.

[3]周可依,周原,刘钰森.留学生移动辅助汉语学习的需求分析[J].现代教育论丛,2017.5:87-88

[4]蒲瑶,张文涛,彭惠.华留学生的跨文化适应问题调查及建议——以西北工业大学为个案[J].西北工业大学学报(社会科学版),2013.1:112-116

[5]刘彬彬,李永忠,舒俊.Android平台下的病毒原理分析及其防御技术研究[J].电子设计工程,2013.21(4):40-43

[6]李晓杰.基于JAVA EE的毕业设计管理系统的设计研究[J].电脑知识与技术,2013.19:4420-4428

[7]张晋芳.PHP在网站后台建设中的优势[J].电脑开发与应用,2012.25(12):39-40

[8]赵鹤芹.设计动态网站的最佳方案:Apache+PHP+MySQL[J].计算机工程与设计,2007.28(4):933-934

[9]赵鹏,骆德汉,梅领亮.一种基于JSON的Android终端远程获取解析数据的方法[J].微型机与应用,2017.21:57-60

[10]黄娈.校园网统一身份认证系统的研究与实现[J].天津大学学报,2013.55:256-257

[11]黄皓.百度翻译和有道翻译API的封装与利用[J].电脑编程技巧与维护,2014.16:90-93

[12]张恒喜,史争军.基于SQLite的Android数据库编程[J].电脑编程技巧与维护,2011.21:30-31

[13]王雨.高德开放平台发布全新地图SDK[J].计算机与网络,2017.43(9):31-31

[14]曹勇.高德开放平台推出骑行导航SDK[J].计算机与网络,2016.42(23):37-37

[15]赵欢.我听,你说——吉利汽车与科大讯飞战略合作携手打造领先汽车语音应用[J].时代汽车,2015.8:66-66

猜你喜欢

高德开放平台后台
基于在线开放平台的混合式课堂教学模式构建与实践
江苏高德液压机械有限公司
江苏高德液压机械有限公司
基于AliGenie语音开放平台的传统家居智联网解决方案
后台暗恋
搭建开放平台 收获真情实感——谈《品德与生活》教学中开放式教学的实施
前台、后台精彩花絮停不了
云计算开放平台的知识产权问题研究
以“后台”的名义节省电池用量
高德贸易有限公司