DriverTest 驾考知识卡片学习助手 —— 一款基于 Jetpack Compose 的现代 Android 学习APP

DriverTest 驾考知识卡片学习助手 ------ 一款基于 Jetpack Compose 的现代 Android 学习工具

项目简介

DriverTest 是一款专为驾照理论考试打造的 Android 知识卡片学习应用。它采用间隔复习法 ,通过碎片化时间帮助用户高效记忆驾考知识点。应用支持手动输入、拍照 OCR 识别、AI 智能生成三种创建卡片的方式,结合现代化的 Material 3 设计,带来流畅的学习体验。

🔗 开源地址: https://github.com/cwh1234/driver_app


为什么做这个项目?

考驾照是很多人都会经历的一步,而科目一、科目四的理论考试往往需要记忆大量交通法规、交通标志、安全驾驶等知识点。传统的刷题 App 虽然题库庞大,但缺乏个性化、可定制的复习体验

DriverTest 的核心理念是:

  • 📝 主动构建知识体系 ------ 自己创建卡片的过程本身就是一次深度记忆
  • 🤖 AI 辅助内容生成 ------ 接入 DeepSeek 大模型,输入关键词即可自动生成结构化知识点
  • 📷 OCR 文字识别 ------ 拍照教材、截图驾考宝典,自动提取文字转为卡片
  • 🔁 间隔复习算法 ------ 基于掌握程度动态调整复习计划,让遗忘曲线为你所用

核心功能一览

1. 三种卡片创建方式

方式 说明
✍️ 手动输入 传统方式,填入标题+内容,适合已有笔记
📷 拍照 OCR 利用 Google ML Kit 中文识别,拍教材/截图自动提取文字
🤖 AI 搜索 输入关键词(如"高速公路限速规定"),DeepSeek AI 自动生成结构化卡片

2. 智能学习系统

  • 翻转卡片交互设计 ------ 点击卡片查看答案,模拟真实记忆检索
  • 三档掌握度标记:不熟悉 🔴 / 模糊 🟡 / 掌握 🟢
  • 基于掌握程度的间隔复习算法,不熟悉的卡片高频出现,已掌握的卡片逐渐拉长间隔
  • 每日自动汇总需要复习的卡片数量

3. 学习统计仪表盘

  • 📊 总卡片数、掌握率、今日复习量、连续学习天数 ------ 四个核心指标一目了然
  • 📈 每日学习进度柱状图,直观追踪复习趋势
  • 📋 每张卡片的详细复习历史记录

4. 个性化设置

  • 🔑 自定义 DeepSeek API Key(支持自备 Key)
  • 🔔 复习提醒通知(可选)
  • 🗑️ 数据导入导出与清空管理

技术架构

本项目采用 MVVM + Repository 架构,结合 Jetpack Compose 声明式 UI,整体技术栈如下:

类别 技术选型 说明
语言 Kotlin 100% Kotlin
UI Jetpack Compose + Material 3 声明式 UI,Material You 设计
架构 MVVM + Repository Pattern 清晰的分层架构
依赖注入 Hilt Google 推荐的 DI 方案
本地存储 Room SQLite 抽象层,支持 Flow 响应式查询
网络 Retrofit + OkHttp 调用 DeepSeek API
OCR Google ML Kit 中文文字识别,离线可用
摄像头 CameraX 拍照 OCR 功能
图片加载 Coil Kotlin 协程友好的图片加载库
导航 Navigation Compose 类型安全的声明式导航
JSON Gson 序列化/反序列化

项目结构

复制代码
app/src/main/java/com/drivertest/app/
├── data/
│   ├── local/          # Room 数据库、DAO、实体
│   ├── remote/         # DeepSeek API 服务、DTO、拦截器
│   └── repository/     # 数据仓库层(CardRepository、StatsRepository)
├── di/                 # Hilt 依赖注入模块(AppModule、DatabaseModule、NetworkModule)
├── domain/model/       # 领域模型(CardSource、ReviewStatus、StatsSummary 等)
├── ocr/                # ML Kit OCR 处理器(中文识别)
├── ui/
│   ├── add/            # 添加卡片页(文本/OCR/AI 三合一)
│   ├── components/     # 通用 UI 组件(EmptyStateView、ErrorDialog 等)
│   ├── learn/          # 学习/复习页(翻转卡片 + 动画)
│   ├── navigation/     # Compose Navigation 导航图
│   ├── settings/       # 设置页(API Key、通知、数据管理)
│   ├── stats/          # 统计页(概览卡片 + 柱状图)
│   └── theme/          # Material 3 主题(动态取色支持)
└── util/               # 工具类

项目共约 50 个 Kotlin 源文件 ,总代码量约 3800 行,结构清晰,非常适合学习 Compose 多页面应用的架构设计。


