Flutter打包方式
- 发表于
- flutter
前言
Flutter 在打包安卓应用时有两种方式 flutter build apk
和 flutter build appbundle
,本文说下这两种方式有什么区别。
Appbundle
Android App Bundle 是上传到 Google Play 用以支持 Dynamic Delivery 的文件,扩展名为 .aab,一个 bundle 包含所有应用的已编译代码和资源,但是还没有生成 apk 和 Google Play 的签名。(google最新推荐,但是部分应用商城不支持)
- 打包AAB
1 |
flutter build appbundle |
1 2 3 4 5 6 |
liutiesngdeMBP2:cayj_cystudio liutiesong$ flutter build appbundle Removed unused resources: Binary resource data reduced from 804KB to 790KB: Removed 1% Running Gradle task 'bundleRelease'... Running Gradle task 'bundleRelease'... Done 7.6s ✓ Built build/app/outputs/bundle/release/app-release.aab (17.5MB). liutiesngdeMBP2:cayj_cystudio liutiesong$ |
Google Play 的新应用服务模式称为 Dynamic Delivery(动态传送),使用你的应用包为每个用户的设备配置生成并提供优化的 APK,因此用户只下载运行应用所需的代码和资源。开发者不再需要构建,签名和管理多个 APK 来支持不同的设备,用户可以获得更小,更优化的下载。
Apk
如果应用不发布到 Google Play,则需要发布多个 apk,但必须自己构建,签名和管理每个 apk。
通常构建一个 apk 用以支持所有目标设备,但由于需要支持多个屏幕密度或应用程序二进制接口(ABI)的文件,这可能会导致非常大的 apk,减少 apk 大小的一种方法是创建多个 apk,在执行 flutter build apk
的时候可以添加构建参数 --target-platform android-arm,android-arm64 --split-per-abi
, 这样构建出来的 apk 包含特定屏幕密度或 ABI 的文件。
- 打包APK
1 |
flutter build apk |
原文连接:Flutter打包方式
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。