recite.bdfz.net 的原生 Android 客户端。不是 WebView 壳,也不是网页端改版。
- Kotlin + Jetpack Compose 原生界面
- 78 篇高考古诗文随 APK 打包,断网可读
- 通读、填空、理解、默写、测验五阶段离线学习
- 当前阶段主卡 + 纵向五阶路径,完成、当前与锁定状态清晰分离
- Room 本地进度库与幂等同步 outbox
- WorkManager 在网络恢复后同步至 BDFZ User Center
- Seiue 或既有 BDFZ 用户名登录;首次 Seiue 登录自动建立 User Center 帐号
- 原创八段位成长体系;升至殿堂、巅峰后自动切换金色与紫青头像框
- 原生今日榜与总榜;服务端从已同步进度计算段位值,客户端不能自报分数
- App 内原生反馈,服务端保存后通过既有 Telegram 路由通知维护者
- 用户进度、学习记录与反馈统一进入
my.bdfz.net;站点与 App 后端统一进入pulse.bdfz.net - 手机底部导航;平板导航栏与篇目/练习双栏
- R2 直装版内置受校验更新;Play 版不申请侧载权限
| 手机目录 | 五阶核心 |
|---|---|
![]() |
![]() |
| 纵向五阶路径 | 原生排行榜 |
|---|---|
![]() |
![]() |
| 平板双栏 |
|---|
![]() |
- Android Gradle Plugin 9.2.1
- Gradle 9.6.1
- JDK 17
- Kotlin 2.3.10(AGP 内建 Kotlin)
- Jetpack Compose BOM 2026.06.00
- compileSdk / targetSdk 37,minSdk 23
- Room 2.8.4、WorkManager 2.11.2、OkHttp 5.4.0
- 排行服务:Cloudflare Workers + D1,Wrangler 4.115.0、TypeScript 7.0.2
export ANDROID_USER_HOME=/private/tmp/recite-android-home
export GRADLE_USER_HOME=/private/tmp/recite-gradle-home
./gradlew :app:testDirectDebugUnitTest :app:assembleDirectDebug直装调试 APK:
app/build/outputs/apk/direct/debug/app-direct-debug.apk
发布构建优先读取以下环境变量,值不得写入仓库:
RECITE_ANDROID_KEYSTORE_PATH
RECITE_ANDROID_KEYSTORE_PASSWORD
RECITE_ANDROID_KEY_ALIAS
RECITE_ANDROID_KEY_PASSWORD
未配置专用变量时,构建会使用现有 BDFZ_ANDROID_KEYSTORE_* 组织签名变量。
./gradlew :app:assembleDirectRelease :app:bundlePlayRelease| 通道 | applicationId | 更新方式 |
|---|---|---|
| R2 直装 | net.bdfz.recite.direct |
img.bdfz.net 第一方清单 + 内容寻址 APK |
| Google Play | net.bdfz.recite |
Play 商店;无 REQUEST_INSTALL_PACKAGES |
直装版与 Play 版故意使用不同 package,避免 Google Play 签名与站外签名互相破坏升级连续性。
当前公开版本:v0.1.1。直装 APK 也可从 第一方 R2 地址 获取;安装前可用 latest.json 核对版本与 SHA-256。
代码采用 MIT License。app/src/main/assets 内的语料与试题不自动适用 MIT,权利归原始权利人。




