2。2。2 Intent
本系统中的Activity中都用到了Intent组件,传递序列化对象数据。
Intent一般可被用于使用安卓四大组件的场景时,在传送数据时才会被激活的组件就是Intent。Intent作为安卓组件之间信息传递的沟通桥梁,一方面在各大组间传递各种数据类型的参数,另一方面起到了组件间的解耦作用[9]。
2。2。2 HttpClient
本系统中与后台服务接口的交互都使用了HttpClient进行HTTP通信传递接受服务数据及文件资源。
HTTP(Hypertext Transfer Protocol)超文本传输协议位于TCP/IP协议树的应用层,也是智能手机上使用的最多的通信协议之一。安卓中提供3种HTTP通讯接口:标准的Java接口(java。net)、Apache接口(org。apache。http)、安卓网络接口(android。net。http)。其中Apache接口提供了更加丰富的工具包,例如HttpGet、HttpPost、HttpResponse。HttpClient作为该接口的实现,其实现了所有HTTP的方法(GET、POST、PUT、DELETE等),其同时支持自动转向和HTTPS协议[10]。
2。3 JavaEE端关键技术
2。3。1 Spring
本系统选用Spring作为教师后台管理服务模块和后台接口服务模块的容器框架,将其他的MVC框架、持久层框架以及对象实体集中管理,进一步提高了编程效率以及系统的稳定性。
Spring是JavaEE应用程序框架,是轻量级的IOC和AOP的容器框架。其可以和SpringMVC、Mybatis、Shiro等框架组合使用。
Spring具有两大最重要的特性:控制反转和面向切面编程。
(1)控制反转:Spring使用控制反转技术促进了低耦合,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建依赖对象[11]。
(2)面向切面:Spring提供了面向切面的丰富支持,允许通过分离应用程序的业务逻辑,例如对事务管理进行高内聚的开发[11]。应用对象只须完成业务逻辑,并不负责其它关注点,例如日志或事务[12]。
2。3。2 SpringMVC
本系统选用SpringMVC作为教师后台管理服务模块和后台接口服务模块的前端控制器,负责将Web端和安卓端的HTTP请求做逻辑分配及逻辑处理,方便了接口处理。
SpringMVC是一种请求驱动型轻量级框架,对请求进行职责解耦[13]。SpringMVC支持国际化和文件上传,提供了非常灵活的数据转换、数据格式化和数据校验以及统一的异常处理机制[14]。同时对于现在流行的Restful风格的接口编写支持很友好,极大地提高了开发效率。
2。3。3 Hibernate
本系统选用Hibernate作为教师后台管理服务模块和后台接口服务模块的数据持久层框架,负责和数据库交互,进行数据的增删查改操作。由于其拥有对象关系映射的特点,使得SQL语句书写量大大减少,大幅度提高了开发效率。
Hibernate是一个开源的对象关系映射框架,在JDBC的基础上进行了对象封装,使程序员可以便捷地用面向对象的编程思想操作数据库[15]。
2。3。4 Maven
Maven是一个项目管理的综合工具,其提供给了开发人员构建一个完整生命周期的框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置[16]。
本系统除了使用Maven的项目结构搭建的功能之外,还使用了其强大的自动包依赖管理机制来管理开发包之间的依赖关系,减少了包依赖关系而导致的包缺失及版本引用错误的问题。