Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 15:25
· 4 commits to main since this release

0.4.0 统一 Android SDK 的模型管理与翻译 API。应用创建一个 Foxlet 客户端,通过 models 准备、下载、验证和清理模型,通过 translator 翻译并管理内存驻留。

本次发布采用统一后的 API,不保留旧入口。发行附件由同一提交构建;发布流程要求构建与 Android 设备验收通过,设备结果见随包的 device-result.json。

本次 Android 功能验收使用 Android 15 / API 35 的 ARM64 模拟器。该结果不作为真机性能结论;历史设备基准的版本和口径保持原有标注。

破坏性迁移

本版不保留旧接口或兼容别名,宿主必须更新调用代码并重新编译:

  • FoxletEngine / BergamotEngine、EngineConfig、ModelCatalog、ThreadTuning、NonbreakingPrefixes 旧公开入口移除。
  • Foxlet.create(context, config) 与等价 DSL 统一配置目录、模型来源、网络参数、线程和驻留策略。
  • prepare、download、findUsable 返回同一种 InstalledModel,可直接传给翻译、验证和删除。
  • 关闭统一使用挂起式 shutdown;状态查询和模型卸载也使用 suspend,不再向应用暴露 Closeable/Future 生命周期接口。
  • 耗时操作统一使用协程,业务失败使用结构化异常;取消保持 CancellationException。

模型与翻译

  • prepare 优先使用本地最新可用模型,缺少时下载内置版本;LocalOnly 明确禁止联网。
  • 下载、续传、重试和本地复用共享结构化进度;Ready 只在校验与安装完成后发出。
  • 更新报告中的 ModelUpdate.target 非空,可以直接下载该精确版本。查询更新不会自动下载或删除模型。
  • 安装验证区分未检查、已验证、损坏、无法核验;删除与清理报告实际释放字节和部分失败。
  • 单字符串、列表和中转翻译共享 LocalModel、TextFormat;空列表不加载模型。
  • Threading.Fixed/Auto 与 ModelRetention.Idle/AfterRequest/UntilShutdown 代替分散的配置入口和魔法数。
  • 关闭协调客户端操作,等待不可中断的 native 批次结束;未确认释放的模型仍受磁盘占用保护。
  • Demo、基准工具和设备测试已迁移到新 API;保留既有模型身份算法、安装目录与 manifest 格式。

同进程仍只允许一个活动客户端,同一模型目录由单个应用进程管理。索引来源使用 HTTPS、SHA-256 和大小校验,尚未实现 Remote Settings 集合签名验证。翻译文本留在设备上;HTML 处理仍为实验能力。

发行构件

  • foxlet-v0.4.0.aar:默认 SDK,含 25 种语言的分句前缀表。
  • foxlet-v0.4.0-no-prefixes.aar:不含 LGPL-2.1 分句前缀数据,与默认版二选一。
  • foxlet-demo-v0.4.0.apk:Demo,使用开发签名。
  • SHA256SUMS、许可文本与 device-result.json:构件校验、来源和最终 APK 的设备验证记录。

支持 Android 9+、arm64-v8a;AAR 不携带模型权重、FLORES-200 语料或协程的传递依赖。发行门禁包括 JVM 回归、新 API 签名与旧入口移除检查、R8 消费者、产物检查和真实 Android 翻译/模型管理测试。没有新增推理性能结论。

接入与迁移 · API 设计 · 验证记录