一款基于 Jetpack Compose 的 Android 课程表应用,支持自定义课表外观、教务系统导入、多格式课表导入、WebDAV 同步、桌面小组件等功能。
课表视图
课程管理
多课表管理
导入导出
排班课表
课程提醒
桌面小组件
数据同步
个性化
UI 特色
| 主课程表 | 课表外观 | 添加课程 |
|---|---|---|
![]() | ![]() | ![]() |
| 教务导入 | 课程提醒 | 桌面小部件 |
| ---------- | ---------- | ---------- |
![]() | ![]() | ![]() |
app/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 特权服务
本项目采用 GNU Affero General Public License v3.0(AGPL-3.0)开源。
允许自由使用、学习、修改及商业分发;若通过网络向他人提供本应用或修改版,须同时提供完整对应源代码。协议全文见 LICENSE,中文摘要与带目录的在线版本见官网 开源协议页。
本项目按「现状」提供,作者不承担因使用本软件而产生的任何直接或间接损失。请自行评估并遵守 AGPL-3.0 的各项条款。
一款基于 Jetpack Compose 的 Android 课程表应用,支持自定义课表外观、教务系统导入、多格式课表导入、WebDAV 同步、桌面小组件等功能。
课表视图
课程管理
多课表管理
导入导出
排班课表
课程提醒
桌面小组件
数据同步
个性化
UI 特色
| 主课程表 | 课表外观 | 添加课程 |
|---|---|---|
![]() | ![]() | ![]() |
| 教务导入 | 课程提醒 | 桌面小部件 |
| ---------- | ---------- | ---------- |
![]() | ![]() | ![]() |
app/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 特权服务
本项目采用 GNU Affero General Public License v3.0(AGPL-3.0)开源。
允许自由使用、学习、修改及商业分发;若通过网络向他人提供本应用或修改版,须同时提供完整对应源代码。协议全文见 LICENSE,中文摘要与带目录的在线版本见官网 开源协议页。
本项目按「现状」提供,作者不承担因使用本软件而产生的任何直接或间接损失。请自行评估并遵守 AGPL-3.0 的各项条款。