3

我正在玩颤振并构建一个简单的测验应用程序。该项目几乎已准备好在 Play 商店上发布,并且有几处需要修复。但是,我尝试了新的颤振--analyze-size命令,发现我可以通过缩小图像来进一步减小文件大小。我缩放了图像(它显着减小了尺寸)并替换了原始文件。然后我跑了一个然后跑了flutter clean只是flutter pub get为了flutter build apk --analyze-size --target-platform=android-arm64再次测试。尽管我减小了图像文件的大小,但分析工具显示的大小与以前相同。

我还尝试了 android studio 中的无效缓存/重启选项。但还是一样的结果。当我在 DevTools 的Diff选项中选择两个json文件进行比较时,它说它们是相同的文件。拜托,有人可以指出如何在不创建新项目和移动文件和资产的情况下解决这个问题吗?

PS我在颤振频道测试版,Windows 10上的2.5.0

4

6 回答 6

0

重命名图像(添加 1 或一些微不足道的东西),清理,重建,然后重命名回原始名称,清理,重建。

Flutter 可以缓存文件名。

于 2021-10-03T21:40:24.127 回答
0

尝试rm -rf buildflutter clean.

于 2021-09-30T07:24:17.133 回答
0

正如这个答案中提到的,在运行之前flutter clean,检查你的 Windows 任务管理器是否有一些 Flutter 进程在后台运行,这是真的,停止它。

在此处输入图像描述

但是,目前您可以将 Flutter 版本更新为2.5.1 (stable)。如何?运行此命令:flutter upgrade.

此外,您可以在4 个发布渠道(稳定版、测试版、开发版和主版)之间切换flutter channel <channel_name>

于 2021-09-30T10:06:41.217 回答
0

好吧,您可以尝试以下操作以确保不会发生这种情况,

为了:

  • flutter clean
  • 手动删除/build文件夹,本质上是一样的flutter clean
  • 正如@Guillem 已经说过的那样,任务管理器可能会出现故障restarting machine
  • flutter pub cache repair基本上触发与发布规范相关的缓存,但在您的情况下触发缓存刷新可能会有所帮助,请尝试一下。
  • Backup All image assets某处并从项目中删除它们只是为了在没有它的情况下构建它,然后在错误时在项目中包含图像并再次尝试上述步骤。

让我知道这是否对您有用。

于 2021-10-03T22:36:43.437 回答
0
  1. 确保您缩小尺寸的图像是您的颤振资产的一部分。如果它们未在 中列出,pubspec.yml则它们不是您的 apk 文件的一部分。如果它们不是您的 apk 文件的一部分,那么无论您减小什么大小,都不会影响 apk 大小。您也不会在分析结果文件中看到任何差异.json

  2. 仔细检查输出 apk 文件中图像的大小是否实际更改。当您运行--analyze-size时,它还创建了 apk。在 Android Studio 中,您可以打开 apk 并检查 apk 中打包的图像大小。

在此处输入图像描述

有时 APK 大小保持不变,但可下载的大小会发生变化。我也不确定这里发生了什么,但是只要减小 apk 中的实际图像大小并减小最终用户的下载大小,那么最初的目的就已经实现了,所以我继续。

在此处输入图像描述

于 2021-10-03T08:47:14.520 回答
0

您应该按照以下步骤来减小 FLutter 应用程序的大小:

  1. 使用 google-fonts 包
  2. 用于flutter build apk --split-per-abi构建 apk
  3. 从捆绑包中删除不需要的图标。为此,请将--no-tree-shake-icons标志添加到您的 apk 构建命令
  4. 使用.svg 格式图标
  5. shrinkResources true在块内的/android/app/build.gradle中使用release
  6. 删除未使用的资产/包
  7. 使用缓存图像而不是使用资产
  8. 使用 progaurd(此处)。
于 2021-10-03T18:04:55.610 回答