【问题标题】:How to decrease flutter app size in android如何在 android 中减小颤振应用程序的大小
【发布时间】:2023-03-19 14:52:01
【问题描述】:

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

它的 android 大小超过 100 mb,iOS 应用程序大小是 40 mb 我必须让它变小 我想要适当的解决方案

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

我想要适当的解决方案来压缩颤振应用程序的大小。

【问题讨论】:

  • 你用哪个命令来制作apk?

标签: android flutter dart bundle


【解决方案1】:

先运行flutter clean

转到您的应用程序 build.gradle 里面添加以下几行到 buildTypes :-

shrinkResources 真

【讨论】:

    【解决方案2】:

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

    第 1 步: 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 等永久存储路径或您的网站服务器中,并在您的代码中使用指向该图像的链接。

    2。图标

    建议在 Material Icons 或 Cupertino Icons 类中使用。您可以在 flutter build 命令中添加 --tree-shake-icons 选项,以从包中删除所有未使用的图标。这可能会节省您的应用程序的大小。 (使用 svg 格式图标)

    3.字体

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

    4.动态应用交付

    如果我们要上传到 Playstore,我们可以构建一个应用程序包,或者我们可以将 apk 拆分为每个 abi,​​从而将 apk 拆分为 x64 和 x86 位代码。通过使用 appbundle,Google Play 的新应用服务模型(称为动态交付)使用您的 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

    【讨论】:

    • 它会影响我的应用程序的性能吗?
    • 否,因为它会提高您的应用程序性能。并检查新的 Flutter SDK 2.8,它将提高移动性能。 infoworld.com/article/3644228/…
    • 它现在对我有用我想创建它来发布有任何命令
    • 没有命令可做。执行上述所有步骤并从 android studio 创建 app bundle 并发布它。将工作 100%。
    【解决方案3】:

    尝试运行:

    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>
    

    在哪里

    //

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

    【讨论】:

    • 安全吗,因为我必须发送构建来购买客户
    • 所有列出的命令都是完全安全的,除了混淆。只有当您的代码依赖于匹配的类、函数或库时,混淆才会有风险。我相信前 2 - 3 个命令将解决您的问题。 :)
    【解决方案4】:
    1. 使用 webp 图片代替 PNG 或 JPEG
    2. 添加 pro-guard 文件
    3. 启用缩小 - 真
    4. 收缩-资源-true

    【讨论】:

    • 使用这个压缩了多少尺寸
    • Proguard 会从项目文件和库文件中删除所有未使用的代码。
    【解决方案5】:
    1. 您使用了多少个第三方包?

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

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

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

    【讨论】:

    • 我没有使用拖放功能,我只为应用程序使用 10 个图像,为 android res 使用 12 个图像,我正确使用 const 我的代码只有几条黄线,但我的应用程序仍然很大
    • 如果您确定瓶颈是图片,可能只在手机上保留低分辨率图片并放大,然后使用Image.network 从托管在 CDN 上的网络加载全分辨率图片。
    • 但图片大小不超过 18 mbs
    猜你喜欢
    • 2023-03-29
    • 2021-08-03
    • 1970-01-01
    • 2016-02-02
    • 2022-11-08
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多