一款本地优先的 Android 课程表应用,支持 Excel/文本导入、多课表管理、日程列表、课程提醒、桌面小组件、日历导出、加密备份和历史恢复。
- 支持
.xls与.xlsx,可识别常见表头别名和前置说明行。 - 可选择多家 AI 供应商预设并使用自己的 API Key,将学校导出的 Excel 课表转换为软件模板;支持模型连接检测、保存供应商配置及可选的本机加密 Key 保存。结果需本地校验并由用户确认后导入。
- 重复导入时合并周次,并保留用户设置的颜色与备注。
- 课表、节次时间、学期设置、当前课表和每张课表的视图模式均持久化到本机。
- 使用原子文件替换、上一版本备份和串行写入降低数据损坏风险。
- 主文件与回退副本同时损坏时进入只读保护,只有严格校验的完整备份恢复成功后才解除。
- 支持完整 JSON 备份、严格校验后的恢复以及不可恢复的脱敏副本。
- 支持粘贴网页课表文本导入,并按当前学期周数补全缺省周次。
- 支持上课前 5/10/15/30 分钟本地提醒;重启、升级和系统时间变化后自动恢复,精确闹钟不可用时安全降级。
- 支持深浅色桌面小组件:默认 3 列×2 行显示今日课程,横向扩展到 4/5 列后以双栏显示今日与明日;课程名、教室和教师完整换行并可滚动查看。
- 今日小组件会在课程结束后自动隐藏该课,仅保留进行中和待开始课程。
- 支持统一的“学期安排”设置:停课周、周标签、整日停课、单课取消和补课可集中管理和编辑,设置后仍能在停课周正常左右切换;课表提示条可直接进入该页面。
- 周标签与日期调整原因会同步显示在课表和桌面小组件;网格、日程、提醒、小组件与 iCalendar 使用同一日期规则。
- 支持标准 iCalendar(
.ics)导出。 - 提供按日期分组的日程列表、本机最近 10 次自动快照以及恢复前差异预览。
- 支持每门课程单独开关提醒、覆盖提前时间、下课提醒,以及通知内“今天不再提醒/本周暂停”。
- 支持密码加密的便携备份、手动文本列映射和跨进程保留导入草稿。
- 多课表可复制、归档和恢复;归档课表不会参与提醒或小组件。
- 支持增强对比度,并提供脱敏诊断报告。
- 支持全屏自定义课表背景及可选可读遮罩;图片经压缩和元数据清理后仅存于本机私有目录,不进入备份。
- 长按桌面图标可快速查看今天或新增课程。
- 提供七天、五天、单日和月历四种响应式视图:单日视图支持左右滑动按天翻页(跨周自动衔接,顶部导航标注今日),月视图按月翻页并显示年月与本月上课节数;从月视图点日期进入单日视图后,返回手势回到月视图。四种视图均可点按空白节次快速添加课程。
- 顶部提供不占用网格空间的今日/下一节课摘要,并可按课程名、教师或教室本地搜索。
- 支持方向明确的周切换与详情动画,删除课程前确认,并可在提示条中撤销。
- 导入前按新增、合并、重复和冲突分类,可逐条选择;手工新增或编辑发生时间冲突时会二次确认。
- 课程、备份、提醒和日历在设备本地处理;仅在用户手动检查更新时访问 GitHub Releases,或在用户主动检测 AI 连接/确认转换后向所选接口发送请求。连接检测不发送课表,转换仅发送限量课表文本,不执行常驻联网。
- Android 8.0(API 26)或更高版本
- JDK 17
- Android SDK 35
- Gradle 9.1.0(项目已包含 Wrapper,无需单独安装 Gradle)
复制 local.properties.example 为 local.properties,填入本机 Android SDK 路径,然后运行:
pwsh -File .\scripts\build.ps1
pwsh -File .\scripts\pre-release-audit.ps1 -AllowDirtybuild.ps1 会在构建前验证 JDK 17,并只为本次 Gradle 子进程使用该 JDK;版本不符时给出明确提示,不会修改系统 Java、网络或代理配置。需要临时指定 JDK 时可使用 -JavaHome "JDK 17 安装目录"。
Release 构建默认启用 R8、资源收缩和语言资源裁剪。仓库不会提供签名材料,发布者应使用自己安全保管的密钥签名。
Windows 中文路径下不要通过 org.gradle.jvmargs 强制覆盖整个 Gradle 进程的 file.encoding;项目仅在 Java 编译任务中指定 UTF-8,Kotlin 源码由编译器按 UTF-8 读取,从而避免测试类路径被错误转码。
课程号、课程名、上课星期、开始节次、结束节次和上课周次。解析器也支持“课程代码”“课程名称”“星期”“周次”“教师”“教室”等常见别名。
- 仓库只包含源码和完全虚构的测试数据。
.gitignore排除签名密钥、本机 SDK 配置、构建产物、个人课表、备份和 Excel 文件。- Android 系统云备份和设备迁移均排除应用数据;换机请使用应用内“导出完整备份”。
- 请勿在 Issue、日志或提交中上传真实课表、完整备份、签名密钥或本机路径。
当前版本:3.4.37(versionCode 157);修复桌面小组件在切换系统深浅色后主题色滞留的问题。历史版本见 GitHub Releases。
- 每次推送和拉取请求运行 JVM 测试、Lint、Debug 构建及 Release 构建。
- API 34 UI 测试在拉取请求、手动触发和每周计划任务中运行;普通推送不启动托管模拟器,避免其偶发启动超时把
main错误标红。 - API 26/29 UI 测试每周运行,也可在 GitHub Actions 手动勾选完整旧版矩阵;正式发布前仍应在本地 API 34 模拟器完整回归。
- CI 不读取或引用签名密钥,只生成无签名/调试构建产物。
v3.4.37 签名 APK、版本说明和 SHA-256 校验值请从 GitHub Release v3.4.37 获取。
版本变更记录见 CHANGELOG.md。 后续维护、数据格式和发布检查见 docs/MAINTENANCE.md。