You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android动态交付模块:如何基于构建类型实现安装时条件包含?

实现APK/AAB构建时动态模块的条件性包含

完全可以基于构建格式(APK/AAB)实现Module A的条件性包含,核心是通过Gradle配置动态修改模块的onDemand属性来满足需求。

具体配置步骤

  1. 在Module A的build.gradle中配置
    直接针对发布变体设置动态属性:

    android {
        publishing {
            singleVariant("release") {
                // 判断当前构建任务是否为AAB打包
                def isBuildingBundle = gradle.startParameter.taskNames.any { it.contains("bundle") }
                // 动态设置:AAB构建时设为true(仅按需加载),APK构建时设为false(安装时包含)
                onDemand = isBuildingBundle
            }
        }
    }
    
  2. 全局统一配置(可选)
    如果需要在项目根目录统一管理,可在根build.gradle中添加:

    subprojects {
        if (name.equals("moduleA")) {
            android {
                publishing {
                    singleVariant("release") {
                        onDemand = gradle.startParameter.taskNames.any { it.contains("bundle") }
                    }
                }
            }
        }
    }
    

验证方法

  • 执行APK构建命令(如./gradlew assembleRelease):Module A会被打包进基础APK,安装时自动包含。
  • 执行AAB构建命令(如./gradlew bundleRelease):Module A会被标记为按需加载的动态模块,不包含在基础安装包内。

注意事项

  • 确保Android Gradle插件版本在7.0及以上,该版本开始支持灵活的动态模块属性配置。
  • 测试时可通过Android Studio的Build > Analyze APK/AAB功能,检查模块的包含状态是否符合预期。

内容的提问来源于stack exchange,提问作者Tehleel Mir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 10:34:52