Skip to content

GuGuGuGun/english__app

Repository files navigation

不爱背单词(Android)

离线优先的英语背词应用,覆盖学习、查词、词书管理与 AI 增强能力(可选)。

当前版本:1.2

功能特性

  • 学习模块:认词/拼写双模式,基于 SM2 调度,支持 V3 稳定 / V4 验证算法切换。
  • 查词模块:本地词典检索(英->中 / 中->英)与词条详情展示。
  • 词书模块:内置双词库(wordbook_full_from_e2c.json + wordbook_full.json)+ 自定义导入(TXT/CSV/自适应 JSON,兼容 maimemo-export word,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

快速开始

  1. 在项目根目录创建 local.properties(指向本机 Android SDK):
sdk.dir=E:\\android_sdk
  1. 设置 JDK(PowerShell 示例):
$env:JAVA_HOME = "E:\\java_17"
$env:Path = "$env:JAVA_HOME\\bin;" + $env:Path
  1. 构建 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 功能配置(可选)

入口:我的 -> 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/             # 版本目录与构建配置

更新日志

2026-03-24

  • 优化:修改部分表述。

2026-03-10

  • 新增:新增每日打卡功能。

2026-02-20

  • 调整:应用名称更换为“不爱背单词”(启动器显示名已同步更新)。
  • 调整:应用版本号升级至 1.2
  • 新增:ML增强算法(依旧是实验性)。
  • 新增:加入规划单词功能,开启后不再自动推送新单词,而是根据用户规划进行学习。
  • 修复:修复了一次性传入了过多 word_id 参数,超过 SQLite 单条语句变量上限的问题
  • 优化:将单词显示更改为自适应字体,根据内容长度自动调整字体大小,避免长单词显示不全。

2026-02-19

  • 调整:内置词库升级为双来源(wordbook_full_from_e2c.json + wordbook_full.json),启动后会生成两本预置词书。
  • 优化:大词库同步改为分块批量查重与批量写入,减少逐词数据库往返,提升启动阶段导入性能。
  • 优化:学习队列改为单次快照构建(同步返回队列与到期复习数),并将查词进度查询由逐词拉取改为批量映射,降低高频路径数据库开销。

2026-02-18

  • 新增:预置词书。
  • 新增:词书导入支持自适应 JSON 解析(顶层数组 / data 数组 / data 单对象)。
  • 新增:发音实验室支持来源切换(Free Dictionary / Youdao)与认词模式新词自动发音开关。
  • 调整:认词模式自动发音改为“仅在点击认识/模糊/不认识并切到新卡片后触发”,切回学习页不再触发发音。
  • 新增:学习卡片背面支持纵向拖动滚动,长内容可完整浏览。
  • 新增:学习卡片背面增加独立区块展示 短语 / 近义词 / 同根词,并按内容长度自适应展示(不再截断)。
  • 新增:词库解析与落库补齐 phrases/synonyms/relWords 独立字段,并补充数据库迁移到 v10
  • 测试:补充 WordFileParser 的 JSON 解析单元测试用例。

2026-02-17

  • 新增:发音实验室开关与单词发音链路(Free Dictionary API),学习页/查词页可按配置显示并播放发音。
  • 优化:重构UI和动画。
  • 新增:算法实验室增加“新词打乱记忆”开关,开启后新词将随机穿插进学习队列。
  • 新增:查词支持中文检索(可按中文释义匹配对应英文词条)。
  • 新增:查词详情在 AI 增强启用并配置后自动生成“AI 中文翻译(含词性)”,并支持手动重试/刷新。

2026-02-16

  • 调整:认词模式下 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。

2026-02-15

  • 优化:学习页手势引导“不再提示”选项,知道了仅关闭本次,不再提示会持久关闭。
  • 新增:未来 7 天预测来源展示(缓存命中/实时计算 + 耗时)、高压预警与可访问性语义增强。
  • 新增:学习页手势,左滑标记为太简单,右滑加入生词本。
  • 调整:认词模式下 AI 入口改为独立新页面,例句生成与助记技巧统一在该页面展示(从灯泡进入)。
  • 优化:查词页长难句解析分区卡片支持内部滚动,避免解析内容过长被遮挡。
  • 修复:真实 maimemo-export 样本中“释义含换行”被拆成多词的问题,新增引号内换行与续行合并解析。
  • 测试:补充 Forecast/Gesture/StatsCalendar 相关测试源码与 maimemo-export 解析单元测试覆盖。

2026-02-14

  • 新增:AI 基础设施与“AI 实验室”入口(BYOK 配置、连通性测试、缓存表与安全存储)。
  • 新增:学习页 AI 例句/助记入口,查词页长难句解析(输入超过 20 字符自动触发)。
  • 新增:词书导入兼容 maimemo-export 样式 CSV(word,meaning 连续词流,支持引号与释义内逗号)。
  • 优化:AI 卡片统一“AI 生成”标识、风险提示入口与免责声明展示。
  • 优化:AI 请求弱网治理(超时/域名解析/连接失败/429/5xx 一次重试)与错误提示映射。
  • 测试:补齐 AI 相关单元测试、仪器测试与 UI 测试,并产出 Debug 包。

2026-02-13

  • 修复:切换到自定义词库后,在认词模式点击“不认识”导致“还剩单词个数”反而增加的问题。
  • 新增:跨词库已学习进度同步。导入或补充词库后,若存在同词条历史学习记录,会自动同步为已学习状态。

许可证

本项目基于 LICENSE 文件进行授权。

说明与边界

  • 核心学习能力可离线运行。
  • AI 功能需要联网并由用户自备 API Key。
  • AI 生成内容仅供学习参考,请结合教材自行甄别。
  • 本项目属于vibe coding

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages