如何在 android 中减小 flutter 应用程序的大小

How to decrease flutter app size in android

我使用 flutter 制作我的应用程序,我的应用程序大小超过 100 mb,应用程序有 15 个屏幕。

android 大小超过 100 MB,iOS 应用程序大小为 40 MB 我必须缩小它 我想要适当的解决方案

我尝试压缩我的图像文件,但它只减少了 8 mb

我想要压缩 flutter 应用大小的合适解决方案。

  1. 您使用了多少个第三方包?

  2. 您是使用拖放创建应用程序还是手动编写所有代码?

  3. 在重复但本质相同的对象中,你是否正确使用了const?喜欢 const EdgeInsets.all(8.0).

  4. 你有很多可以转换为容器渐变的渐变图像吗?

  1. 使用 webp 图片代替 PNG 或 JPEG
  2. 添加亲卫文件
  3. 已启用缩小 - 正确
  4. Shrink- Resource -true

尝试运行:

flutter clean

然后:

flutter build apk --split-per-abi

您甚至可以通过以下方式进一步减小代码的大小:

flutter build apk --split-debug-info=/<project-name>/<directory>

如果您愿意冒险,您可以obfuscate您的代码:

flutter build apk --obfuscate --split-debug-info=/<project-name>/<directory>

哪里

/<'project-name'>/<'directory'>

是Flutter可以输出你的应用程序调试文件的目录。

检查以下步骤可能会帮助您减小应用程序大小(仅 Android),我已将我的 48mb 构建减少到 14mb

第一步: android/gradle.properties android.enableR8=true

第 2 步: android/app/build.gradle

内部 -> buildTypes -> 发布

minifyEnabled true
shrinkResources true
useProguard true

第 3 步:

运行

flutter build apk --target-platform=android-arm

flutter build apk --split-per-abi

其他一些优化技巧,

1.图片资产

将图像上传到 AWS 等永久存储路径或您的网站服务器中,并在您的代码中使用该图像的 link。

2。图标

建议使用 Material 图标或库比蒂诺图标 class。您可以将 --tree-shake-icons 选项添加到 flutter build 命令,以从捆绑包中删除所有未使用的图标。这可能会节省您的应用程序的大小。 (使用 svg 格式图标)

3。字体

如果我们使用更多来自类似于图像的本地资产的字体,这些字体也会增加应用程序的大小。最好的解决方案是使用 google_fonts 插件。本插件使用时会动态下载字体

4.动态应用交付

如果我们要上传到 Playstore,我们可以构建一个应用程序包,或者我们可以按 abi 拆分 apk,将 apk 拆分为 x64 和 x86 位代码。通过使用 appbundle Google Play 的新应用服务模型,称为 Dynamic Delivery,使用您的 app bundle 为每个用户的设备配置生成和提供优化的 APK,因此他们只下载他们需要的代码和资源 运行你的应用程序。

Refer below links for more understanding,

  1. https://developer.android.com/studio/build/shrink-code
  2. https://developer.android.com/guide/app-bundle
  3. https://www.youtube.com/watch?v=9D63S4ZRBls