• 技术规格说明书



    1.引言

    1.1目标

    本说明书主要用来说明”北航学堂android客户端1.0版“的软件内部设计规范

    1.2术语

    1. MoocApp 在本说明书中特指由歪果仁带你灰团队开发的北航学堂android客户端v1.0
    2. 课程 在本说明书中特指发布在北航学堂中的网络公开课
    3. tab页 在本说明书中指可以滑动切换的一组选项卡页面

    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层、业务逻辑层、数据层的形式进行整合,届时会更新本设计文档。

  • 相关阅读:
    SQL Server 锁的 8 种类型
    MYSQL 提取时间中的信息的 4 方法
    MYSQL 时间计算的 3 种函数
    MYSQL 的 6 个返回时间日期函数
    SQL Server 错误18456
    MYSQL <=>运算符
    django比较相等或者不相等的模板语法ifequal / ifnotequal
    django模板语言的注释
    ECharts修改坐标轴,坐标轴字体,坐标轴网格样式以及控制坐标轴是否显示
    http://www.cnblogs.com/linxiyue/p/8244724.html
  • 原文地址:https://www.cnblogs.com/wgrdnh/p/4932041.html
Copyright © 2020-2023  润新知