gpt4 book ai didi

android - 如何测试和部署 Assets 超过 150 MB 的 Flutter 应用?

转载 作者:行者123 更新时间:2023-12-02 09:42:35 26 4
gpt4 key购买 nike

我的 Flutter 应用程序中的 Assets 总共约为 300 MB(大量媒体文件,这是 app 的本质,不能明智地削减)。

据我了解,有两种方法可以将应用程序上传到 Play 商店:

  • 包含适用于所有平台的二进制文件的 APK 文件(旧版)。看起来像 APKs are limited to 100 MB .
  • 一个 App Bundle(新),它可以让 Play Store 找出哪些位在哪里部署。 App Bundles have a limit of 150 MB关于用户实际下载的内容。

  • 对于 APK ,解决此限制的方法是 APK Expansion Files (通常是“obb”文件),最大可达 2 GB。我可以尝试让它与 Flutter 一起使用,但 APK 交付方法有些过时,并且还有其他缺点,例如使用未使用的二进制文件使安装大小膨胀。所以我宁愿不使用这种方法。

    对于 App Bundle ,类似的机制以 Dynamic Asset Delivery的形式存在.根据用户下载 Assets 包的时间,共有三个选项:安装期间、安装后或按需下载。 install-time选项听起来最透明和最简单,并且限制为 1 GB,所以它对我的用例非常有用。

    可悲的是, flutter does not yet support Dynamic Asset Delivery .幸运的是,当使用 install-time发货, it looks like这些 Assets 可通过常规 AssetManager 获得系统提供的类。一开始我以为 Flutter 可以不用编写任何 Java/Kotlin 代码就可以使用它们,但不,它使用了自己的 Assets 机制,并且 there is nothing but a proposal访问 AssetManager .所以我必须自己做一些跑腿工作才能到 interact with the Java world ,但听起来可行。

    要首先创建 bundle , I followed these steps . 现在如何运行应用程序?
    flutter run不会产生任何错误,但似乎没有安装 Assets 包,因此在测试期间我的所有 Assets 都丢失了。我怀疑它直接构建了一个 APK,而不是构建一个应用程序包然后从中创建一个 APK。而且因为 IntelliJ IDEA 似乎也调用了 flutter run或类似的东西,我的调试器和其他 IDE 集成现在没用了。
    flutter build appbundle似乎工作并吐出 .aab文件。对于测试,大概我可以使用 bundletool从中创建一个 APK 并安装它,但与 Flutter 通常的亚秒级热重载相比,这将是一种糟糕的开发体验。

    这是一个死胡同吗?还有其他方法可以通过 Play 商店交付具有大量 Assets 的应用程序吗?请注意,除非它提供免费和(几乎)无限流量,否则我对外部托管不感兴趣,因为这是一个非商业项目。

    (在 iOS 的 App Store 上,限制似乎是 4 GB,没有问任何问题。谁?)

    最佳答案

    对于部署,现在可以使用 Deferred Components (在 2021 年 3 月左右推出)。
    Technical details in Flutter wiki
    使用延迟组件,您可以通过播放功能交付(尚无播放 Assets 交付)分发大型 Assets 。
    在我看来,文档有点缺乏(特别是对于仅使用功能来交付 Assets ),但在深入研究源代码 + 反复试验后,我可以通过 Play 商店(给测试人员)分发具有 150MB+ Assets 作为动态功能的应用程序。
    对于测试,除了您提到的 bundletool 之外,我找不到其他方法。对我来说更糟糕的是,一些延迟组件 API 在 bundletool 构建的 apk 和 Play Store 构建的 apk 上的工作方式似乎不同,因此测试可能比看起来更加耗时和痛苦。

    关于android - 如何测试和部署 Assets 超过 150 MB 的 Flutter 应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61987669/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com