一个集学习、资讯、娱乐与个人管理于一体的 Android 综合应用。
本项目是为 Android 开发课程设计的期末作品,旨在通过实践掌握 Android 应用开发的核心技术栈,包括用户认证、数据可视化、多媒体播放、地图定位等丰富功能。
📱 功能概览
青禾学习平台包含以下十大核心功能模块:
-
👤 用户认证: 基于 Bmob 后端服务,实现账号注册、密码登录及邮箱找回密码功能。
-
📰 首页新闻资讯: 展示动态新闻列表,集成轮播广告位,并支持下拉刷新与上拉加载。
-
🎬 视频播放 : 提供视频列表浏览,并使用
GSYVideoPlayer实现流畅的详情页全屏播放体验。 -
📊 数据可视化 : 利用
MPAndroidChart库,通过 Boom 爆炸菜单快速切换柱状图、折线图和饼图,直观展示数据。 -
📅 日程管理: 支持创建、编辑、查看个人日程,并通过单例模式实现本地数据持久化。
-
✨ 星座匹配: 根据用户生日自动计算星座,提供十二星座的详细信息与个性化配置。
-
⭐ 收藏管理 : 允许用户收藏喜欢的视频,通过
SharedPreferences实现收藏列表的本地存储与管理。 -
📍 地图定位: 集成百度地图 SDK,实现用户当前位置定位及周边兴趣点(POI)搜索。
-
🧭 底部导航: 采用 Jetpack Navigation Component,实现首页、图表、视频、个人四大模块的无缝切换。
-
🚀 启动引导 : 包含闪屏页(Splash Screen)和引导页(Intro Page),优化新用户的首次使用体验。
其中一个案例演示:
/>
🛠 技术栈
- 语言: Java
- 架构: MVVM (Model-View-ViewModel)
- 核心库
- 网络请求: OkHttpUtils
- 图片加载: Glide
- 后端服务: Bmob SDK
- 数据图表: MPAndroidChart
- 视频播放: GSYVideoPlayer
- 地图服务: 百度地图 SDK
- UI/UX: Material Design Components, RecyclerView, SmartRefreshLayout, YouthBanner
- 导航: Jetpack Navigation Component
- 引导页: AppIntro (已解决兼容性问题)
📂 项目结构
青禾学习平台/
├── app/
│ ├── src/main/java/com/example/application_project/
│ │ ├── ui/
│ │ │ ├── home/ # 首页新闻资讯模块
│ │ │ ├── chart/ # 数据可视化模块
│ │ │ ├── video/ # 视频播放模块
│ │ │ ├── schedule/ # 日程管理模块
│ │ │ ├── constellation/ # 星座匹配模块
│ │ │ ├── favorite/ # 收藏管理模块
│ │ │ ├── adr/ # 地图定位模块
│ │ │ └── me/ # 个人中心模块
│ │ ├── data/ # 数据模型与管理器
│ │ ├── utils/ # 工具类
│ │ ├── MyApplication.java # 应用初始化入口
│ │ └── MainActivity.java # 主Activity
│ ├── src/main/res/
│ │ ├── layout/ # 布局文件
│ │ ├── navigation/ # 导航图 (mobile_navigation.xml)
│ │ └── ... # 其他资源文件
│ └── build.gradle # 项目依赖配置
└── README.md
🔧 环境要求
- 开发工具: Android Studio (版本 4.2+)
- 最低SDK: API 24 (Android 7.0)
- 编译SDK: API 33+
- 构建工具: Gradle 7.4+
🚀 快速开始
-
克隆仓库
bashgit clone https://gitee.com/at-share/android_application_project.git -
配置后端服务
- 在 Bmob官网 注册账号并创建应用。
- 获取
Application ID和REST API Key。 - 在
MyApplication.java中替换为你的Application ID。
-
配置地图服务 (可选)
- 在 百度地图开放平台 申请开发者账号和应用Key。
- 在
AndroidManifest.xml中替换<meta-data>标签内的api_key为你自己的 Key。
-
构建并运行
- 使用 Android Studio 打开项目。
- 同步 Gradle 依赖。
- 连接 Android 设备或启动模拟器。
- 点击 Run 按钮进行部署。
🐞 常见问题与解决方案
本项目在开发过程中遇到了诸多挑战,所有问题均已记录并解决。部分典型问题包括:
- 绑定类导入错误: 确保 DataBinding 的类名与布局文件名严格对应。
- 百度地图隐私政策报错 : 必须在
Application和使用 SDK 的Fragment/Activity中都调用setAgreePrivacy(true)。 - 导航ID不匹配 : 检查
bottom_nav_menu.xml中的 item ID 与mobile_navigation.xml中的 destination ID 是否一致。 - 爆炸菜单(BoomMenu)依赖问题 : 使用 JitPack 上的最新版本
implementation 'com.github.Nightonke:BoomMenu:2.1.1'。
完整的问题列表及解决方案请参阅项目报告中的 "项目报错及解决" 章节。
