基于Android平台的社团服务应用研究与实现

2017-08-07 09:24刘会会
周口师范学院学报 2017年2期
关键词:组件社团框架

王 宁,高 光,刘会会

(1.周口师范学院计算机科学与技术学院,河南周口466001;2.周口师范学院网络工程学院,河南周口466001)

基于Android平台的社团服务应用研究与实现

王 宁1,高 光2,刘会会1

(1.周口师范学院计算机科学与技术学院,河南周口466001;2.周口师范学院网络工程学院,河南周口466001)

在移动互联网浪潮下,Android智能手机已经成为高校师生的日常通讯工具.基于Android平台的高校社团服务应用不但可增强学生的参与度与互动性,提高社团管理的效率,而且可为管理层的决策提供数据支持.为此,提出了一种通用原生Android应用开发框架模型,并在此基础上完成了高校社团服务应用主要功能模块的设计与实现.测试结果表明,该应用运行效果良好,整体上具有较好的性能和内存优化功能.

Android;移动互联网;社团服务;应用开发

随着基于Android平台的智能移动设备的普及,人们的日常生活正在发生全方位的变化.特别由于其强大的网络通信与接入功能、灵活的可升级能力以及便捷的可操作性,相应的应用领域也越来越宽广,尤其在高校中,使用比例日益增高.社团是高校校园文化的重要载体,是高校第二课堂的重要组成部分,师生的参与度非常高.研究并实现基于Android平台的社团应用,有助于学生了解社团文化、参加社团活动、管理社团信息,也便于管理员进行社团活动的统一管理,提高社团办事效率.此外,其所具备的数据统计、数据挖掘、数据分析等功能也对管理层的决策分析有一定的辅助作用.

1 Android应用基础解析

1.1 Android系统架构

笔者阐述的应用开发建立在Android系统平台之上,Android系统包括了Linux内核层、系统运行库层、应用程序框架层和应用程序层,其中Linux内核层是硬件与软件之间的抽象层,主要用于驱动管理、内存管理、进程管理、网络管理等;系统运行库层包括类库和Android运行时组件两个部分;应用程序框架层专门为应用程序开发而设计,允许开发人员访问核心应用程序所使用的API框架;应用程序层是Android系统自带的一系列使用Java语言编写的核心应用程序[1].Android系统架构如图1所示.

图1 Android系统架构图

1.2 相关工作

由上述分析得出Android应用开发是建立在应用程序框架层的基础之上,开发者通过应用开发框架提供的组件进行上层应用开发并与底层进行功能交互.以下介绍在此框架上设计实现的几个重要基础类.

1.2.1 BaseActivity

BaseActivity类是对基础组件Activity类的封装,它本质上继承自Activity类,具备基本的监听并处理用户交互事件、对UI界面的管理等功能,进一步扩展了Activity类的功能,加入了事件总线、侦听触发等机制,通过派生个性化的BaseActivity子类可以实现不同功能需求,多个BaseActivity子类之间通过堆栈结构进行管理,充分体现了面向对象的设计原则[2].

1.2.2 MyApplication

MyApplication类是对基础组件Application类的封装,MyApplication类采用单例模式提供了一个全局唯一的应用类实例,开发者可以在其中重载多个重要的系统函数(如OnCreate(),onTerminate()等)来实现自身程序的特殊需求,并且可以将全局变量定义在该类内部以便在应用程序中调用.

1.2.3 NetManager

NetManager类是自定义的网络管理类,通过该类可对基础组件NetHandler进行统一管理,网络消息是以独立线程的方式进行处理,根据与服务器端协商定义的网络协议派生出不同的NetH-andler子类,在NetManager类中对这些子类进行同一管理并完成与主线程之间的异步通信,简化了原始组件中数据处理的复杂性,降低了系统耦合度.

1.2.4 EventManager

EventManager类是自定义的事件管理类,在应用程序开发框架中各个模块之间的通信是高频事件,Android系统原始的通信机制较为复杂且耦合度较高,用户自定义数据更不易处理.通过EventManager类提供的事件传递接口,开发者可自定义任意数据类型的事件用以不同应用模块之间的通信,也适用于多线程间的数据通信.

1.2.5 DataManager

DataManager类是自定义的数据管理类,负责对抽象的数据实体类进行统一的管理和缓存操作,将对外接口封装为统一函数方便调用,提高了数据存取速度和管理效率.

1.2.6 Utils

Utils类是自定义的工具类,采用单例模式实现,将系统中的常用功能(如字符串解析、时间日期转换、正则匹配等)封装为全局的静态函数以便在应用模块中调用完成辅助功能[3].

2 通用Android应用开发框架

2.1 开发环境

相对于传统的Eclipse开发环境,Android-Studio开发环境具有以下优点:

1.AndroidStudio属于Google为Android量身定做的IDE,未来还将不断优化完善.

2.最新版本的AndroidStudio响应速度更快,运行更为稳定.

