./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(全)。
相关推荐
Pika3 小时前
深入浅出Compose HitTest 机制
android·android jetpack
资深web全栈开发3 小时前
CoI - 组合优于继承:解耦的艺术
android·java·开发语言
冬奇Lab4 小时前
WMS进阶:多窗口模式与显示管理深度解析
android·源码阅读
加农炮手Jinx5 小时前
Flutter for OpenHarmony:web_socket_channel 全平台 WebSocket 通信标准库,从原理到鸿蒙实战(3000字深度解析)
android·前端·网络·websocket·flutter·华为·harmonyos
王码码20355 小时前
Flutter for OpenHarmony:web_socket 纯 Dart 标准 WebSocket 客户端(跨平台兼容性之王) 深度解析与鸿蒙
android·前端·websocket·网络协议·flutter·华为·harmonyos
zh_xuan7 小时前
kotlin runBlocking函数
android·kotlin·协程·runblocking
三少爷的鞋7 小时前
别再 launch(IO) 了:协程线程切换的 3隐藏反模式
android
贤泽9 小时前
Android 15 Lock Task 模式深度分析(第二部分)
android
huohuopro10 小时前
Vue3 Webview 转 Android 虚拟导航栏遮挡问题记录
android·vue
zh_xuan10 小时前
kotlin 挂起函数
android·开发语言·kotlin