离线优先的英语背词应用,覆盖学习、查词、词书管理与 AI 增强能力(可选)。
当前版本:1.2
- 学习模块:认词/拼写双模式,基于 SM2 调度,支持 V3 稳定 / V4 验证算法切换。
- 查词模块:本地词典检索(英->中 / 中->英)与词条详情展示。
- 词书模块:内置双词库(
wordbook_full_from_e2c.json+wordbook_full.json)+ 自定义导入(TXT/CSV/自适应 JSON,兼容 maimemo-exportword,meaning连续流格式)。 - 发音实验室:内置词库音频优先,支持 Free Dictionary / Youdao 来源切换与认词模式自动发音。
- 我的模块:学习统计、备份恢复、学习设置。
- AI 实验室(可选):支持预设服务商与自定义 OpenAI 兼容
Base URL,提供例句生成、助记生成、长句解析,并采用 Cache First 降低重复请求。
- Kotlin + Jetpack Compose(Material 3)
- Room + KSP
- Coroutines + Flow
- DataStore
- Retrofit + OkHttp
- Jetpack Security(API Key 本地加密存储)
| 项目 | 要求 |
|---|---|
| JDK | 17 或 21(推荐 17) |
| Android SDK | Compile SDK 34 / Target SDK 34 / Min SDK 26 |
| 构建工具 | Gradle(当前仓库未内置 gradlew) |
- 在项目根目录创建
local.properties(指向本机 Android SDK):
sdk.dir=E:\\android_sdk- 设置 JDK(PowerShell 示例):
$env:JAVA_HOME = "E:\\java_17"
$env:Path = "$env:JAVA_HOME\\bin;" + $env:Path- 构建 Debug APK:
gradle --no-daemon :app:assembleDebug输出文件:app/build/outputs/apk/debug/app-debug.apk
编译 AndroidTest:
gradle :app:compileDebugAndroidTestKotlin --no-daemon执行全部连接测试(需设备或模拟器):
gradle connectedDebugAndroidTest --no-daemon仅执行 M6 验收测试:
gradle :app:connectedDebugAndroidTest "-Pandroid.testInstrumentationRunnerArguments.class=com.kaoyan.wordhelper.M6AcceptanceTest" --no-daemon入口:我的 -> AI 实验室
Base URL:填写服务根地址(例如https://openai.ai/v1),不要填写到chat/completions。模型名称:填写服务商实际可用模型 ID(例如gpt-5.2-chat-latest)。API Key:仅在本地加密存储,不上传到项目仓库。- 可通过“测试连接”验证配置是否生效。
app/
src/main/java/com/kaoyan/wordhelper/
data/ # 数据层(数据库、仓储、网络)
ml/ # 强化学习模块
ui/ # Compose 界面与状态管理
util/ # 工具类与通用能力
src/test/ # 单元测试
src/androidTest/ # 仪器/界面测试
gradle/ # 版本目录与构建配置
- 优化:修改部分表述。
- 新增:新增每日打卡功能。
- 调整:应用名称更换为“不爱背单词”(启动器显示名已同步更新)。
- 调整:应用版本号升级至
1.2。 - 新增:ML增强算法(依旧是实验性)。
- 新增:加入规划单词功能,开启后不再自动推送新单词,而是根据用户规划进行学习。
- 修复:修复了一次性传入了过多
word_id参数,超过 SQLite 单条语句变量上限的问题 - 优化:将单词显示更改为自适应字体,根据内容长度自动调整字体大小,避免长单词显示不全。
- 调整:内置词库升级为双来源(
wordbook_full_from_e2c.json+wordbook_full.json),启动后会生成两本预置词书。 - 优化:大词库同步改为分块批量查重与批量写入,减少逐词数据库往返,提升启动阶段导入性能。
- 优化:学习队列改为单次快照构建(同步返回队列与到期复习数),并将查词进度查询由逐词拉取改为批量映射,降低高频路径数据库开销。
- 新增:预置词书。
- 新增:词书导入支持自适应 JSON 解析(顶层数组 /
data数组 /data单对象)。 - 新增:发音实验室支持来源切换(Free Dictionary / Youdao)与认词模式新词自动发音开关。
- 调整:认词模式自动发音改为“仅在点击认识/模糊/不认识并切到新卡片后触发”,切回学习页不再触发发音。
- 新增:学习卡片背面支持纵向拖动滚动,长内容可完整浏览。
- 新增:学习卡片背面增加独立区块展示
短语 / 近义词 / 同根词,并按内容长度自适应展示(不再截断)。 - 新增:词库解析与落库补齐
phrases/synonyms/relWords独立字段,并补充数据库迁移到v10。 - 测试:补充
WordFileParser的 JSON 解析单元测试用例。
- 新增:发音实验室开关与单词发音链路(Free Dictionary API),学习页/查词页可按配置显示并播放发音。
- 优化:重构UI和动画。
- 新增:算法实验室增加“新词打乱记忆”开关,开启后新词将随机穿插进学习队列。
- 新增:查词支持中文检索(可按中文释义匹配对应英文词条)。
- 新增:查词详情在 AI 增强启用并配置后自动生成“AI 中文翻译(含词性)”,并支持手动重试/刷新。
- 调整:认词模式下 AI 灯泡按钮仅在 AI 已启用且已完成配置时显示;未配置时不再展示入口。
- 修复:认词模式长单词导致换行显示问题,改为按长度自适应字号并保持单行显示(超长时省略)。
- 新增:学习设置增加“算法版本”开关(V3 稳定 / V4 验证)。
- 新增:即时重试队列插入策略参数化(Legacy/V4),支持可控随机源与单元测试覆盖。
- 优化:认词模式接入 V4 隐性评分(响应时长 > 6 秒自动降级)。
- 优化:拼写模式在 V4 下改为“编辑距离主判定(0/1/2/>2)+ 提示/重试次级惩罚”。
- 优化:V4 掌握判定升级为 30天 + 4次 + EF>=2.3,并在启用 V4 时自动修正历史 MASTERED 状态。
- 测试:新增 ImmediateRetryQueuePlannerTest、SpellingEvaluatorTest、Sm2SchedulerTest,并更新 SpellingEvaluatorInstrumentedTest。
- 优化:学习页手势引导“
不再提示”选项,知道了仅关闭本次,不再提示会持久关闭。 - 新增:未来 7 天预测来源展示(
缓存命中/实时计算 + 耗时)、高压预警与可访问性语义增强。 - 新增:学习页手势,左滑标记为太简单,右滑加入生词本。
- 调整:认词模式下 AI 入口改为独立新页面,例句生成与助记技巧统一在该页面展示(从灯泡进入)。
- 优化:查词页长难句解析分区卡片支持内部滚动,避免解析内容过长被遮挡。
- 修复:真实 maimemo-export 样本中“释义含换行”被拆成多词的问题,新增引号内换行与续行合并解析。
- 测试:补充
Forecast/Gesture/StatsCalendar相关测试源码与 maimemo-export 解析单元测试覆盖。
- 新增:AI 基础设施与“AI 实验室”入口(BYOK 配置、连通性测试、缓存表与安全存储)。
- 新增:学习页 AI 例句/助记入口,查词页长难句解析(输入超过
20字符自动触发)。 - 新增:词书导入兼容 maimemo-export 样式 CSV(
word,meaning连续词流,支持引号与释义内逗号)。 - 优化:AI 卡片统一“AI 生成”标识、风险提示入口与免责声明展示。
- 优化:AI 请求弱网治理(超时/域名解析/连接失败/
429/5xx一次重试)与错误提示映射。 - 测试:补齐 AI 相关单元测试、仪器测试与 UI 测试,并产出 Debug 包。
- 修复:切换到自定义词库后,在认词模式点击“
不认识”导致“还剩单词个数”反而增加的问题。 - 新增:跨词库已学习进度同步。导入或补充词库后,若存在同词条历史学习记录,会自动同步为已学习状态。
本项目基于 LICENSE 文件进行授权。
- 核心学习能力可离线运行。
- AI 功能需要联网并由用户自备 API Key。
- AI 生成内容仅供学习参考,请结合教材自行甄别。
- 本项目属于vibe coding