3.强大的UI编辑器,摆脱了在Eclipse环境下进行UI编辑的局限性,具有所见即所得的功能.

4.智能提示和补全等功能可极大地提高开发效率.

5.整合了Gradle构建工具,可更有效地对程序进行配置、编译与打包.

6.更完善的插件系统和版本控制系统.

2.2 基础模块封装

对于上层应用开发者来说,虽然Android系统的应用程序框架层提供了多种开发组件,但是如果要快速开发一个具有良好扩展性与可维护性的应用项目,仍然需要对许多复杂的功能进行二次封装,否则将不能专注于应用框架设计的本身[4].

在笔者阐述的通用开发框架中,基础模块与关键功能性模块被封装为类库,对外统一提供开放性接口,进而可方便开发者在此基础上做二次应用开发.这些模块主要包括以下几类:

1.注解模块:提供了UI组件与Activity之间的交互通道(包括UI组件注册和UI事件响应等).

2.网络模块:提供精简而统一的网络通信接口(包括回调处理方式)以减少网络通信开发的工作量.

3.图片加载模块:提供统一的图片缓存及加载接口,以方便本地与远程图片的加载管理.

4.数据库模块:提供对本地数据库的统一处理接口以减少繁琐的原始操作编程.

2.3 MVC框架

对于应用开发框架而言,良好的可扩展性和低耦合度是开发高质量应用的根基.在笔者阐述的应用开发架构中,MVC是业务逻辑、数据缓存以及视图界面之间交互的桥梁,其结构如图2所示.

图2 通用框架MVC结构图

下面着重介绍其中三个模型的作用与设计原理.

1.Controller控制器:在数据层与视图层之间通过事件通知机制进行交互,具有桥梁作用.其本身建立在Android基础组件Activity之上,主要处理关键的业务逻辑和交互功能.

2.Model数据模型:主要通过Entity类做数据模型抽象,Dal作为数据接口层的作用是进行数据缓存以及对外提供统一的数据访问接口.

3.View视图层:在基础模块封装中通过注解方式与Activity组件进行交互,包括视图元素访问和视图交互事件响应.

此外,为了提高框架的整体功能与可扩展性,在上述三大模块基础上设计以下辅助模块:Net-Manager(网络管理器,用于统一管理网络通信协议类库);Utils(工具类库,用于实现字符串匹配解析、文件处理、字体管理等功能);Controls(控件类库,用于通用可移植View控件管理);EventManager(事件管理器,用于事件驱动交互管理).

整体上,通用Android应用开发框架具有系统耦合度较低、系统扩展性较好、可移植性强且易于维护的优点,特别适于具有一定规模的多人协作项目的开发[5].

3 社团应用设计与实现

3.1 数据流抽象

对数据流的统一抽象能保证前后端开发的一致性,而提高开发效率,则应做到数据库、服务器数据模型、通信协议数据模型以及客户端数据模型统一化,以便于进行网络数据转换和对象关系映射[6].根据对社团活动的需求分析与数据抽象化处理的面向对象设计思想,其抽象数据类如图3所示.

3.2 通信协议

根据需求分析,社团移动应用中不存在实时性极高的通信需求,因而宜选择基于http协议的短链接通信方式[7].在处理通信协议的编程方式中,则应采用面向对象思想,将每个独立的通信协议处理器抽象为NetHandler子类对象,由网络管理器NetManager统一管理,并与业务逻辑主线程之间通过事件消息机制进行数据交互.相应的网络通信协议类如图4所示.

3.3 业务逻辑

业务逻辑模块是社团应用的功能主体部分,主要包括首页、社团主体、活动主体、公告、个人和管理员等模块,其中每个模块又包括若干子模块,具体列举分析如下.

1.首页模块主要负责用户的初始引导功能,包括以下几个子模块:

(1)滚动欢迎视图逻辑:用户首次打开应用时在客户端调用优化用户体验.

(2)用户注册逻辑:用户首次使用应用时需注册个人信息到服务器端.

(3)用户登录逻辑:用户进入应用时需提交个人信息到服务器端验证身份登录.

图3 抽象数据类图

图4 网络通信协议类图

2.社团主体模块用于实现社团各项主要功能,包括以下几个子模块:

(1)社团主页逻辑:所有创建成功的社团信息以列表形式显示,并以置顶方式显示推广中的热门社团,界面如图5所示.

(2)社团详情逻辑:点击指定的社团信息可进入社团详情(包括社团Logo、社团标签、社团成员信息、社团相册、社团简介和社团公告等).

(3)社团管理逻辑:社长可以进行社团基本信息的修改、图片的上传或删除、社团成员信息的查看、加入或退出社团请求的审批、社团公告的发布等操作.

(4)社团应用逻辑:社员可以查看社团基本信息与社团成员信息,并发送退出社团请求;普通用户仅具有查看社团基本信息与发送加入社团请求的权限.

3.活动主体模块用于实现活动各项主要功能,包括以下几个子模块:

