青禾学习平台

一个集学习、资讯、娱乐与个人管理于一体的 Android 综合应用。

本项目是为 Android 开发课程设计的期末作品,旨在通过实践掌握 Android 应用开发的核心技术栈,包括用户认证、数据可视化、多媒体播放、地图定位等丰富功能。


📱 功能概览

青禾学习平台包含以下十大核心功能模块:

  1. 👤 用户认证: 基于 Bmob 后端服务,实现账号注册、密码登录及邮箱找回密码功能。

  2. 📰 首页新闻资讯: 展示动态新闻列表,集成轮播广告位,并支持下拉刷新与上拉加载。

  3. 🎬 视频播放 : 提供视频列表浏览,并使用 GSYVideoPlayer 实现流畅的详情页全屏播放体验。

  4. 📊 数据可视化 : 利用 MPAndroidChart 库,通过 Boom 爆炸菜单快速切换柱状图、折线图和饼图,直观展示数据。

  5. 📅 日程管理: 支持创建、编辑、查看个人日程,并通过单例模式实现本地数据持久化。

  6. ✨ 星座匹配: 根据用户生日自动计算星座,提供十二星座的详细信息与个性化配置。

  7. ⭐ 收藏管理 : 允许用户收藏喜欢的视频,通过 SharedPreferences 实现收藏列表的本地存储与管理。

  8. 📍 地图定位: 集成百度地图 SDK,实现用户当前位置定位及周边兴趣点(POI)搜索。

  9. 🧭 底部导航: 采用 Jetpack Navigation Component,实现首页、图表、视频、个人四大模块的无缝切换。

  10. 🚀 启动引导 : 包含闪屏页(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+

🚀 快速开始

  1. 克隆仓库

    bash 复制代码
    git clone https://gitee.com/at-share/android_application_project.git
  2. 配置后端服务

    • Bmob官网 注册账号并创建应用。
    • 获取 Application IDREST API Key
    • MyApplication.java 中替换为你的 Application ID
  3. 配置地图服务 (可选)

    • 百度地图开放平台 申请开发者账号和应用Key。
    • AndroidManifest.xml 中替换 <meta-data> 标签内的 api_key 为你自己的 Key。
  4. 构建并运行

    • 使用 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'

完整的问题列表及解决方案请参阅项目报告中的 "项目报错及解决" 章节。

相关推荐
超级任性4 小时前
Android Studio 各种版本及官方下载地址
android·ide·android studio·android-studio
我命由我123454 天前
Kotlin 面向对象 - 装箱与拆箱
android·java·开发语言·kotlin·android studio·android jetpack·android-studio
我命由我123454 天前
Android Jetpack Compose - Snackbar、Box
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
我命由我123455 天前
Kotlin 运算符 - == 运算符与 === 运算符
android·java·开发语言·java-ee·kotlin·android studio·android-studio
我命由我123455 天前
Android Jetpack Compose - TopAppBar、BottomAppBar、Scaffold
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
、BeYourself6 天前
项目案例-构建 AI 驱动的文档搜索系统-2
java·人工智能·springai·项目案例
我命由我123457 天前
Android Jetpack Compose - Compose 重组、AlertDialog、LazyColumn、Column 与 Row
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
funcdefmain7 天前
lsposed开发hook找不到类
java·android-studio
壮哥_icon8 天前
Android 系统级 USB 存储检测的工程化实现(抗 ROM、抗广播丢失)
android·android-studio·android系统