📦HaoZai000 / NexioSchedule
← 返回首页
…
⚖️ AGPL-3.0🌐 haozai000.github.io📅 创建于 2026-07-12🔄 更新于 2026-10-25
🔗 GitHub Kotlin

📄 仓库 README

在 GitHub 查看 ↗
来自 GitHub 仓库自述文件 · 版权归原作者所有
# Nexio课程表 一款基于 Jetpack Compose 的 Android 课程表应用,支持自定义课表外观、教务系统导入、多格式课表导入、WebDAV 同步、桌面小组件等功能。 [![Stars](https://img.shields.io/github/stars/HaoZai000/NexioSchedule?style=flat-square&color=yellow)](https://github.com/HaoZai000/NexioSchedule/stargazers) [![Downloads](https://img.shields.io/github/downloads/HaoZai000/NexioSchedule/total?style=flat-square&color=orange)](https://github.com/HaoZai000/NexioSchedule/releases) [![Latest Release](https://img.shields.io/github/v/release/HaoZai000/NexioSchedule?style=flat-square&color=blue)](https://github.com/HaoZai000/NexioSchedule/releases/latest) #### 一起交流与讨论:加入 [QQ频道](https://pd.qq.com/s/cfwkl5q9q?b=9) · [加入QQ群【Nexio课程表交流群】](https://qun.qq.com/universal-share/share?ac=1&authKey=WYfwJ8DnrMhTZKqVb3gcvB6DS2vUReemmQ3e5EnjKFLdErKvpfychIOGHbtG7ZJR&busi_data=eyJncm91cENvZGUiOiIxMDAxNTUxNzQxIiwidG9rZW4iOiJTQnFRNjJqUHlic0p5VVcySDBBSTFJazY0TU1udElDZlp6TjlCa3FXcmFKcjM5YUVxL2hFcktSb1FQcUtTWmt5IiwidWluIjoiNDM5MDg5NzAzIn0%3D&data=sPDFjZgIpm44b9AEDzaKAru_3W-z3w_t3XXP-N6O7DKkCSbdSyyZctJlzKDIbabYcLU7Qv8YeCKaJF_4rJYXtA&svctype=4&tempid=h5_group_info)

功能特性

课表视图 - 周视图课程表,支持多周快速切换与跳转 - 今日课程页面,展示当天课程列表及当前/下一节课信息 - 课程详情弹窗,查看完整课程信息 - 周末显示设置(不显示 / 仅周六 / 仅周日 / 周六与周日)

课程管理 - 添加、编辑、删除课程 - 支持自定义课程颜色 - 支持全周、单周、双周及自定义周次 - 课表节数设置(上午/下午/晚上节数自定义) - 课程时间设置(每节课起止时间自定义)

多课表管理 - 多课表创建与切换 - 课表重命名、删除、分享 - 开启新学期(复用当前课表设置,创建空课程新课表) - 课表文件夹分组:新建 / 移动 / 解散,点击文件夹原地展开折叠 - 首次使用或升级到本版本时,已有课表自动归入「默认文件夹」

导入导出 - 教务系统一键导入(WebView + JavaScript 脚本适配) - AI 文本导入(自然语言格式自动解析) - 课表文件导入(JSON / ICS / 拾光课程表格式) - 课表导出(JSON 格式完整数据导出)

排班课表 - 排班模式:多课表对比查看排班情况

课程提醒 - 课前提醒通知 - 次日课程提醒 - 超级岛 / 灵动岛通知展示(需 Shizuku 特权)

桌面小组件 - 课程预览小组件 - 今日课程小组件

数据同步 - WebDAV 云端备份与恢复

个性化 - 壁纸搭配自定义(卡片模糊、透明度、高度、圆角) - 深色模式适配 - 莫奈取色:页面背景、日期高亮与课程卡片跟随系统壁纸动态配色(Android 12 及以上,可在应用偏好设置中开启,关闭后恢复课程自定义颜色) - 桌面主题图标:提供透明单色图标层,支持 Android 13 及以上支持主题图标的启动器,需在系统桌面设置中开启 - 底栏切换轻震动,遵循应用触感反馈开关 - 应用偏好设置(主题模式、首页默认页、应用风格)

UI 特色 - HyperOS4 风格 UI(基于 MiUiX 组件库) - 液态玻璃(LiquidGlass)效果 - 连续曲率圆角(Squircle)裁剪 - 渐进模糊、边缘光效与平滑过渡动画

预览界面

主课程表 课表外观 添加课程
主课程表 课表外观 添加课程
教务导入 课程提醒 桌面小部件
---------- ---------- ----------
教务导入 课程提醒 桌面小部件

项目结构

