Skip to content

Mathector 0.21.0

Choose a tag to compare

@SACO1F SACO1F released this 07 Oct 17:10
· 26 commits to main since this release

Mathector 0.21.0

发布日期:2026-10-08。原生 Android 高中数学题集 App,最低 Android 8.0。

本次改动

  • 新增完整题库 ZIP 备份与合并恢复。题库右上角“题库备份”和“我的 → 题库导入与导出”均可使用,通过系统文件选择器保存到下载文件夹、用户目录或云盘。卸载前保留 ZIP,重新安装后选择并导入即可继续使用。
  • 备份包含题干与子题、独立 LaTeX、分类、收藏/校对标记、AI 解答、可用原图、自定义知识点、题集顺序及文档设置。原图按内容去重,恢复时重建新图片路径和有效解答指纹;缺失原图会明确提示,其他数据保留。接口配置和 Key、应用偏好、后台任务及操作记录不进入备份,恢复不发起识别/解题请求。
  • 同编号题目与题集保留本机已有版本,重复导入不会重复添加;新题集可关联本机已有题目。导入前校验备份格式、版本、引用、路径、CRC 和图片 SHA-256,提供数量预览与取消操作。恢复失败回滚新增记录、知识点及原图。
  • 缩小题库顶部收录题目/待校对/收藏统计卡片:纵向内边距 12 dp、数字 24 sp、中文 11 sp,标准字号下高度约 68 dp;三列等宽,数字和下方中文沿同一中线居中,白天/黑夜主题适配。

格式、使用步骤与大小限制详见 题库备份说明。源码同步到公开仓库 SACO1F/Mathector,默认分支 main,版本标签 v0.21.0。

安装包

下载 Mathector-0.21.0-debug.apk。本版本为调试构建,与上一版相同签名,可覆盖安装并保留应用数据。

  • versionCode:21;versionName:0.21.0。
  • 大小:24,818,180 字节。
  • SHA-256:1A4C8D28AC4569F79222F34ABC914294B578DCCBFAFC1CE13EFAEF73D9B64025。
  • APK Signature Scheme v2 验证通过;数据库版本保持 4。

验证

Debug APK、Android 测试包、39 项单元测试和 lintDebug 均完成,单元测试 0 失败/0 错误,Lint 0 错误/20 项既有警告。初次构建 2 分 36 秒,数量限制统一后的最终增量构建 46 秒。

Android 模拟器 emulator-5554 的第一轮 6 项设备测试全部通过,31.313 秒完成;补测空库/缺失原图和移植恢复回归 2 项通过,6.971 秒完成,覆盖 7 个独立设备场景:

  • 在新建独立空数据库、新原图目录和独立知识点偏好中模拟重新安装,验证题干/LaTeX/分类/标记/解答/原图字节/自定义知识点/题集顺序及试卷设置恢复。共享原图只打包一次,有效解答重建指纹、旧解答不被误标为有效,接口偏好不变。
  • 合并导入保留本机已修改的题目与无关题目,新的题集仍能关联本机已有题目;再次导入跳过已有题目和题集,保留本机题集名及考试时间。
  • 非 ZIP、错误格式、不支持版本、越界路径、缺图及图片内容被改写的备份均在预览前拒绝,现有题库、知识点及文件保持原样。
  • 注入数据库写入失败,验证题目、题集和关联事务回滚,新增知识点及原图拷贝也回滚,原始图像保持可用。
  • 通过系统 CreateDocument/OpenDocument 合约验证备份保存、数量预览、取消、恢复已删除的临时题目和题集、重复导入,以及“我的”页面的文件选择取消。测试使用受控文件 URI 和选择器结果,不上传实际云盘;确认单题自动解题开关恢复后没有创建解题任务。
  • 两种主题下验证统计卡片高度不超过 74 dp、三列等宽、数字和中文文本中心对齐、数量正确;题库备份窗口及我的页面入口可用。
  • 空题库可导出并恢复;原图已丢失时明确统计缺失数量,题干、独立公式、已有解答、题集与文档设置仍能恢复。

收集并核对 6 张当前版本界面截图,公开展示白天/黑夜题库、我的备份卡片及黑夜圆角备份窗口。导入预览的全屏截图含打开动画中间帧,仅留在本机验证产物中。公开截图使用临时数学题目和应用示例,不提交题库备份 ZIP 或接口数据。

模拟器覆盖安装后核对 versionCode=21/versionName=0.21.0,签名与上一版相同。恢复验证以独立数据存储和新图像路径模拟重装;设备操作限定为 emulator-5554。本次新增手动备份能力,账户和自动同步仍属于后续规划,既有其他功能边界见 README。