基于安卓平台的高校运维系统设计与实现

2017-04-15 00:03陈功锁温佐承彭志强
电脑知识与技术 2016年34期
关键词:安卓

陈功锁+温佐承+彭志强

摘要:随着移动互联网的快速发展,越来越多的系统开始支持移动设备访问,而传统高校运维系统只是单一网站,严重缺乏对移动设备的支持。通过对高校运维系统的需求分析,提出一种基于安卓平台的高校运维系统,并基于MVP架构实现。经相关功能测试和性能测试证明该系统能够稳定运行且能承受较大的压力。

关键词:高校运维系统;安卓;MVP;Retrofit;RxJava

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)34-0078-03

Abstract: With the rapid development of mobile network, more and more systems have been supporting mobile devices. But the traditional operation and maintenance system only have web site without considering mobiles access. Analysis on operation and maintenance system, a system based on Android platform is provided. And the system is implemented on MVP architecture. After functional and performance tests, the system is proved to be correct and stable.

Key words:operation and maintenance system; android; MVP; Retrofit; RxJava

隨着移动互联网的快速发展,移动设备操作的便捷性,越来越多的系统开始支持移动设备的访问。而传统高校运维系统只是单一网站,操作十分不便,因此设计并实现基于安卓平台的高校运维系统是十分必要的。

通过对四川旅游学院网络中心运维需求的分析,设计并实现一种基于安卓平台的高校运维系统。师生可以通过安卓手机就可以完成工单提交,查看当前工单处理进度等功能,进一步方便用户操作,提高师生满意度。

1 系统需求分析

需求分析是软件开发生命周期的开始,其耗费时间较多,一般占据整个生命周期中一半以上的时间。但其作用也十分关键,直接决定软件产品的成功与否。

1.1 需求概述

越来越多的系统开始支持移动设备的访问,高校运维系统也不例外。通过对四川旅游学院运维系统对移动设备支持的需求分析,得出主要的功能模块有:知识库搜索模块、工单管理模块、个人中心模块、消息管理模块以及登录注册模块。

1.2 详细功能需求

针对上述需求综述,提出以下各模块具体的需求:

1.2.1 登录注册模块

新用户可以通过系统注册,注册成功后,使用账号和密码完成登录。

1.2.2 个人中心模块

主要需求是:

1)用户可以修改个人资料,包括昵称、性别、手机号、头像等信息;

2)查看当前工单的处理进度;

3)查看新建、完成等其他各种状态的工单;

4)查看系统发送的消息。

1.2.3 知识库模块

所有已经成功解决的工单将进入系统知识库,以便于用户搜索。在用户遇到新的问题的时候,首先使用系统提供的搜索功能,如提供的答案能够帮助用户解决问题,则无需生成新的工单。知识库模块能够在很大的程度上提高网络中心的解决效率,避免重复劳动。

1.2.4 工单管理模块

当用户在日常学习生活中,遇到网络或计算机等方面的问题,可以直接使用运维APP完成对问题的拍照,再加以文字描述,提交至学校网络中心。中心随后便派遣维修人员,解决用户提交的问题。

1.2.5 消息管理模块

系统能够将当前工单的处理进度、最新通知公告以站内信的方式通知用户及时关注,避免用户错过重要信息。

2 系统设计

在完成系统需求分析后,接下来非常关键的就是系统设计。良好的系统设计是系统实现的开端,同时也为今后系统维护提供便利。

2.1 系统架构设计

传统的安卓开发,将所有的代码都统一写在Activity中,这种开发方式对于小的系统来说,不会产生太大的影响。但是一旦系统成长到一定的规模,那么这种方式将会是噩梦般的存在。究其原因在于,业务逻辑代码、界面代码、数据处理代码等混合在一起,为后续的系统维护带来很大的麻烦。针对该问题,很多公司提出了MVC、MVP、MVVM等多种架构。因MVP架构自身的成熟、稳定,因此本系统采用基于MVP的架构来实现。

View层一般为Activity或Fragment,主要负责界面的显示,所有关于界面的操作全部在该层实现,如提示用户密码输入错误等信息。

Presenter层负责所有和用户交互的事件,进行复杂业务逻辑的处理

Model层完成数据的存取,采用三级缓存机制,来完成数据的存取。先从内存缓存查找数据,如未找到再从sqlite本地数据库查找数据,如还未找到则通过网络请求从远程服务器获取数据。

2.2 系统功能模块设计

系统主要的功能模块如图2所示:

3 系统核心功能实现

在完成系统设计后,接下来就需要在需求分析和设计的基础上,进行代码的实现。

3.1 系统开发环境

3.2 关键技术

Retrofit提供了HTTP GET、POST等多种方法来获取API接口数据,由于是Rest风格的接口,因此可读性非常强。只需要定义接口,就可以返回相关数据,如下:

Retrofit retrofit = new Retrofit.Builder()

.baseUrl("https://api.github.com/")

.build();

GitHubService service = retrofit.create(GitHubService.class);

另外Retrofit网络请求的执行还提供了同步和异步两种方式,为应对不同的场景,提供了很大的灵活性。

3.2.2 RxJava介绍

