Android课程表架构简要分析

之前一直是课程格子的忠实粉丝,非常喜欢它提供的课表功能,所以趁着毕业有时间学习了Android,历时一个月写出了一个功能较全面的课表APP,名字暂时叫Miao课表,先上效果图吧。

Android课程表架构简要分析


实现思路

整体功能结合了现应用市场上大部分课表软件的优势,是一款专注于课表功能完善的App,由于是个人开发,没有什么资金支持,所以利用本地电脑自行搭建了一个服务器供课表信息的储存与运用,整体架构如下:

Android课程表架构简要分析

架构就是如此,但是由于涉及两个端系统,其实实现起来还是蛮繁琐的。

客户端架构

Android应用开发中鼓励弱耦合和组件的重用,逻辑与视图的分离是Android程序设计的基本原则。因此,本应用客户端采用传统的MVC(model-view-controller,模型-视图-控制器)框架模式,解耦隔离界面显示与业务逻辑和数据,实现了代码的高内聚低耦合。

1、视图层主要负责数据展示并提供与用户进行交互的界面,提供用户输入的接收与结果的显示。Android中为了减少耦合度,将逻辑与视图相分离,因此一种通用的做法是在xml布局文件中编写界面视图,再通过Activity引入。

2、控制层主要负责处理与用户交互的控制逻辑以及模型层的处理事件。本应用中,控制层主要由Activity来实现,其中主要监听视图层,根据用户请求响应触发事件并控制用户界面数据显示,同时将状态改变告知模型层。

3、模型层是应用的主体部分,负责处理应用的业务逻辑,如:和数据库的交互、数据处理、网络操作及部分耗时任务等。

服务器端架构

服务器端主要承担了用户数据处理以及存储的功能,包含了网络模块与数据库模块。为了更好的专注于逻辑处理功能,本项目服务器端采用了Struts2的架构进行设计,并将所有用户数据存储在服务器端的Mysql数据库中。

本应用的数据都将存储在服务器端的Mysql数据库中,并同时在本地客户端进行缓存备份,利于离线加载。


实现方式

客户端实现方案

服务器端实现方案

注:客户端demo:Github

总结

呼,期待已久的博客终于有时间更新了//o( ̄▽ ̄)ブ开心开心

博客记录了从一个小白入门的经历。学习Android开发时遇到了很多困难,借鉴了很多CSDN上大牛的blog,也下个决心,希望自己以后成为这样优秀的coder,写出更优秀的demo~

anyway,大家有什么不懂的尽管评论私信我都好,互相学习fighting~