关于Flutter iOS安装包大小的解读

8,794 阅读3分钟

对于之前两篇Flutter分别与iOS原生以及React Native对比的文章, 许多读者留下了自己的看法和思路. 但是也有部分读者发来了不同的声音, 主要集中在Flutter安装包大小和流畅度上. 我抽空做了下测试, 下面是我的测试结果.

安装包大小

部分读者提出, 他们打完的release包只有6~7MB, 和我提供的数据相差特别大, 认为我并没有使用release包而是使用了debug包做对比.

(作者表示也摸不着头脑啊🤷‍♂️)

起初我也是很奇怪, 反复确认了自己的包是release无疑后, 尝试思考其他方向. 我之前的安装包数据都是直接发布到App Store, 经由App Store云端编译后的版本.

我猜想网友可能是通过打本地AD Hoc包得出的不同结论, 于是我也尝试打一个本地包, 结果....
emmmmmm.......

看来出现偏差的地方找到了, 但是为什么云端编译的大小和本地包的差别这么大呢? 我又测试了一下原生应用的情况, 发现本地包和云端编译包的大小几乎没有区别.

那么会不会是Flutter应用不同的打包方式, 包的内容不一样呢? 我尝试分别解包两个ipa, 结果发现包里面的内容竟然没有区别, 而且, 解压后的两个包的大小也完全一样.

结论可能就是, 两种打包方式的压缩比不一样? 但是有一点是可以确认的, 就是不管是什么打包方式, 最后安装到手机上的磁盘占用大小是一样的, 都是30MB+. 因此, 我得到的这个结果解释了部分网友的疑惑, 也印证了我之前对于Flutter应用的分析和判断是没有问题的.

另外要说的一点是, 我目前所做的测试都是以iOS平台为基准, 并没有加入安卓平台. 安卓平台根据网友发来的测试, 安装包要明显小于iOS平台, 这是因为Flutter的部分框架本身就集成在安卓系统中, 而且Fuchsia必定会直接内置Flutter SDK, 届时两个平台的差距将会更大.

流畅度

至于流畅度, 很多网友认为Flutter的流畅度没有我测试结果那么不堪, 认为我同样使用了Debug模式用于测试. 由于每个人对于流畅度的感知灵敏度是不一样的, 因此我除了提出了我个人的主观感受之外, 还提供了Xcode的帧率记录图表. 此外, 我还将原生和Flutter项目上传至了App Store和GitHub, 大家可以方便的下载到自己的设备中去尝试体验.

但是我还是需要表明我的观点: 至少目前来看, Flutter在iOS平台的流畅度, 没有完全达到iOS原生应用, 也没有完全达到它所宣称的60帧.

如果有任何疑问欢迎在下方留言.