You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google ML Kit翻译库(com.google.mlkit:translate:17.0.1)如何缩减应用体积?

缩减Google ML Kit端侧翻译库体积的可行方案

针对你使用com.google.mlkit:translate:17.0.1后APK体积暴涨的问题,核心原因是默认打包了全量语言模型,以下是针对性的优化方法:

1. 动态按需下载指定语言模型

放弃一次性打包所有语言模型的方式,仅在需要时下载英语(en)和印地语(hi)的模型,这是最有效的体积缩减手段:

  • 在应用首次启动或翻译功能触发前,调用模型下载接口获取目标语言模型:
val modelManager = RemoteModelManager.getInstance()
// 定义英语和印地语模型
val englishModel = TranslateRemoteModel.Builder("en").build()
val hindiModel = TranslateRemoteModel.Builder("hi").build()

// 下载模型(可配置网络条件,比如仅Wi-Fi下下载)
val conditions = DownloadConditions.Builder()
    .requireWifi()
    .build()
modelManager.download(englishModel, conditions)
modelManager.download(hindiModel, conditions)
  • 此方式下,APK仅包含翻译核心逻辑,体积会大幅回落至接近原本的8MB水平。

2. 结合Android App Bundle拆分分发

若采用AAB格式发布应用,可配置语言模型按语言拆分,Google Play会根据用户设备语言仅分发对应模型:

  • 在Module级build.gradle中添加配置:
android {
    bundle {
        language {
            enableSplit = true
        }
    }
}
  • 配合动态下载,能进一步降低用户实际下载的安装包大小。

3. 选用轻量级基础版模型

ML Kit提供两种模型变体,基础版(Base)体积远小于完整版,适合对精度要求适中的场景:

  • 构建翻译器时指定基础版模型:
val translatorOptions = TranslatorOptions.Builder()
    .setSourceLanguage("en")
    .setTargetLanguage("hi")
    .setModelType(TranslatorOptions.MODEL_TYPE_BASE)
    .build()
val translator = Translation.getClient(translatorOptions)

4. 清理冗余依赖

检查项目依赖,确保仅引入com.google.mlkit:translate:17.0.1,未额外添加其他ML Kit子模块(如文本识别、图像标注等)。

未来扩展到其他印度语言时,只需调用模型下载接口添加对应语言(如泰米尔语ta、孟加拉语bn)的模型即可,无需重新打包APK。

内容的提问来源于stack exchange,提问作者Sunny Choudhary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 02:44:55