(1)活动主页逻辑:所有社团相关的活动信息以列表形式显示,并以置顶方式显示推广中的热门活动.

(2)活动详情逻辑:点击指定的活动信息可进入活动详情(包括活动Logo、活动标签、活动成员信息、活动相册、活动宣传公告等).

(3)活动管理逻辑:活动所属社团的管理员可以进行活动信息的发布、活动基本信息的修改、活动图片的发布、活动成员信息的查看、加入或退出活动请求的审批、社团公告的发布等操作.

(4)活动应用逻辑:用户可以查看活动基本信息与成员信息,并可发送加入或退出活动请求.

(5)公告模块:实现服务器公告功能,由社联管理员统一编辑发布,将重要信息通知到所有用户.

(6)个人信息模块:实现用户个人资料管理功能,用户可编辑个人信息并保存到服务器端,界面如图6所示.

(7)管理员模块:提供给社团联合会的后台管理员使用的功能.在该模块中管理员可以审批所有的创建社团申请,开展社团活动申请,审核成员信息,维护社团数据.

图5 社团主界面图

图6 用户信息界面图

3.4 数据统计与分析

社团成员包括绝大部分高校师生,服务器端数据存储量较大,在处理数据的过程中应采用多节点数据存储方式将不同类型数据分类存储[8];此外,在中间层应通过ORM模型与Cache层作为桥接模块,同时采用分布式服务器方式将逻辑服务器与数据分析服务器分离[9].数据统计及分析模块有以下功能.

1.数据统计:统计当前所有用户、社团、活动的基本数据信息;统计每一个社团的访问率与社团服务的利用率;统计社团活动举办频率与社团活动参与度;统计用户加入或退出社团活动的信息等.

2.数据分析:根据数据统计结果,通过管理层数据分析需求模型,实时分析社团热度、活动效果、用户活跃度、用户喜好、营销推广效果等项,并通过量化做出衡量指标.

3.数据决策:根据数据分析结果,为管理层决策做辅助智能支撑,决策人员可以在此基础上进行二次分析以做出最优决策.

4 测试及结论

根据软件工程测试流程对开发完成的应用系统进行测试,具体测试流程如下.

1.功能模块测试:根据逻辑划分编写测试用例,按照用户使用流程着重针对网络数据传输速度、资源文件异步加载、UI组件刷新过程、功能逻辑正确性、并发压力等部分进行黑盒和白盒测试[].

2.Android性能测试:使用第三方Android测试工具对社团应用进行性能测试,内存测试和CPU测试结果如图7和图8所示.

图7 内存测试结果图

图8 CPU测试结果图

测试结果表明,该应用运行稳定,通信响应及时,并能正确完成逻辑功能,具有较好的性能和内存优化效果,达到上线发布标准.

5 结束语

笔者提出了一种基于Android平台的通用应用开发框架,阐述了相关应用开发的基本设计思想和技术手段;并在此基础上设计并实现了具有功能完善、性能优良的校园社团管理应用.整体上,该框架具有较好的应用性、稳定性和扩展性,适合基于Android平台的中小型项目研发,具有较好的应用前景.

[1]彭凤凌,王洪辉.Android手机与内网PC通信系统的设计与现实[J].计算机工程与设计,2013,34(7):2333-2337.

[2]杨炳保.基于Android的移动云计算技术的研究[J].计算机技术与发展,2013,23(8):52-54.

[3]张长青,晏西国,卜庆凯.基于移动互联网的APP与服务器之间的通信设计[J].青岛大学学报,2015,30(2):5.

[4]蔡菁.基于Android平台的数据同步技术的研究与实现[D].重庆:重庆邮电大学,2011.

[5]王哲敏.移动互联网背景手机服务型APP产品设计分析[J].工业设计,2015(08):65.

[6]李琛.移动互联网时代购物APP交互界面设计研究[D].开封:河南大学,2014.

[7]杜吉志,徐明昆.Android系统内存管理研究及优化[J].软件,2012,24(5):69-80.

[8]马越.Android的架构与应用[D].北京:中国地质大学,2008:330-357.

[9]姚昱旻,刘卫国.Android的架构与应用开发研究[J].计算机系统应用,2008,77(11):99-111.

[10]高巍.Android操作系统软件自动化测试方案的设计与实施[D].北京:北京邮电大学,2012:440-479.

TP311.1

A

1671-9476(2017)02-0127-04

10.13450/j.cnkij.zknu.2017.02.032

2016-11-01;

2016-12-12

周口师范学院青年基金重点项目(No.zknuB3201601);周口师范学院青年基金重点项目(No.zknuB315204)

王宁(1982-),男,河南周口人,助教,硕士,研究方向为移动计算、图形学与可视化计算.

猜你喜欢
组件社团框架
缤纷社团
无人机智能巡检在光伏电站组件诊断中的应用
有机框架材料的后合成交换
框架
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
最棒的健美操社团
桥梁组件搭配分析
缤纷社团,绽放精彩
关于原点对称的不规则Gabor框架的构造