一、./gradlew assembleDebug和gradle build区别
./gradlew assembleDebug
-
核心功能 :仅编译并打包Debug 版本 的 APK(或 AAB),是针对性的构建命令。
-
执行范围 :
- 只执行和 "Debug 包构建" 相关的任务:编译代码 → 生成 Debug 签名 → 打包成 APK(路径:
app/build/outputs/apk/debug/app-debug.apk)。 - 不会执行测试代码编译、单元测试、Release 包构建等无关任务。
- 是安卓开发中最常用的命令(日常调试、安装测试都用这个)。
- 只执行和 "Debug 包构建" 相关的任务:编译代码 → 生成 Debug 签名 → 打包成 APK(路径:
-
示例执行效果 :
bash
运行
./gradlew assembleDebug # 执行完成后,仅生成 debug 包,无其他额外输出
gradle build
-
核心功能 :执行项目全量构建 ,是全覆盖的构建命令 (若用
./gradlew build则是用 wrapper 执行全量构建)。 -
执行范围 :
- 包含
assembleDebug+assembleRelease:同时生成 Debug 和 Release 两个版本的安装包。 - 额外执行测试相关任务:编译测试代码、运行单元测试、检查代码规范等。
- 执行检查类任务:如
lint(代码静态检查)、check(测试结果校验)等。 - 输出文件:同时生成 app-debug.apk 和 Release 版本包(若未配置 Release 签名信息,默认生成无签名的
app-release-unsigned.apk;若已配置 Release 签名,生成带正式签名的app-release.apk)。
- 包含
-
示例执行效果 :
bash
运行
gradle build # 执行完成后,生成 debug + release 包,还会输出测试报告、lint 报告等
详细对比表
| 特性 | ./gradlew assembleDebug |
gradle build |
|---|---|---|
| Gradle 版本来源 | 项目自带的 Gradle Wrapper(推荐) | 本地全局安装的 Gradle |
| 构建范围 | 仅 Debug 包 | 全量构建(Debug+Release + 测试) |
| 执行速度 | 快(仅核心任务) | 慢(包含大量额外任务) |
| 输出文件 | 仅 debug 包 | debug 包 + release 包 + 测试报告 |
| 适用场景 | 日常开发、调试、快速安装测试 | 发布前全量验证、打包所有版本 |
二、补充说明
-
为什么优先用
gradlew而非gradle:团队协作时,不同开发者本地 Gradle 版本可能不一致,gradlew会自动匹配项目的gradle-wrapper.properties中指定的版本,避免 "本地能跑、同事跑不了" 的问题。正确的全量构建写法应该是./gradlew build(而非gradle build)。 -
其他常用衍生命令:
./gradlew assembleRelease:仅生成 Release 包(需配置签名)。./gradlew clean:清空构建缓存(编译报错时常用)。./gradlew clean assembleDebug:清空缓存后重新生成 Debug 包。
三、总结
- 核心差异:
assembleDebug是轻量、针对性 构建(仅 Debug 包),build是全量、全覆盖构建(Debug+Release + 测试)。 - 版本选择:优先用
./gradlew(Wrapper)而非全局gradle,避免版本兼容问题。 - 场景适配:日常开发用
assembleDebug(快),发布前验证用./gradlew build(全)。