flutter如何实现aab分包

在Flutter项目中,如何实现AAB(Android App Bundle)分包?目前我们的应用体积较大,想通过分包来优化下载大小。具体需要修改哪些配置?是否需要在build.gradle中添加特定设置?另外,Flutter的插件和本地代码是否会自动被分包处理,还是需要额外配置?希望能提供一个详细的实现步骤或示例代码。

2 回复

Flutter中实现AAB分包需在android/app/build.gradle中配置bundle块,启用enableSplit并指定资源分包。例如:

android {
    bundle {
        language { enableSplit = true }
        density { enableSplit = true }
        abi { enableSplit = true }
    }
}

通过Android Studio生成AAB时自动按配置分包。

更多关于flutter如何实现aab分包的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中实现 AAB(Android App Bundle)分包,可以通过以下步骤完成:

  1. 配置 Android 项目

    • android/app/build.gradle 文件中,启用 bundle 构建类型,并配置动态功能模块(Dynamic Feature Modules)。
    • 示例配置:
      android {
          bundle {
              language {
                  enableSplit = true  // 按语言分包
              }
              density {
                  enableSplit = true  // 按屏幕密度分包
              }
              abi {
                  enableSplit = true  // 按 ABI 分包
              }
          }
          dynamicFeatures = [':feature1', ':feature2']  // 动态功能模块
      }
      
  2. 创建动态功能模块

    • 使用 Android Studio 或命令行创建动态功能模块(例如 feature1)。
    • 在模块的 build.gradle 中应用 com.android.dynamic-feature 插件,并添加依赖:
      apply plugin: 'com.android.dynamic-feature'
      dependencies {
          implementation project(':app')
      }
      
  3. Flutter 集成动态模块

    • 使用 flutter create --template=module 创建 Flutter 模块,并将其作为依赖添加到动态功能模块中。
    • 在动态模块的 build.gradle 中添加 Flutter 模块依赖:
      dependencies {
          implementation project(':flutter_module')
      }
      
  4. 构建 AAB

    • 运行命令生成 AAB 文件:
      flutter build appbundle
      
    • 构建完成后,AAB 文件位于 build/app/outputs/bundle/release/app.aab
  5. 测试分包

    • 使用 bundletool 测试 AAB 是否按预期分包:
      bundletool build-apks --bundle=app.aab --output=app.apks
      

通过以上步骤,Flutter 应用可以实现 AAB 分包,优化应用体积和分发效率。

回到顶部