行业知识
基于Android的教学课程系统设计与开发
摘 要
移动应用已经成为人们生活必不可缺的一部分,大学生身为移动应用的最大用户群体,在生活学习娱乐各个方面都与移动应用有着紧密联系,然而针对大学生校园学习的移动应用却寥寥无几,因为不同的学校,甚至不同的院系,都有着自己独特的情况。
该项目借鉴了现有的一些和学习相关的移动应用,结合软件学院的特点,针对软件学院的学生,提供了学生日常学习生活常用的一些功能。主要分为我的课表,我的日程,我的学习,教室预约,我的班级和我的成绩六个主要模块,给学生用户提供课表,学校公告,课程成绩等相关信息,用户还可以自定义自己的日程,也可以进行在线的学习。
该项目最重要的移动端采用Android开发,用Android Studio 作为移动端的开发工具。
在服务器端和数据库方面,采用Node.js结合MongoDB,直接将自己的电脑模拟成服务器,因为数据较为简单,所以采用以便于HTTP协议传输的json格式储存数据的MongoDB作为数据库。
最终该项目经过功能和性能的测试,基本实现各个功能模块,成功实现服务器和移动端的数据交互。
关键词:移动应用;Android;MongoDB
Design and development of campus mobile application based on Android
Abstract
The mobile application has become part of people’s life, and college students as the largest group of users of mobile applications, have close connection with mobile applications in learning, entertainment, and life. However, there are few mobile applications aimed at college students, because different schools, and even different departments, have their own unique situation.
The project learning from some mobile applications related to learning, combing with the characteristics of the software institute, aimed to students in software institute, provides students some of the functions which they may usually use in their daily learning and life. And the project mainly pided into six main modules, my course-table, my schedule, my study, classroom reservation, my class and my grades. And to to provide students with the curriculum, the school bulletin, grades and other information. Students can also customize their own schedules, and can also study on the Internet.
The most important mobile end of the project is developed by Android, and the development tool using Android Studio as the mobile terminal is adopted.
At the end of the server and the database, using Node.js combined with MongoDB, directly use the computer into the server. Because the data is relatively simple, MongoDB is used as the database for storing data in the JSON format that facilitates the transmission of HTTP protocols.
Finally, the function and performance of the project is tested, the basic function modules are implemented, and the data exchange between the server and the mobile terminal is successfully realized.
Key Words:Mobile applications;Android;MongoDB
目 录
摘 要 II
Abstract III
引 言 1
1 绪论 2
1.1 开发背景和目的 2
1.2 开发环境 2
1.2.1 移动端 2
1.2.2 服务器 4
1.2.3 数据库 4
2 可行性研究 5
3 需求分析 6
3.1 功能需求分析 6
3.2 非功能需求分析 6
3.2.1 性能分析 6
3.2.2 易用性分析 7
3.2.3 安全性分析 8
3.2.4 可维护性分析 8
3.2.5 界面分析 8
3.3 用例分析 9
3.4 参考系统 10
4 详细设计 10
4.1 功能模块设计析 14
4.1.1 登录和登出 14
4.1.2 我的课表模块 15
4.1.3 我的学习模块 16
4.1.4 教室预约模块 19
4.1.5 我的日程模块 20
4.1.6 我的班级模块 20
4.1.7 我的成绩模块 23
4.2 数据设计 23
4.3 数据E-R图 23
5 编码实现 29
5.1 编码风格 29
5.2 功能模块实现 29
5.2.1 登录与登出 29
5.2.2 我的课表模块 30
5.2.3 我的学习模块 31
5.2.4 教室预约模块 32
5.2.5 我的日程模块 33
5.2.6 我的班级模块 34
5.2.7 我的成绩模块 34
5.2 功能模块实现 34
5.2.1 登录和登出 34
5.2.2 我的课表模块 35
5.2.3 我的学习模块 35
5.2.4 教室预约模块 39
5.2.5 我的日程模块 40
5.2.6 我的班级模块 41
5.2.7 我的成绩模块 42
6 测试与分析 43
6.1 功能测试 43
6.2 性能测试 46
6.3 分析与展望 46
6.3.1 现状分析 46
6.3.2 改进与展望 47
设 计 总 结 44
参 考 文 献 49
致 谢 50
引 言
随着软件科技和网络技术的发展,以及智能手机的普及,移动应用已经成为人们生活必不可缺的一部分。移动应用有着广大的受众,它方便快捷,种类繁多,在生活的方方面面都涉及的到。移动应用的种类可以说是数不胜数,几乎覆盖所有领域,常见的例如购物,移动支付,聊天社交,影音,游戏,办公,阅读,搜索等等。
移动应用的开发也一直是一个热门的话题,移动应用开发的成本低廉,开发平台繁多,开发的语言也多种多样。移动应用的开发,应该遵循这样几点,首先,要做到操作便捷,简洁大方,交互的步骤越少越好,便于用户的使用,提高体验感;其次,要注重信息的即时性和有效性,信息作为移动应用最重要的一部分,必须保持“新鲜”;还有,一个移动应用应该要有效率和集中性,展现给用户的是最高效和常用的功能,要做到精简。
Android作为一个开源的开发软件,适用性强,扩展性强,其开发简单,用JAVA语言即可进行开发,并且具有丰富多样的类库和开发框架,能实现各种功能。Android开发的应用界面多样化,便于设计出个性化的产品。
考虑到大学生在学习类移动应用中最常用的几个功能,例如课表查看,日程表功能,再结合我们软院自身的情况,例如借教室,尔雅课堂等,再综合现有的学习相关的移动应用,设计出一款基于Android的针对软件学院学生的教学课程APP。
该移动应用主要分为我的课表,我的日程,我的学习,教室预约,我的班级和我的成绩六个主要模块,主要用于和学生之间的信息管理和互动,从软件开发的层次去实现一个教学课程系统。
本论文从软件开发的角度,从需求分析,功能分析,数据设计,详细设计等方面,详细介绍了一个移动应用的开发过程,尽量做到使APP有较高的针对性和实用性,并非做到完美。
1 绪论
1.1 开发背景和目的
随着软件科技和网络技术的发展,以及智能手机的普及,移动应用已经成为人们生活必不可缺的一部分。移动应用的种类可以说是数不胜数,几乎覆盖所有领域,常见的例如购物,移动支付,聊天社交,影音,游戏,办公,阅读,搜索等等。
移动应用的开发也一直是一个热门的话题,移动应用开发的成本低廉,开发平台繁多,开发的语言也多种多样。由于手机的操作系统品种繁多,所以相关的移动应用开发也多种多样,其中最广泛的应该就是Android系统和iOS系统,考虑到开发的难易程度和开发工具,选择Android是比较容易实现的。
大学生身为移动应用的最大用户群体,在生活学习娱乐各个方面都与移动应用有着紧密联系,然而针对大学生校园学习的移动应用却寥寥无几,比较热门的有课程格子,超级课程表等等,但是因为不同的学校,甚至不同的院系,都有着自己独特的情况,所以市面上的校园移动应用不能做到真正的有针对性和适用。
为了方便软件学院学生的日常生活和学习,结合软件学院自身的情况,例如教室外借,通识课尔雅课程的情况,我想设计出一款移动应用,能满足同学的需求,为同学们带来一些便利,让同学们能更轻松地进行网上学习,查看自己学习课程相关的信息。并且,通过这一次的开发研究,更深一步了解掌握软件开发,尤其是移动应用开发的流程。
1.2 开发环境
1.2.1 移动端
移动Android端的开发,选取的工具是Android Studio。
Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA,类似 Eclipse ADT,Android Studio提供了集成的 Android 开发工具用于开发和调试。[1]
在IDEA的基础上,Android Studio 提供:
(1)基于Gradle的构建支持
(2)Android 专属的重构和快速修复
(3)提示工具以捕获性能、可用性、版本兼容性等问题
(4)基于模板的向导来生成常用的 Android 应用设计和组件
(5)功能强大的布局编辑器,可以让你拖拉 UI 控件并进行效果预览
图1.1,图1.2是Android Studio的开发界面。
图1.1 Android Studio的编程界面
图1.2 Android Studio的UI设计界面
Android Studio 作为一种Android集成开发工具,具有许多优点:
(1) Google针对Android的特点开发而成,是基于IntelliJ idea改造的IDE,上升空间非常大
(2) 启动速度、响应速度快
(3) UI界面美观
(4) 自动保存,更加智能
(5) 实时预览UI编辑效果
(6) 内置终端
(7) 支持各种插件,如Git、Markdown、Gradle等等
(8) 安装的时候就自带了如GitHub,Git,SVN等流行的版本控制系统
1.2.2 服务器
服务器端的开发,选取的是Node.js。
Node.js是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node.js对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。
Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。[2]
Nodejs作为一个新兴的前端框架,后台语言,有许多突出的优点:
(1) 它采用RESTful API
(2) 它是采用单线程进行操作
(3) Node.js可以在维持原来线程正常工作的情况下,不创建额外的线程,对任务进行并发处理,它通过事件轮询(event loop)来实现并发操作,所以,这一点可以用来避免阻塞操作。
(4) 非阻塞IO
(5) V8虚拟机
(6) 事件驱动
1.2.3 数据库
数据库的设计,采用MongoDB。
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。[3]
MongoDB具有一些优势:
(1) 快速,MongoDB拥有适量级内存,将数据存储在在物理内存中
(2) 高扩展性
(3) 自身的failover机制
(4) json的存储格式
2 可行性研究
可行性研究是一项确定建设项目前具有决定性意义的工作,它对拟建项目有关的自然、社会、经济、技术等进行调研、分析比较以及预测建成后的社会经济效益。在此基础上,综合论证项目建设的必要性,财务的盈利性,经济上的合理性,技术上的先进性和适应性以及建设条件的可能性和可行性,从而为投资决策提供科学依据。
(1) 技术可行性
本项目用Android Studio作为移动端的开发,可直接将项目打包成APK。
在实时的 Web连接上,Node.js 采用的是基于 WebSocket 的推送技术,可以保证及时,有效,双向连接的web应用,客户端和服务器端都可以主动地发起通信,也能够有效安全地接收数据。
MongoDB 的数据存储格式为json,方便列表性数据的传输。
(2) 经济可行性
本项目用Android Studio作为移动端的开发,无需开发花费,开发时间短,用自己的电脑作为服务器,也无需花费,若想投入真正的实用中,可将学校或者软院的网站作为服务器,开发费用较低,利用率高,经济可行。
(3) 操作可行性
本项目界面简洁大方,功能模块明确,有较完善的操作和信息的提示机制,输入较少,以信息的展示为主,容易操作。
(4) 社会可行性
本项目未涉及政治,法律,宗教,道德等问题,为违反相关规定。
3 需求分析
本章将从功能需求,性能需求,用例三个大方向对该应用开发进行详细分析,并且提出该应用应该达到的一些标准。在3.4节中,举例了一些现有的基于Android系统的移动应用,用于参考借鉴,以便能更好地开发。
3.1 功能需求分析
(1) 登录与登出
用户输入正确的账号密码后,即可登录应用,进行相关操作,登陆过的账号密码应该自动保存,用户下次打开应用时无需再次输入账号密码,可自动登录。
用户退出登录时,保存的账号密码以及相关信息也应该删除。
(2) 个人信息查看
用户可在应用内查看自己相关信息,例如学号,院系,班级,邮箱等。
(3) 课程表的查看
用户可以查看本学期自己所选的所有课程及其相关信息,例如上课时间,所在教室,授课教师等,在应用中以一周为显示单位。
(4) 在线学习
用户可以在应用中查看可供在线学习的课程列表,选择相关课程,进入学习,根据章节观看视频,可以选择题库进行习题练习,每道题做完后都可以查看正确答案,也可进行测试,加深知识点的巩固。
(5) 日程管理
用户可以添加,删除,修改自己的日程,可以查看任意一天的日程,在应用中以一周为显示单位。
(6) 教室预约
用户可以查看教室列表,选择有空闲时间段的教室,填写预约的时间及其相关预约信息,预约成功后提示用户。
(7) 班级信息查看
用户可以查看自己班级中同学的相关信息,如姓名,学号,联系方式等,还可以查看创建班级公告,及时获取信息。
(8) 成绩查询
用户可以查看自己所选课程的成绩,没有参加考试的课程无需显示成绩。
3.2 非功能需求分析
3.2.1 性能分析
(1) 响应时间
① 启动应用时间
上一篇:golang怎么做服务器?
下一篇:ps立体效果图怎么做?