2. 开发环境与工具配置:Android Studio、SDK Manager、Play Core库、Gradle插件版本

动态交付(Split Install)依赖 Google Play 的按需分发能力,因此开发环境需要从标准 Android 开发工具链向上扩展。本章逐一拆解每个工具的角色、最低版本要求以及配置顺序,确保后续章节的代码与调试不会因为环境不匹配而中断。

2.1 工具清单与版本矩阵

下表列出了参与 SplitInstall 开发的核心工具及其推荐版本。低于最低版本的功能可能缺失或行为异常。

工具/组件最低版本推荐版本说明
Android Studio4.02023.x (Hedgehog)提供 AVD 管理、SDK 下载、Gradle 构建支持
SDK Manager—同 Android Studio 版本用于安装 API 30+ 的 SDK 平台和 build-tools
Play Core 库1.10.31.12.0+提供 SplitInstallManager 等核心 API
Gradle 插件4.2.08.2+必须与 AGP 7.4+ 配合,支持 android.dynamicFeatures
minSdkVersion2126+动态交付仅支持 API 21+,推荐 API 26 以获得更完善的体验
版本对齐提示:Play Core 1.12.0 要求 AGP 7.4+ 和 Gradle 8.2+。如果项目使用旧版 AGP,请降级 Play Core 至 1.10.3,但会丢失部分批量下载回调。

2.2 配置步骤流程图

环境搭建遵循“安装 IDE → 下载 SDK → 添加依赖 → 配置 Gradle 插件 → 验证”的线性路径。SVG 展示了这一顺序及各环节的产物。

开发环境配置流程 Android Studio SDK Manager build.gradle implementation Play Core classpath AGP 8.2+ ./gradlew 构建成功 虚线表示可选路径:SDK Manager 可直接下载 SDK, 而 AGP 版本通过 Gradle 插件坐标声明。

2.3 关键配置片段

在 项目级 build.gradle 中声明 AGP 插件版本:

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        // 必须与 Gradle 8.2+ 配对
        classpath 'com.android.tools.build:gradle:8.2.2'
    }
}

在 应用模块 build.gradle 添加 Play Core 依赖:

dependencies {
    implementation 'com.google.android.play:core:1.12.0'
    // 如果使用 Kotlin 协程,额外添加:
    implementation 'com.google.android.play:core-ktx:1.8.3'
}

启用动态特性模块语法(应用模块 build.gradle):

android {
    dynamicFeatures = [':payment_feature'] // 后续章节将创建
    ...
}
AGP 与 Gradle 版本绑定:Android Gradle Plugin 8.2.2 要求 Gradle 最低 8.2 且最高 8.5。可在 gradle-wrapper.properties 中指定:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip

2.4 验证环境

执行以下命令确认所有组件就绪:

./gradlew assembleDebug
# 观察输出,确保无“Play Core”或“dynamicFeatures”相关错误

若构建成功,日志末尾应出现类似:

> Task :app:assembleDebug
BUILD SUCCESSFUL in 23s

随后即可创建动态特性模块 :payment_feature,并进入 SplitInstall 的代码编写阶段。

扩展阅读:Play Core 1.12.0 引入 SplitInstallManager 的新实例化方式,不再使用 SplitInstallManagerFactory.create(),改为 SplitInstallManager.getInstance(context)。本章环境配置已包含该版本,后续代码示例将同步使用新 API。