Repository navigation
v0.4.0
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 翻译/模型管理测试。没有新增推理性能结论。