# 《移动平台应用开发技术 》
# 考研线上自习室 App 的设计与实现
#### 摘要
2022年考研即将开始报名,2021 年暑假的复习也是至关重要的。很多同学在暑假决定回家复习,可是回家复习的效率普遍不高,这是缺乏同学之间相互督促相互进步的结果。本项目就是为了解决这个问题,基于腾讯云的 TRTC 技术,将数据存储在 MySQL 中,通过 JavaWeb Servlet 进行用户数据的前后端交换,研发了线上考研自习室。考研的同学可以通过这个软件进入线上自习室,与房间中的其他同学一同学习、一同进步,提高考研效率。
**关键词:**自习 TRTC Servlet MySQL
# 1 概述
## 1.1 选题背景
2021年暑假即将开始了,考研的同学也在进行紧张的复习之中。很多同学选择回家复习,并且制定了严密的复习计划。可是根据我们自身体验来说,很多同学在家里面的复习效率非常低的,而且容易被其他事物干扰而中断复习。经过研究,我们发现是因为同学们在家中的环境过于安逸,并且没有学习环境,无法静下心来学习。
## 1.2 制作意义
因此我们设计了这样一款线上考研自习室,多个同学可以进入到一个自习室当中,相互监督、进步相互、共同学习,遇到不会的问题也可以直接向同学们提问,这样就提供了浓厚的学习氛围,提高了暑假在家的学习效率,让同学们在家中也能体验到如学校般的氛围。
## 1.3 人员分工
本组一共有三名成员,分别是陆健康、占钟鸣、李森。
陆健康主要负责后端 Servlet 模块、数据库连接模块以及前后端数据交互模块的设计与实现。
占钟鸣主要负责 Android 前端界面 UI 的实现、前端数据的采集以及前端的控件的相应事件函数的编写。
李森进行数据库设计和制作,UI 和整体布局设计,功能模块架构设计和部分后端连接数据库制作。
# 2 需求分析
## 2.1 业务流程与业务流程
### 2.1.2 业务逻辑
如图 2.1.1 所示,本项目的业务分为两个部分,分别是用户信息存储部分和进行实时音视频通话部分。
在用户存储部分中,用户可以通过 http 协议将自己的注册信息传给 Tomcat 服务器,然后再将信息存入 MySQL 服务器,当用户在登录或者修改密码时,服务器先向 MySQL 数据库请求用户信息判断是否是用户本人操作,确认本人后再完成对用户信息的操作。
在实时音视频通话部分,用户点击加入房间以后,由腾讯云服务器将房间内所有人的视频采集内容汇聚到一个页面上,房间内的所有人都可以看到房间内其他人的视频,如此就实现了音视频的实时通信。
![](https://www.writebug.com/myres/static/uploads/2021/12/16/35e743a7610f53bfde2c663d4e5d39b1.writebug)
图 2.1.1 业务逻辑图
### 2.1.2 业务流程
![](https://www.writebug.com/myres/static/uploads/2021/12/16/fd2a7a508b46fdcc8977b3542f756f46.writebug)
图 2.1.2 业务流程图
如图 2.2.2 所示,用户打开 App,最先展示的是登录页面,要求用户输入自己的账号密码验证身份信息,如果用户没有账号,则提示用户进入注册页面进行账号注册。用户注册完成以后自动跳转回登录页面,然后输入注册过的账密进行登录。验证成功后将进入程序主界面。
程序主界面由三个子界面构成,分别是项目信息、自习室以及我的资料。在项目信息中用户可以了解 App 的开发背景和项目介绍;在自习室界面中用户可以看到当前 App 存在的房间信息,并且可以选择房间点击进入进行实时音视频通话,同时也可以选择创建房间。创建完成后,页面会自动跳转会程序主页面。
在我的资料界面中会显示用户的相关信息,用户也可以在这个页面进行资料的修改和密码的修改,修改密码需要验证原密码以确保是本人操作。
## 2.2 功能性需求
1. 要实现用户登录、用户注册功能,并且要对用户资料进行存储,并且提供对用户资料的修改功能。
2. 要给用户提供视频通话的房间,用户可以选择自行创建房间或者加入已有房间然后与同一个房间的用户进行实时音视频通话。
3. 房间内要提供关闭麦克风、关闭摄像头、切换前/后摄像头、切换扬声器
4. /麦克风以及挂断功能,以实现用户在实际体验中的必要需求。
## 2.3 数据性需求
必须要有两张表:用户表和房间表。
1. 用户表:用户表必须要有用户账号、用户密码,用来标识用户以及验证用户身份信息,必须要有电话号码和邮箱以确保能够联系上用户。
2. 房间表:房间要有房间号、房间名来供用户识别,房间要有密码来保证通信的私密性,房间要有创建者(管理员)来保证能对房间内用户进行管理(踢人)。
## 2.4 技术可行性
在技术上,前端通过 Android 开发,在手机端显示,使用 Java 语言编写, 并且在 Android Studio 上设计 UI,后端通过 JavaWeb 的 Servlet 实现,前端将数据通过 Http 协议发送给 Servlet,Servlet 将数据通过 JDBC 发送给 MySQL 服务器,从而完成数据的交互。云服务器选择阿里云服务器,在阿里云服务器上搭建 docker,在 docker 拉取 Tomcat 容器和 MySQL 容器,将 Servlet 程序和数据库服务器部署到云端实现数据的共享。核心功能实时音视频通话通过腾讯云的 TRTC 的 SDK 实现。
以上设计的技术在大学期间或多或少都经过学习或使用过,能够在技术上进行实现。
## 2.5 经济可行性
本项目主要支出在于阿里云服务器和腾讯云 TRTC 通信服务的购买。
阿里云服务器标准型 ECS 服务器 540.6 元/年,腾讯云 TRTC 通信服务 4.56元/千分钟,价格低廉,在接收范围之内。
# 3 总体设计
## 3.1 系统架构设计
![](https://www.writebug.com/myres/static/uploads/2021/12/16/dd12e95bb3d0c855ca7bac42949749cf.writebug)
图 3.1 系统架构图
如图 3.1 所示,本项目一共分为三个部分,分别是云端数据库开发、安卓前端开发以及Java Servlet 后端开发。
在数据库开发中要对数据库的远程访问控制进行修改,对项目所需要的数据表进行设计与开发。
在前端开发中要对 UI 进行设计,要有注册登录界面、程序主界面、房间展示页面、房间创建页面、用户资料展示页面、用户信息修改页面以及本项目介绍的页面。同时,还要对用户在前端产生的数据进行采集,并将其通过 Http 发送给 Tomcat 服务器,然后在前端接收 Tomcat 返回的 response 信息,并且将处理后的结果展示给用户。
## 3.2 功能结构设计
![](https://www.writebug.com/myres/static/uploads/2021/12/16/815ca8ab09412ae893c4d4f0b66cdebe.writebug)
图 3.2 功能结构图
本项目分为三个部分,分别是应用简介、通话教室以及“我的”。
应用介绍是对本项目的一些背景介绍,在用户登陆成功后会第一时间展示给用户。
通话教室会显示当前系统中所有的房间信息,用户可以选择加入房间,输入密码之后就能够进入房间,并进行音视频通信。用户也可以自己创建房间邀请自己的好友进入房间通话。
“我的”则是显示用户的数据信息,在这个模块也提供资料修改和修改密码功能。用户也可以点击退出登录以返回登录页面。
## 3.3 数据结构设计
![](https://www.writebug.com/myres/static/uploads/2021/12/16/e53f2a98ab16d28607ed98843a1e8058.writebug)
图 3.3 E-R 图设计
如图 3.3 所示,本项目一共有两张数据表,一张是 Users——存储用户信息的数据表,其中存储了用户序号�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本项目为使用Java语言实现的考研线上自习室App。本项目的业务分为两个部分,分别是用户信息存储部分和进行实时音视频通话部分。 在技术上,前端通过Android开发,在手机端显示,并且在Android Studio上设计UI,后端通过JavaWeb的Servlet实现,前端将数据通过Http协议发送给Servlet,Servlet将数据通过JDBC发送给MySQL服务器,从而完成数据的交互。云服务器选择阿里云服务器。
资源推荐
资源详情
资源评论
收起资源包目录
基于java考研线上自习室 App 的设计与实现.zip (201个子文件)
gradlew.bat 2KB
f78088189ad14123711c01ca188ba965.bin 10B
7d4d27fc8dfcc9d954235a8604be875c.bin 10B
5df2cc28272269dfd9e345a13ebec86f.bin 10B
cda97eeb742d6ead7213896501385375.bin 10B
b1c348856959896df354ae0d1c9a5dd7.bin 10B
5ffb4f59cf26a3f470863ad23c6166e5.bin 10B
4e7d50d8551b3ae894ae12fde8109e38.bin 10B
68a841df896b2a0361e44ec997b9bac6.bin 10B
GenerateTestUserSig.class 4KB
Constant.class 867B
BuildConfig.class 852B
classes.dex 5KB
classes.dex 5KB
classes.dex 5KB
classes.dex 5KB
classes.dex 5KB
classes.dex 5KB
classes.dex 5KB
classes.dex 5KB
.gitignore 208B
.gitignore 47B
.gitignore 7B
.gitignore 7B
.gitignore 6B
build.gradle 1KB
build.gradle 961B
build.gradle 867B
build.gradle 790B
settings.gradle 756B
build.gradle 606B
gradlew 5KB
mysql-connector-java-5.1.7-bin.jar 693KB
fastjson-1.2.76.jar 643KB
fastjson-1.2.76.jar 643KB
gradle-wrapper.jar 53KB
classes.jar 4KB
classes.jar 4KB
R.jar 315B
res.jar 22B
VideoCallingActivity.java 14KB
GenerateTestUserSig.java 12KB
FloatingView.java 6KB
VideoCallingEnterActivity.java 4KB
DashboardFragment.java 4KB
UserDao.java 3KB
NavActivity.java 3KB
LoginActivity.java 3KB
NotificationsFragment.java 3KB
TRTCBaseActivity.java 3KB
RoomDao.java 3KB
AlterActivity.java 2KB
mAdapter.java 2KB
RegisterActivity.java 2KB
WebServiceGet.java 2KB
WebServiceGet.java 2KB
AlterPwdActivity.java 2KB
LoginServlet.java 2KB
UpdatePwdServlet.java 2KB
CreateRoomActivity.java 2KB
JdbcUtil.java 1KB
RegServlet.java 1KB
UpdateServlet.java 1KB
RoomLoginServlet.java 1KB
RoomSelectServlet.java 1KB
RoomCreateServlet.java 1KB
HomeFragment.java 1KB
Constant.java 1KB
FindDataServlet.java 1KB
RoomInfo.java 1KB
MainActivity.java 1KB
Users.java 804B
BuildConfig.java 675B
Room.java 647B
ListActivity.java 490B
NotificationsViewModel.java 486B
DashboardViewModel.java 470B
HomeViewModel.java 450B
TRTCApplication.java 336B
output.json 329B
output.json 310B
annotationProcessors.json 2B
index.jsp 302B
LICENSE 1KB
myoutput.md 17KB
myoutput.md.md 16KB
README.md 16KB
READMEbefore.md 7KB
README.en.md 7KB
merge-state 553B
.name 16B
c6241016_1863510129_陆健康.pdf 761KB
5-525ca7f7e160748e2940ea6d7e398328.png 120KB
4-68146200fff639a5cf70efe7beba9fd6.png 74KB
6-2ae7edb2285bd999d2a8d40dded39c71.png 59KB
3-5adf4744c189357121b2cde5a3272127.png 46KB
9-f01fe8c3af08e28392f68e7205fbc0f7.png 39KB
7-67bfceef2c77e73ceb32bbb341b6cef9.png 38KB
10-c4501eeafe6ecea174418932872bb646.png 13KB
8-8f5e6217546fb0fab42fb9a4afdca448.png 13KB
共 201 条
- 1
- 2
- 3
资源评论
- 滕扬Lance2023-07-27设计与实现.zip文件中的基于Java的考研线上自习室App非常实用,界面简洁,操作简便。
- Crazyanti2023-07-27这个文件提供了一个非常方便的基于Java的考研线上自习室App,能够帮助学习者更好地准备考试。
- KerstinTongxi2023-07-27设计与实现.zip文件中的基于Java的考研线上自习室App集合了很多考研必备功能,是考研学生学习备考的好帮手。
- 以墨健康道2023-07-27这个文件里的基于Java的考研线上自习室App拥有完善的功能,可以帮助考研学生高效地安排学习时间。
- 坑货两只2023-07-27这个基于Java的考研线上自习室App设计合理,使用起来非常流畅,给考研学生提供了一个良好的学习平台。
计算机毕设论文
- 粉丝: 1w+
- 资源: 395
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Cisco 思科 CP-7945g 7965g sip模式固件 9.4.2
- 贪吃蛇方案设计的方法.zip
- 微信支付账单(20240731-20240731).zip
- minio20240920.tar
- 集成供应链(Integrated Supply Chain,ISC)核心业务流程再造,华为的最佳实践
- zabbix-server-pgsql-7.0-centos-latest.tar
- zabbix-web-apache-pgsql-7.0-centos-latest.tar
- Altium Designer 24.9.1 Build 31 (x64)
- 基于JAVA的人机对弈的一字棋系统设计与实现课程设计源代码,极大极小搜索和α-β搜索算法
- 电子回单_2024092100085000842531409053050071685353.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功