本文最后更新于163 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
考核题目
「课程表 + 作业提醒」Android 原生 App 综合实战
(建议完成周期:1周,个人项目,满分 100)
一、项目背景
学生需要一款轻量级工具,既能按周查看课程,又能管理对应作业并收到截止提醒。请基于 Android 原生技术栈,实现如下需求。
二、必做功能(60 分)
- 课程表视图(25 分)
1.1 周一到周日 7×n 网格展示,每天 12 节课,支持上下滚动。(5 分)
1.2 左右滑动切换“上一周 / 下一周”,使用 ViewPager2 + Fragment,缓存 3 页。(8 分)
1.3 网格项显示课程名称、教室、老师,背景为自定义颜色。(7 分)
1.4 无数据时显示“本周暂无课程”占位图。(5 分) - 课程管理(15 分)
2.1 悬浮“+”按钮进入“添加课程”页,字段:名称、教室、老师、开始节次、持续节数、颜色。(8 分)
2.2 使用 ColorPicker 自定义颜色并实时预览。(4 分)
2.3 同一时间段只能存在一门课程,冲突提示并禁止保存。(3 分) - 作业列表(15 分)
3.1 底部导航或抽屉进入“作业”页,列表展示:课程名、作业标题、截止时间、是否完成。(8 分)
3.2 支持“添加作业”:选择已有课程、输入标题与截止时间。(4 分)
3.3 左滑删除、点击勾选完成状态,状态持久化。(3 分) - 通知提醒(10 分)
4.1 应用退出后仍可收到提醒,使用 AlarmManager + BroadcastReceiver。(5 分)
4.2 截止前 1 天 19:00 弹出通知,点击通知打开作业详情。(5 分)
三、技术硬性要求(20 分)
a. 使用 Room 数据库,建立“一对多”关系:Course 1-N Homework。(5 分)
b. 所有数据库操作放在子线程(协程/RxJava/Executor)。(5 分)
c. 颜色选择需自定义 ColorPicker,禁止使用系统自带 ColorChooser。(5 分)
d. 最低兼容 Android 8.0(API 26),targetSdk 35,使用 AndroidX 全家桶。(5 分)
四、UI/UX 加分项(10 分)
• Material You 动态取色或夜间模式切换。(3 分)
• 周次指示器动画(如滚动条或抛物线切换)。(3 分)
• 作业按“今天/明天/未来/已过期”智能分组。(4 分)
五、代码与文档(10 分)
- 提交完整 Git 记录,commit 信息规范(英文,动词开头)。(4 分)
- README.md 包含:运行截图、功能清单、关键类说明、测试账号/数据。(4 分)
- 关键代码注释率 ≥ 20%。(2 分)
六、考核方式
- 源码 + APK 上传至 GitHub Classroom 指定仓库,截止 2025-12-29 20:59。
- 现场 5 min Demo:教师随机挑选功能点现场操作,不能闪退。
- 反问答:教师抽查 Room 表结构、通知实现、ViewPager2 缓存机制。答错扣 2–5 分。
七、评分细则速查
功能 60 + 技术 20 + 加分 10 + 代码 10 = 100
≥ 90 优秀,80–89 良好,70–79 及格,<70 考虑去留。
八、注意事项
- 禁止直接复制 GitHub 现有“课程表”项目,代码相似度 > 30 % 即 0 分。
- 若使用 Jetpack Compose,可额外 +5 分(需提前报备)。
- 作业提醒通知必须适配 Android 13+ 运行时权限,否则该项 0 分。
- 提交 APK 须签名,debug 包禁止上架。
—— 祝同学们编码愉快,按时交付!