RxJava是一款实现异步操作的框架,通过一种简单的方式,为复杂的异步操作带来便利。当业务逻辑较为复杂时,传统的异步操作由于嵌套层次较深,代码可读性较差,给后续的维护带来非常大的问题。

RxJava通过提供Observable、Observer以及强大的操作符等功能,最大程度上简化异步编程。以下是一个简单的示例:

Observable.from(folders)

.flatMap((Func1) (folder) -> { Observable.from(file.listFiles()) })

.filter((Func1) (file) -> { file.getName().endsWith(".png") })

.map((Func1) (file) -> { getBitmapFromFile(file) })

.subscribeOn(Schedulers.io())

.observeOn(AndroidSchedulers.mainThread())

.subscribe((Action1) (bitmap) -> { imageCollectorView.addImage(bitmap) });

3.2.3 Glide介紹

Glide是谷歌员工推出的一款开源的图片加载框架,在Goole I/O上被推荐使用。它的特点是配置简单、支持多种图片格式、高效缓存机制等。以下是官方提供的一个使用示例:

// For a simple view:

@Override public void onCreate(Bundle savedInstanceState) {

ImageView imageView = (ImageView) findViewById(R.id.my_image_view);

Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);

}

3.3 部分界面设计与实现

在完成系统设计后,接下来主要的工作就是实现所有的功能。

3.3.1 用户登录

当用户第一次访问本系统的时候,会通过下方图片所显示的页面完成用户的注册,在此用户需要设置用户名和密码,然后提交注册信息,界面如图:

3.3.2 主页

登录成功后,即进入系统首页。首页对用户电脑可能存在的问题进行了分类,分别是:网络异常、系统异常、电脑卡慢、充电异常、硬件故障、软件异常、其他问题,也可以通过搜索,查找电脑故障的处理方案,界面如图:

3.3.3 个人中心

点击底部导航栏“个人中心”,进入用户个人中心页面,即可查看用户的相关信息,用户的保修情况、接收到的消息、用户个人信息,界面如图:

3.3.4 提交工单

如果用户在使用搜索功能后仍然不能解决自己遇到的问题,就可以选择使用提交报修的功能,将自己遇到的问题以文字或者图片的形式描述说明,然后上传,系统会将成功上传的工单分配给相应的专业人员,他们会及时帮助您解决问题。

用户进入“主页”页面,点击左下角“上门服务”,进入提交报修工单的页面,填写用户自己遇到的问题的具体情况,点击右上角“上传”即可提交报修工单,界面如图:

3.3.5 评价工单

用户进入“个人中心”页面,点击页面“待评价”文字,进入“我的评价”,在评价中可以对服务的总体评价、服务质量和解决问题的速度进行星级评价,还可以提交文字对运维人员进行详细的评价,用户的评价是对运维人员最好的支持,界面如图:

4 系统测试

系统开发完成后,需要经过完备的测试才能上线运行。另外如果代码经过重构后,也需要进行回归测试,确保新的修改不会影响其他功能。

4.1 功能测试

根据系统功能需求,对所有功能模块进行完备测试,经测试,所有模块功能正确,无明显错误。

4.2 性能测试

使用monkey等工具,模拟用户的大规模点击,来测试系统能够承受的压力。进一步分析系统的性能瓶颈,为下一步的优化做准备。

5 结束语

通过对高校运维系统的分析,基于安卓MVP架构实现需求中定义的所有功能,经相关功能测试和性能测试,证明系统是正确的、稳定的。因工单处理流程较为复杂,下一步将重点优化流程处理,提出一种更加灵活的流程处理模块。不同高校的运维需求差异很大,因此很难设计一套通用的基于安卓的系统。但是本文提出的一种设计和实现方法,可作为今后高校运维系统设计和实现提供重要参考。

参考文献:

[1] 刘延杰. 基于JavaEE的科研管理系统设计与实现[D]. 成都: 电子科技大学, 2015.

[2] 金天昕. 浅析高校IT运维系统的建设[J]. 电脑知识与技术, 2015, 11(28).

[3] 成健, 张重阳. 基于安卓平台的限速交通标志的检测和识别[J]. 微型电脑应用, 2016, 32(4).

[4] 吴丽淳, 樊爽. 基于安卓平台的手机定位软件开发[J]. 计算机与现代化, 2014(9).

[5] 丁桦, 余金花. 基于安卓平台的手部护理按摩仪系统研发[J]. 电脑知识与技术, 2015, 11(18).

[6] 徐怀志, 赵航. 基于安卓平台的电磁频谱监测应用程序的开发[J]. 设计与研发, 2016(13).

[7] 宋晓莹, 王浩君, 廖振松. 一种基于Android 平台的远程智能处理系统[J]. 信息通信, 2014(8).

猜你喜欢
安卓
MIPS安卓平台上ARM二进制翻译系统
让iPhone变安卓,这是真的野
文物表情包
基于安卓手机用户行为的人口学信息预测
安卓系统或成智能汽车标配
一种基于安卓系统的手机侧抓包分析方法
学习安卓应用开发
功能不输iOS8!全新安卓Messenger发布
安卓L未至安卓M来了!安卓首泄漏M系统