Flutter发布APK

9

我想知道通过运行 flutter run --release 命令生成的 apk 文件与 flutter build apk 命令生成的 apk 文件是否不同。哪个更适合上传到 playstore?我刚刚尝试了这两个命令,apk 大小的差异真的很大。发布命令会产生一个远比构建命令更小的 apk 文件。

总之,我想知道的是,由于 Flutter build apk 生成的是 fat apk,那么 Flutter run --release 是否生成的是 split apk?


Flutter run release 用于生产环境,而 flutter build apk 用于调试。 - Vipul Chauhan
2个回答

9

flutter run --release: 建立发布版本的应用程序并直接启动它,然后显示控制台界面以操纵正在运行的实例。源自Flutter Wiki

在部署应用程序时使用发布模式,可获得最大的优化和最小的占用空间。对于移动设备,发布模式(不支持模拟器或仿真器)意味着:

  • 断言被禁用。
  • 调试信息被剥离。
  • 调试被禁用。
  • 编译针对快速启动、快速执行和小包大小优化。
  • 服务扩展被禁用。(应用程序更小)

flutter build apk生成一个 fat APK,其中包含嵌入其中的多个 ABI 的二进制文件。这样做有好处,即单个 APK 可在多种体系结构上运行,从而具有更广泛的兼容性,但缺点是其文件大小要大得多,导致用户在安装应用程序时下载和存储更多字节。建议构建拆分 APK 而非应用程序包。

尽管应用程序包优于 APK,但仍有一些商店不支持应用程序包

何时应该构建应用程序包而不是 APK?

Google Play Store 建议您使用应用程序包而不是 APK 部署应用程序,因为它们允许更有效地向用户传递应用程序。但是,如果您通过除 Play 商店以外的方式分发应用程序,则 APK 可能是您唯一的选择。

阅读更多来自文档的内容


谢谢,但这是否意味着从flutter run --release生成的apk是一个分割apk? - mtkguy
1
换句话说,如果我想在我的设备上安装应用程序的发布版本,我只需运行 flutter run --release,如果我想部署(到 Play 商店),我会运行 flutter build appbundle。谢谢。 - Brendan
是的,不要忘记为您的应用程序签名,以便发布到Play商店。 - griffins
但是这两者之间有什么区别? - Tayan

0
你可以使用这个命令来拆分APK文件。
flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接