技术规格说明书

2.整体架构

2.1物理设计框架

2.2程序设计框架

2.3对外交互

MoocApp采用http方式与北航学堂服务器端进行交互,获取到的json数据通过统一的接口进行解析


3.软件与第三方支持

类型 软件和第三方支持
开发工具 android studio
android版本 android SDK 5.1(API22)
android最低支持版本 android SDK 4.0(API5)
Database SQLite
代码托管平台 github
项目任务管理 github milestone、issue
bug管理 github issue
服务器接口 北航学堂

github项目链接


4.详细设计

4.1UI设计

4.2服务器API文档(北航学堂开发团队提供)

出于安全性考虑,服务器的API文档隐藏了服务器地址、参数和返回值

API地址 类型 说明
server_addr/init GET 初始化连接获得token和服务器参数
server_addr/login POST 登录,获取登录时服务器返回的状态
server_addr/courses GET 获取课程列表
server_addr/course_about POST 获取特定课程的课程信息
server_addr/course_courseware POST 获取特定课程的课程章节列表
server_addr/course_enroll POST 获取用户是否选课的信息
server_addr/get_course_enrollment GET 获取当前登陆用户的选课列表

4.3MoocApp的服务器交互模块设计

方法 参数 返回值 说明
MOOCInit int 初始化连接获得token和服务器参数,0表示连接失败,1表示连接成功
MOOCLogin string username, string password JSONObject 登录,获取登录时服务器返回的状态
MOOCCourse JSONArray 返回全部课程的JSON数组
MOOCCourseAbout string course_id JSONObject 获取课程信息JSON
MOOCCourseware string course_id JSONObject 获取课程章节列表
MOOCCourseEnroll string course_id, int enrool boolean 获取是否选课成功,1表示成功,0表示失败
MOOCGetCourseEnrollment JSONObject 获取已选课程的JSON

4.4MoocApp的数据库设计

表名 video_watched
字段 id user video_url
类型 bigint string string
是否为主键 1 0 0
默认值 null null null

4.5MoocApp主界面设计(MoocMainActivity)

主界面中的三个tab页采用ViewPager实现,每个ViewPager中为一个课程列表的Fragment,点击课程列表中的某个课程会通过Intent跳转到课程详细信息的Activity

4.6MoocApp课程详细信息界面设计(CourseDetailActivity)

课程详细信息中的两个tab页(讨论区暂不实现)依然采用ViewPager实现。

其中,课程介绍的view中包含一个WebView,用于展示从服务器获取到的课程介绍;视频目录采用了三级列表的形式(与UI设计略有差别,考虑到MOOC的数据格式进行了修改)。

打开某个视频后会全屏播放该视频,视频播放器参考了网上的一个基于VideoView的自定义视频播放器,支持用手势进行调整亮度、音量,以及对播放进度的控制。

4.7MoocApp账户设置界面设计(UserInformationActivity)

该界面较为简单,使用了几个平铺的Fragment作为选项,点击某个选项后会进入相应的Activity

4.8备注

其他的Activity均比较简单,这里不再一一列举。

由于MoocApp暂时未将UI模块与业务逻辑模块分开,一些逻辑无法有条理的陈述出来,我们打算在beta版本中对程序逻辑进行重构,按照经典的UI层、业务逻辑层、数据层的形式进行整合,届时会更新本设计文档。

posted @ 2015-11-03 02:28  歪果仁带你灰  阅读(1013)  评论(2编辑  收藏  举报