技术亮点

1. DeepSeek AI 集成

通过 Retrofit 调用 DeepSeek Chat API,发送精心设计的 System Prompt,让 AI 以结构化 JSON 格式返回驾考知识点:

kotlin 复制代码
interface DeepSeekApiService {
    @POST("chat/completions")
    suspend fun chatCompletion(@Body request: DeepSeekRequest): DeepSeekResponse
}

使用 API Key 拦截器自动为每个请求附加认证信息,支持用户在设置页面动态配置 Key。

2. Google ML Kit 中文 OCR

利用 Google ML Kit 的 ChineseTextRecognizerOptions,实现离线中文文字识别:

kotlin 复制代码
private val recognizer = TextRecognition.getClient(
    ChineseTextRecognizerOptions.Builder().build()
)

拍照后自动调用 OCR 引擎提取文字,结合协程在 IO 线程异步处理,UI 层通过 StateFlow 响应式更新结果。

3. 间隔复习算法

复习系统核心逻辑:每张卡片复习后标记掌握度,系统根据掌握度计算下次复习时间:

  • 不熟悉 → 当天再次出现
  • 模糊 → 间隔 1-3 天
  • 掌握 → 间隔 3-7 天或更长

每日自动筛选到期卡片,形成当天的复习任务队列。

4. Compose 声明式 UI + Material 3

全量使用 Compose 构建 UI,包括:

  • LazyColumn 实现卡片列表高性能滚动
  • AnimatedVisibility 实现卡片翻转动画
  • Canvas 绘制每日学习进度柱状图
  • Material 3 动态取色(Dynamic Color),自适应系统壁纸色调

快速上手

环境要求

  • Android Studio Hedgehog (2023.1.1) 或更高
  • JDK 17
  • Gradle 8.5+
  • Android SDK 34

构建步骤

bash 复制代码
# 1. 克隆仓库
git clone https://github.com/cwh1234/driver_app.git
cd driver_app

# 2. 构建 Debug APK
./gradlew assembleDebug

# 3. 安装到设备
./gradlew installDebug

也可直接用 Android Studio 打开项目,点击 Run ▶️ 一键运行。

配置 DeepSeek API Key

进入应用内「设置」页面,输入你的 DeepSeek API Key 即可启用 AI 搜索功能。不配置 Key 也不影响手动输入和 OCR 功能的使用。


下载体验

📦 最新 APK 请到 GitHub Releases 页面下载 app-release.apk,直接在 Android 设备安装体验。

系统要求:Android 8.0 (API 26) 及以上


后续规划

  • 科目一/四题库导入,一键生成复习卡片
  • 交通标志图示识别练习
  • 错题本自动汇总
  • 桌面小组件(Widget),桌面一键复习
  • 多设备数据同步
  • 模拟考试模式

开源与贡献

本项目采用 MIT License 开源,代码完全开放,欢迎大家:

  • Star 支持项目
  • 🐛 提交 Issue 反馈问题或建议
  • 🔧 提交 Pull Request 贡献代码
  • 📢 分享给正在备考驾照的朋友

🔗 GitHub:https://github.com/cwh1234/driver_app


写在最后

DriverTest 是一个小而美的驾考学习工具,它既是一个实用的备考助手,也是一个不错的 Android 现代开发参考项目。如果你正在学习 Jetpack Compose、Room、Hilt、ML Kit 等技术,这个项目的源码应该能给你一些启发。

当然,它也还有不少可以完善的地方,欢迎大家一起参与,让这个项目变得更好!🚗💨


如果你觉得这个项目对你有帮助,别忘了去 GitHub 点个 Star ⭐!

相关推荐
安卓修改大师1 小时前
安卓修改大师APK控件修改实战教程
android
星幻元宇VR1 小时前
公共安全主题展厅设备【防洪防汛安全科普系统】
科技·学习·安全
阿pin1 小时前
Android随笔-Zygote是什么?
android·zygote
小虎牙0071 小时前
Android kotlin图片库Coil源码详解
android·前端
AI科技星2 小时前
32维超复数流形中意识信息场与物质耦合的拓扑动力学
人工智能·学习·算法·数据挖掘·回归·乖乖数学·全域数学
鱼很腾apoc2 小时前
【Linux】第7期 进程间通信 (IPC) 详解:管道 (匿名 / 命名) + System V
linux·服务器·c语言·学习·进程间通信·ipc
AFinalStone2 小时前
Android 7系统网络(一)全景图与调用链路概览
android·网络·frameworks
用户86022504674723 小时前
Android DEX 内存 Dump 全流程实战:从 APK 提取到无特征内存盲扫
android
科技大视界3 小时前
大学生专业课笔记本用哪款?来酷Air14酷睿版14英寸轻薄笔记本电脑适合学习任务多的人
学习