论文部分内容阅读
伴随着经济的快速发展,Android智能手机的用户数量逐年增加,Android系统在智能手机领域的市场占有率已超过80%。作为课堂、网课、家教等教育方式的辅助,基于Android的在线教学和学习平台更加普遍。针对传统教育方式及现有在线教学和学习平台的不足,本文基于Android平台开发一款在线问答和在线上课的APP。该APP包含学生和教师两个客户端,主要功能为学生端进行提问,教师端进行抢单和答题;教师端制定课程,学生端预约并在线听课。APP前端使用XML与Activity编写界面,并使用相对式布局替代嵌套布局以降低界面的过度绘制;APP后台使用本文所改进的MVVM(Model-View-ViewModel)架构,使用更灵活的LiveData代替以前在XML中定义DataBinding的方式,并整合RxJava与Retrofit作为网络请求方式,充分利用Java面向对象的优势减少组件间的耦合,并且使得网络请求的使用更加方便;服务器端使用Tomcat和Spring作为服务器平台,使用MongoDB作为数据库。Spring可使原生Servlet类对应为方法,从而使项目结构更加清晰。另外,在MVVM框架中加入WebSocket全双工通信作为两个客户端之间的交流方式,使用基于用户的协同过滤推荐系统帮助学生端进行教师的选择。本文主要的创新点在于架构的探索和研究。基于谷歌于2018年在I/O大会上发布的新组件,本文提出了基于MVVM的Android端框架并且用于本项目的开发,该框架封装了Retrofit及RxJava作为网络请求流程,并使用注解、反射和动态代理将WebSocket相关功能并入Retrofit的流程中,同时抽象出BaseActivity、BaseViewModel、BaseModel作为逻辑流程的基类,从而使得开发者在实际开发中只需要关注实现类的各自功能即可,逻辑流程只需实现对应的接口即可。本项目用以辅导学生完成家庭作业,问答和约课两个功能实现了学生的两方面需求,扩展了教师和学生间的联系,具有一定的实用性。在开发方面本文提出并实现的架构也能在一定程度上优化网络请求和回调流程并可以减少冗余代码。