./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(全)。
相关推荐
千里马学框架2 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone2 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc2 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo2 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone2 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen2 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone2 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui