开发环境搭建:工欲善其事,必先利其器

说实话,做 Android 打包这么多年,我见过太多因为环境没搭好而翻车的案例。有人 SDK 版本不对,有人 Gradle 死活同步不过,还有人把 bundletool 路径配错,折腾一整天。这节课,咱们就把这套环境一次搞定。

我个人习惯先把核心工具链理清楚,再动手安装。你想想看,如果连 Android Studio、SDK、Gradle、bundletool 这几个东西是什么关系都不清楚,配起来肯定一头雾水。下图就是这套工具链的完整画像:

Android 开发环境工具链框架 Android Studio IDE · 编辑器 Android SDK 平台工具 · 构建工具 Gradle 构建系统 bundletool AAB 打包工具 APK (传统) Debug / Release AAB (新格式) Android App Bundle 共享 Gradle & SDK 工具链 💡 说明: Android Studio 自带 SDK Manager 和 Gradle 插件,但 bundletool 需要单独下载。建议统一放在无空格的路径下。

安装 Android Studio

Android Studio 是咱们的主战场,IDE 环境直接决定开发效率。我一般从 developer.android.com/studio 下载最新稳定版,不要追 beta 版,除非你想给 Google 当小白鼠。

关键步骤:

  • 下载完成后直接运行安装程序,建议安装到 C:\Android\AndroidStudio 或 /opt/android-studio
  • 首屏启动后,选择 "Custom" 安装类型,手动指定 SDK 路径
  • 确保勾选 "Android Virtual Device" 组件,方便后续调试 APK / AAB

我建议 SDK 路径也放到一个专门的目录,比如 C:\Android\Sdk,不要用默认带空格的路径。这点小习惯,能帮你省掉很多莫名其妙的编译报错。

配置 Android SDK

SDK 里面主要是平台工具和构建工具。你想想看,没有 SDK,连 adb、aapt2、d8 这些打包利器都用不了。

打开 Android Studio 的 SDK Manager(右上角小图标),按下面这张表选版本:

组件 推荐版本 说明
Android SDK Platform 34 必须 目标编译版本,建议拉满最新稳定版
Android SDK Build-Tools 34.0.0 必须 打包 APK / AAB 的核心工具集
Android SDK Platform-Tools 必须 包含 adb、fastboot 等调试工具
Intel x86 Atom_64 System Image 可选 模拟器镜像,调试 AAB 时很有用
NDK (Side by side) 按需 只有 native 代码才需要,普通 App 可以跳过

⚠️ 避坑指南: 我曾经因为 SDK 里同时装了 30、31、32、33四个版本的 Build-Tools,结果 Gradle 自动选择了老的 30.0.3,打包出来的 AAB 在 Google Play 上签名失败。经验就是——只保留 1~2 个最新的 Build-Tools 版本。

Gradle 构建工具

Gradle 是 Android 的构建大脑。说白了,从源代码到 APK / AAB,中间所有步骤都是它协调的。

Android Studio 自带 Gradle 插件,但 Gradle 本身是独立分发的。我个人习惯用 Gradle Wrapper 来代替全局安装——每个项目自带一份 Gradle 版本,不会相互打架。

项目根目录/
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar     # 下载器
│       └── gradle-wrapper.properties  # 版本号配置
├── build.gradle.kts              # 项目级构建脚本
├── settings.gradle.kts           # 模块声明
└── gradlew                       # Linux/macOS 执行脚本
└── gradlew.bat                   # Windows 执行脚本

关键配置在 gradle-wrapper.properties 里:

distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip

之后在项目里就能直接用 ./gradlew assembleRelease 打包了。我建议 Gradle 版本和 Android Gradle Plugin (AGP) 版本严格匹配,不然会出现 "Unsupported class file major version" 之类的错误。

AGP 与 Gradle 对应速查:

  • AGP 8.2 → Gradle 8.4
  • AGP 8.1 → Gradle 8.2
  • AGP 8.0 → Gradle 8.0
  • AGP 7.4 → Gradle 7.6

安装 bundletool

咱们讲 APK 与 AAB 对比,怎么能少了 bundletool?它是 Google 官方推出的 AAB 处理工具,主要用来做两件事:

  • 将 AAB 拆分成 APK 集合
  • 在本地模拟 Google Play 的动态分发

安装方式很简单:

# 从 GitHub Releases 下载最新版
# https://github.com/google/bundletool/releases
# 下载后重命名并放在系统 PATH 里

# Linux / macOS
mv bundletool_all.jar bundletool.jar
chmod +x bundletool.jar
sudo mv bundletool.jar /usr/local/bin/

# Windows
# 放到 C:\Android\bundletool\ 并添加环境变量

验证是否安装成功:

java -jar bundletool.jar --version
# 输出类似:1.15.6 就对了

我一般会在 ~/.bashrc 或 ~/.zshrc 里加一行别名:alias bt='java -jar /usr/local/bin/bundletool.jar',这样每条命令少打十几个字符。小技巧,但每天用几十次就很香。

验证环境是否打通

最后,咱们跑一条完整的打包命令,验证整个工具链是否畅顺:

# 1. 进入你的 Android 项目根目录
cd MyApp

# 2. 清理旧构建产物
./gradlew clean

# 3. 打包 Debug APK
./gradlew assembleDebug

# 4. 打包 AAB(新格式)
./gradlew bundleDebug

# 5. 用 bundletool 查看 AAB 内容
java -jar bundletool.jar dump manifest --bundle app/build/outputs/bundle/debug/app-debug.aab

如果最后一步能正确输出 AndroidManifest 的 XML 内容,恭喜你——环境搭建全部完成。接下来就可以放心地研究 APK 和 AAB 的内部结构了。