flutter 包体积优化

flutter打出来的包体积特别大,通过以下方式可以达到包体积优化的效果

1.压缩资源文件
压缩图片资源能够很明显的改变包体积,可以通过一下几种方式压缩图片资源
1>imageoptim https://imageoptim.com/howto.html 打开后直接安装软件,能够无损压缩文件夹中的图片 免费
2>docsmall https://docsmall.com/ 直接在线压缩,效果很好,还可以压缩gif图片,但是一次性只能压缩30个文件 免费

2.优化字体文件(一个字体包一般都有十几M),尽量使用flutter默认字体,
3.优化打包支持设备配置、避免一些很古老的设备仍然被支持,从而影响包体积
打包iOS时可以配置Architectures只支持arm64,移除armv7,armv7s

arm64 : 必选项,支持iphone5s及以上;最低支持版本:iOS5.1.1
armv7s:支持iPhone5及以上;
armv7:支持iPhone4及以上;
以上指令集,选择越多,打出来的包就越大;
若抛弃iPhone5s之前的机型,只需要选择arm64即可,这个包是最小的。
若要支持所有iPhone机型,选择armv7、arm64即可。
若想app在各个机器上运行效率最高:
1.Build Active Architecture Only改为NO;
2.选择armv7 armv7s arm64指令集;
这样会为各个指令集编译相应的代码,但包的体积是最大的。

打包安卓时 配置build.gradle文件中中defaultConfig下添加ndk支持的设备列表

这里有一份Android 处理器架构的汇总建议:
mips (已弃用)
mips64 (已弃用)
armeabi (已弃用)
armeabi-v7a (需要支持— 现在最流行的处理器架构)
arm64-v8a (需要支持 — armeabi-v7a的新版本)
x86 (可选, 设备非常有限,可以用于模拟器debugging)
x86_64 (可选, 设备非常有限,可以用于模拟器debugging)

修改了架构支持armeabi-v7a如果在flutter run是出现so库找不到的情况,可以在build.gradle中添加如下:

project.setProperty('target-platform', 'android-arm')

我们项目中设置ndk只支持armeabi-v7a,基本上支持市面上主流的机型了,通过配置处理器架构打出来的包提交竟然优化了20多M的体积
iOS只支持arm64处理器架构,打出来的包体积也大幅度减少(十几M)

原文地址:https://www.cnblogs.com/qqcc1388/p/14574391.html