androidApp/src/main/java/com/haooz/chedule/
├── ui/
│   ├── activities/            // 各功能页面(Activity / Compose Screen)
│   │   ├── MainActivity.kt              // 主页面 - 应用入口
│   │   ├── SwitchScheduleActivity.kt    // 切换课程表
│   │   ├── EducationalImportActivity.kt // 教务系统导入
│   │   ├── CourseManageScreen.kt        // 课程管理
│   │   ├── CourseTimeSettingsScreen.kt  // 课程时间设置
│   │   ├── CourseReminderScreen.kt      // 课程提醒设置
│   │   ├── WebDavSettingsScreen.kt      // WebDAV 同步设置
│   │   ├── PreferenceSettingsScreen.kt  // 偏好设置
│   │   ├── AiImportScreen.kt            // AI 文本导入
│   │   ├── BackupAndMigrationScreen.kt  // 备份与迁移
│   │   ├── LocalBackupScreen.kt         // 本地备份
│   │   ├── ChangelogScreen.kt           // 更新日志
│   │   ├── UpdateSettingsScreen.kt      // 应用更新设置
│   │   ├── AboutActivity.kt             // 关于页面
│   │   ├── AppreciateAuthorScreen.kt    // 赞赏作者
│   │   └── WidgetIntroScreen.kt         // 小组件介绍
│   ├── screens/               // 核心 Compose 页面
│   │   ├── MainScheduleScreen.kt        // 周课表主界面
│   │   ├── TodayScreen.kt               // 今日课程
│   │   ├── TodayAssistant.kt            // 今日助手
│   │   ├── ShiftScheduleScreen.kt       // 排班课表
│   │   ├── CourseDetailScreen.kt        // 课程详情
│   │   ├── AddCourseDialog.kt           // 添加课程
│   │   ├── AddEditCourseBottomSheet.kt  // 添加/编辑课程 BottomSheet
│   │   ├── CourseEditScreen.kt          // 课程编辑
│   │   ├── CustomizeScheduleScreen.kt   // 课表外观自定义
│   │   ├── SchoolSelectionScreen.kt     // 学校选择
│   │   ├── TimeConfigEditScreen.kt      // 时间配置编辑
│   │   ├── SettingsScreen.kt            // 设置页
│   │   └── WebViewScreen.kt             // WebView 兼容
│   ├── components/           // 通用组件(TopBar / BottomBar / CourseCard / DayColumn / LiquidAddButton 等)
│   ├── basic/                 // 基础组件(渐隐顶栏 / 液态玻璃下拉菜单 / Overlay 弹窗 等)
│   ├── theme/                 // 主题(Color / Type / Theme)
│   ├── effects/               // 动效
│   │   ├── liquidglass/       // 液态玻璃
│   │   ├── miuix/             // MiUiX 特效
│   │   ├── edgelight/         // 边缘光效
│   │   └── background/        // HyperOS 背景特效
│   ├── web/                   // WebView 兼容与 JS 桥接
│   ├── data/                  // UI 层数据(更新日志 / 赞赏数据)
│   └── utils/                 // 工具(更新检查 / 主题工具 / 边缘滚动 等)
├── data/                      // 数据层
│   ├── Course.kt / TimeConfig.kt / Combination.kt / AppearanceConfig.kt
│   ├── CourseRepository.kt    // 课程数据仓库
│   ├── WebDavManager.kt       // WebDAV 同步管理
│   ├── SyncManager.kt         // 同步管理器
│   ├── StatsReporter.kt       // 统计上报
│   └── school/                // 教务系统适配(学校 / 脚本仓库)
├── viewmodel/                 // 状态管理
│   ├── CourseViewModel.kt     // 课程 ViewModel
│   ├── ScheduleViewModel.kt   // 多课表管理 ViewModel
│   ├── ShiftViewModel.kt      // 排班 ViewModel
│   └── SettingsViewModel.kt   // 设置 ViewModel
├── reminder/                  // 课程提醒(闹钟 / 通知 / 岛区跳转 / 组件事件接收器)
├── widget/                    // 桌面小组件(课程预览 / 今日课程,含 4x7 与标准尺寸)
├── shizuku/                   // Shizuku 特权服务

技术栈

  • 语言: Kotlin
  • UI 框架: Jetpack Compose + Material3
  • UI 组件: MiUiX
  • 圆角形状: Kyant Shapes
  • 数据存储: SharedPreferences + Gson
  • 网络同步: WebDAV
  • 脚本引擎: Rhino (JavaScript)
  • 最低支持: Android 12 (API 31)

特别致谢

项目 作者
Miuix Yukonga
Capsule Kyant0
OkHttp Square
warehouse XingHeYuZhuan
Shizuku RikkaApps
Backdrop Kyant0

开源协议

本项目采用 GNU Affero General Public License v3.0(AGPL-3.0)开源。

允许自由使用、学习、修改及商业分发;若通过网络向他人提供本应用或修改版,须同时提供完整对应源代码。协议全文见 LICENSE,中文摘要与带目录的在线版本见官网 开源协议页。

免责声明

本项目按「现状」提供,作者不承担因使用本软件而产生的任何直接或间接损失。请自行评估并遵守 AGPL-3.0 的各项条款。

📈 近 7 天 Star 趋势

每日新增 Star(柱)与累计 Star(线)· 数据来自 GitHub

🏆 排名变化趋势

在各榜单中的排名历史(数字越小越靠前)

📋 历史上榜记录

每次快照的详细数据
日期 榜单 排名 周期新增 总 STAR