InterviewMate 面试助手
InterviewMate 是一款专为面试知识复习设计的免费开源 Android 应用,无任何广告,基于艾宾浩斯遗忘曲线 科学安排复习计划,帮助用户高效记忆和巩固面试知识点。码云仓库地址
通过网盘分享的文件:面试助手.apk
链接: https://pan.baidu.com/s/17BDxz-8x2vvWjmizaC9SkQ?pwd=urrq 提取码: urrq
--来自百度网盘超级会员v5的分享




✨ 核心功能
📚 知识库管理
- 分类管理:按技术栈或主题组织面试题(如 Kotlin、Java、算法、设计模式等)
- 题目管理:支持添加、编辑、搜索知识点
- 难度标记:每个知识点可设置难度等级
🧠 智能复习系统
- 艾宾浩斯遗忘曲线:自动根据记忆规律安排复习时间
- 三种评级:记住(Remember)、模糊(Fuzzy)、忘记(Forgot),精准追踪记忆状态
- 复习状态:新知识(NEW) → 学习中(LEARNING) → 已掌握(GRADUATED)
⏰ 复习提醒
- 每日定时提醒:自定义提醒时间,避免遗忘
- 到期统计:首页实时显示待复习数量
💾 数据备份
- 导出备份:将知识库导出为 JSON 文件
- 导入恢复:支持合并内容(MERGE)和完整恢复(RESTORE)两种模式
- 数据迁移:换机或备份恢复无忧
🛠 技术架构
| 层级 | 技术选型 |
|---|---|
| UI 框架 | Jetpack Compose + Material 3 |
| 架构模式 | MVVM + Clean Architecture |
| 依赖注入 | Hilt |
| 本地存储 | Room + DataStore |
| 异步处理 | Kotlin Coroutines + Flow |
| 导航 | Navigation Compose |
| 序列化 | Kotlinx Serialization |
核心模块
data/local/:Room 数据库、实体类、DAOdata/repository/:数据仓库层data/backup/:备份/恢复逻辑data/reminder/:提醒通知系统data/seed/:初始数据播种domain/:遗忘曲线算法引擎ui/:Compose 界面与 ViewModel
🚀 快速开始
环境要求
- JDK 21
- Android SDK (compileSdk 36)
- Gradle 8.7+
- Android Studio 2024.x
编译运行
bash
# 1. 克隆仓库
git clone https://gitee.com/infinite_bitterness_covers_god/interview-mate.git
# 2. 进入项目目录
cd interview-mate
# 3. 构建并运行
./gradlew assembleDebug
运行测试
bash
# 单元测试
./gradlew test
# 界面测试
./gradlew connectedAndroidTest
📖 使用指南
1. 添加分类
在「题库」页面点击添加按钮,创建新的分类(如「剑指 Offer」「Android 进阶」等)。
2. 添加知识点
选择分类后,点击右下角按钮添加面试题。支持 Markdown 格式的答案,包含思路、代码实现(Kotlin/Java)、复杂度分析。
3. 开始学习
在知识点详情页点击「开始学习」,系统会创建复习进度。
4. 每日复习
进入「复习」页面,查看待复习的知识点。点击显示答案,根据记忆情况选择评级,系统自动安排下次复习时间。
5. 设置提醒
在「设置」页面开启每日提醒,设定提醒时间。
6. 数据备份
在「设置」页面可导出知识库为 JSON 文件,或从备份文件恢复数据。
📂 项目结构
app/src/main/java/com/example/interviewmate/
├── data/
│ ├── backup/ # 备份导入导出
│ ├── local/ # Room 数据库、DAO、实体
│ ├── reminder/ # 提醒通知、开机广播
│ ├── repository/ # 数据仓库
│ ├── seed/ # 初始数据
│ └── settings/ # 用户设置存储
├── di/ # Hilt 依赖注入模块
├── domain/ # 业务逻辑(遗忘曲线引擎)
└── ui/
├── home/ # 首页
├── library/ # 题库、知识点列表与详情
├── review/ # 复习流程
├── settings/ # 设置、导入导出
├── components/ # 通用组件
├── navigation/ # 路由配置
└── theme/ # 主题样式
🧪 测试覆盖
项目包含以下测试:
- EbbinghausEngineTest:验证遗忘曲线算法逻辑(间隔序列、状态流转)
- KnowledgeRepositoryTest:测试数据仓库层的所有操作
- BackupManagerTest:测试备份导入导出的各种场景
bash
./gradlew test # 运行单元测试
📝 开源协议
本项目基于 MIT License 开源。
🤝 贡献指南
欢迎通过以下方式参与贡献:
- 提交 Issue 反馈问题或建议
- 提交 Pull Request 修复 Bug 或添加功能
- 完善题库内容(参考 PLAN.md 中的「剑指 Offer 题库」分批计划)
🙏 致谢
- Jetpack Compose - 现代 Android UI 工具包
- Room - 本地数据库
- Hilt - 依赖注入
- Kotlinx Serialization - JSON 序列化
InterviewMate - 让面试复习更科学、更高效 🎯