毕业设计 So Easy:珠穆朗玛 FM 音频电台 APP
很多计算机专业大学生经常和我交流:毕业设计没思路、不会做、论文不会写、太难了......
针对这些问题,决定分享一些软、硬件项目的设计思路和实施方法,希望可以帮助大家,也祝愿各位学子,顺利毕业!
项目专栏:https://blog.csdn.net/m0_38106923/category_11085518.html
APP 体验安装包下载:https://download.csdn.net/download/m0_38106923/19322068
1、项目背景
在移动互联网迅猛发展的大背景下,音频作为伴随性媒体能够最大化地利用用户的日常碎片化时间,较其他听书 APP 和传统电台,喜马拉雅 FM 能够脱颖而出,正是因为它精准的目标用户定位,做好目标受众细分,创新节目内容,优化节目形式,满足消费者的需求,并利用网络营销,保存现有优势,快速抢占市场份额。
2、系统介绍
2.1、系统概述
珠穆朗玛 FM 是一款仿照喜马拉雅(音频分享平台)APP 所开发的音频分享电台 APP,该应用充分实现喜马拉雅 APP 的诸多重要功能,如在线专辑展示、电台展示及播放、音频下载、音频录制、音频分享等功能,通过对以上多种功能的设计对互联网中音频的分享与声音服务有了更深层的认识。
2.2、关键技术
本项目采用 retrofit+rxjava2+rxandroid+arouter+mvvm+fragmentation 实现单 activity 多 fragme 组件化架构。
Retrofit:Retrofit 是现下 Android 端开发非常流行的一款网络请求框架,它通过动态代理的方式将 Java 接口翻译成网络请求,通过 OkHttp 发送请求,并且其具备强大的可扩展性,支持各种数据格式的转换以及 RxJava。
Rxjava2:一个在 Java VM 上使用可观测的序列来组成异步的,基于事件的程序的库。
Rxandroid:是 RxJava 针对 Android 平台的一个扩展,用于 Android 开发提供响应式扩展组件快速、易于开发 Android 应用程序。
Arouter:ARouter 是阿里开源的一款 android 路由框架。通过路由进行界面跳转,区别于 Intent 的显隐式跳转。在模块化的项目中,友好的解决了因模块互相依赖冲突,而界面互相跳转不了的问题,使用 ARouter 进行跳转,两个 library 互相不依赖,也可以相互跳转。
Mvvm:MVVM 是 Model-View-ViewModel 的简写。它本质上就是 MVC 的改进版。MVVM 就是将其中的 View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。
Fragmentation:Fragmentation 非常适合一个 Activity 管理多个 fragment。
组件化:组件化是指解耦复杂系统时将多个功能模块拆分、重组的过程,有多种属性、状态反映其内部特性。
2.3、环境配置
开发环境:Windows 10 及以上,Android studio 4.1.2
运行环境:Android 8.0 及以上,JDK 1.8,SDK 21 及以上
网络环境:Internet ,Wi-Fi
3、系统结构设计
3.1、播放器状态结构图
3.2、登录流程结构图
4、系统模块设计
此 APP 共分为 5 个模块:“我的”模块、首页模块、历史记录模块、播放模块、发现模块。
“我的”模块:负责 APP 的登录注册、登录登出及分享操作;
首页模块:分类展示、音频搜索、音频展示;
历史记录模块:订阅内容与推荐订阅、已下载、播放历史、已购买的音频、喜欢的音频;
播放模块:热门播放的内容展示、专辑展示;
发现模块:付费内容、全面朗读、活动、商城等待开发。
5、系统总体架构
6、接口描述
喜马拉雅开放平台标准授权登录流程采用 OAuth2 标准授权码(authorization code)模式。授权码模式(authorization code)是功能最完整、流程最严密的授权模式。它的特点就是通过第三方客户端的后台服务器,与我们的 oauth2 认证服务器进行互动。总体来说先进行用户登录,再进行用户授权。
注意:这种授权模式不会存储任何私钥在客户端(或浏览器端)。
这种授权模式的流程示意图如下所示:
版权声明: 本文为 InfoQ 作者【不脱发的程序猿】的原创文章。
原文链接:【http://xie.infoq.cn/article/9269afd0a743164d8e08b9634】。文章转载请联系作者。
评论