Flutter APK 大于 100 MB

Posted

技术标签:

【中文标题】Flutter APK 大于 100 MB【英文标题】:Flutter APK greater than 100 MB 【发布时间】:2019-03-12 02:06:23 【问题描述】:

我使用 Flutter 构建的 android 版本 apk 大小约为 150MB。我想将此 apk 上传到 google play store,但 play store 的 apk 大小限制为 100MB。在 Android 应用程序开发中,我们按照link 中所示的步骤为此类限制创建 APK 扩展文件。想知道 Flutter 代码中创建和使用类似扩展文件的步骤,并将应用大小减小到 100MB 以下。

更新 由于 Flutter,这个问题与大尺寸的 apk 无关。由于应用程序中使用的资产,apk 非常庞大。想知道在 Flutter 中上传此类 App 的流程。在原生 android 开发中,我们可以选择扩展文件,如 link 所示。如果不是将此类应用程序上传到 Google Play 商店的过程,Flutter 是否有类似的选项。

【问题讨论】:

很可能是您的资产 我不是在抱怨大的 apk 大小,我知道这是因为我的资产想知道上传具有如此大资产的应用程序的过程。在原生 Android 开发中,我们可以选择扩展文件。如果没有上传大尺寸 apk 的流程,我们在 Flutter 中是否有这样的选项? 你在颤振中找到任何解决方案了吗?! 我实际上减小了我的 apk 大小。您可以尝试here给出的解决方案 【参考方案1】:

在构建应用的发布版本时,请考虑使用 --split-debug-info 标记。这个标签可以显着减少代码大小。有关使用此标记的示例,请参阅混淆 Dart 代码。

您可以做的其他一些事情来使您的应用更小:

Remove unused resources
Minimize resource imported from libraries
Support a limited number of screen densities
Compress PNG and JPEG files

我用来减小应用程序大小的一种方法是使用;

flutter clean

在我运行构建命令之前;

flutter build appbundle --target-platform android-arm,android-arm64

【讨论】:

【参考方案2】:

使用 appbundle 即可获得 150mb https://developer.android.com/guide/app-bundle

使用 Firebase 存储下载内容(每演出 12 美分) https://firebase.google.com/pricing

或者按照 Flutter 中包含的扩展文件(目前很安静) https://github.com/flutter/website/issues/2215

【讨论】:

【参考方案3】:

使用这个命令创建多个小尺寸的apk然后上传多个apk到play store

flutter build apk --split-per-abi

【讨论】:

【参考方案4】:

如果您在 Flutter 中有更大的 apk,请使用 Deferred components 生成应用程序包。

此功能目前仅在 Android 上可用,利用 Android 和 Google Play 商店的动态功能模块提供 打包为 Android 模块的延迟组件。延迟代码 不影响其他平台,继续正常构建 初始安装时包含所有延迟的组件和资产 时间

【讨论】:

【参考方案5】:

我同意@RémiRousselet 的观点,也许您可​​以检查您的资产并告诉我们是否是这种情况。但如果不是,那么可能是包装问题。

但作为一个仅供参考,Flutter 团队对大尺寸 APK 有一个答案。检查this。另请查看this 以了解他们提出的 Flutter 的最小尺寸。据说,

我们测量了一个最小的 Flutter 应用(没有 Material 组件,只有一个 Center 小部件,使用 Flutter 构建 apk 构建),捆绑并压缩为发布 APK,大小约为 4.48MB。

从那句话来看,Flutter APK 确实很大,并且有固定的开销大小。

这里有一些关于如何减小 APK 大小的参考资料。

Reduce --release apk and ipa sizes Would like an article which explains how to reduce APK size

同时查看与您相关的*** question。

【讨论】:

5MB??我认为它会比 Java/Kotlin 更小,因为它是本地编译的等等...... @Matt 抱歉,本机是错误的词。我应该直接用的。但原生应用包含完整的 SDK,以及更广泛的 Java 基础 API。 @TheWanderer 本机应用程序的 sdk 直接随操作系统提供。未包含在 apk 中。

以上是关于Flutter APK 大于 100 MB的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:build/app/outputs下的apk/release目录和flutter-apk目录有啥区别?

Flutter - 生成 Flutter 应用程序 apk 时出错

我的 Flutter 构建版本 APK 不工作,但调试 APK 工作

Flutter如何构建APK

Flutter:APK Requires Promiment 披露/APK 需要有效的隐私

Flutter 构建 apk 失败