./gradlew assembleDebug和gradle build区别

一、./gradlew assembleDebug和gradle build区别

./gradlew assembleDebug
  • 核心功能 :仅编译并打包Debug 版本 的 APK(或 AAB),是针对性的构建命令

  • 执行范围

    • 只执行和 "Debug 包构建" 相关的任务:编译代码 → 生成 Debug 签名 → 打包成 APK(路径:app/build/outputs/apk/debug/app-debug.apk)。
    • 不会执行测试代码编译、单元测试、Release 包构建等无关任务。
    • 是安卓开发中最常用的命令(日常调试、安装测试都用这个)。
  • 示例执行效果

    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 包 + 测试报告
适用场景 日常开发、调试、快速安装测试 发布前全量验证、打包所有版本

二、补充说明

  1. 为什么优先用 gradlew 而非 gradle :团队协作时,不同开发者本地 Gradle 版本可能不一致,gradlew 会自动匹配项目的 gradle-wrapper.properties 中指定的版本,避免 "本地能跑、同事跑不了" 的问题。正确的全量构建写法应该是 ./gradlew build(而非 gradle build)。

  2. 其他常用衍生命令

    • ./gradlew assembleRelease:仅生成 Release 包(需配置签名)。
    • ./gradlew clean:清空构建缓存(编译报错时常用)。
    • ./gradlew clean assembleDebug:清空缓存后重新生成 Debug 包。

三、总结

  1. 核心差异:assembleDebug轻量、针对性 构建(仅 Debug 包),build全量、全覆盖构建(Debug+Release + 测试)。
  2. 版本选择:优先用 ./gradlew(Wrapper)而非全局 gradle,避免版本兼容问题。
  3. 场景适配:日常开发用 assembleDebug(快),发布前验证用 ./gradlew build(全)。
相关推荐
牛哇网络工作室5 小时前
UnityHDRP写实数字人全流程基础5—语音输入和语音识别
android·unity·c#·游戏引擎·aigc·语音识别·xcode
一笑的小酒馆5 小时前
Androidiot蓝牙配网简单封装
android
愚公搬代码8 小时前
【愚公系列】《Android应用案例开发大全》016-LBS类应用掌上杭州(辅助工具类的开发)
android·前端
g10565591399 小时前
LAMP博客平台Wordpress实战
android·mysql·nginx·php
hunterandroid10 小时前
[Android 从零到一] Compose LazyColumn 性能优化:key、稳定性与重组治理
android·前端
pengyu10 小时前
【Kotlin 协程修仙录 · 元婴境 · 中阶】 | 操作符真解:Flow 中间操作符与数据流变幻术
android·kotlin
pengyu11 小时前
【Kotlin 协程修仙录 · 元婴境 · 初阶】 | 冷流初啼:Flow 的基础与响应式编程的入门
android·kotlin
wawo0012 小时前
Kuikly实践-从Android compose迁移到kuikly compose
android
Carson带你学Android13 小时前
Android 版 MCP 正式登场:AppFunctions
android·ai编程·jetbrains
古法安卓16 小时前
Android-Direct Boot 阶段与 getFilesDir() 路径变更问题深度分析
android·java·android studio