Files
mengyanote/public/mengyanote/编程语言/Android/安卓Gradle构建常用命令总结.md

3.3 KiB
Raw Blame History

基础
  • ./gradlew tasks
    列出可用的 Gradle 任务(查看当前项目能跑什么任务)。

  • ./gradlew dependencies
    列出项目依赖树(排查依赖冲突很有用)。

  • ./gradlew clean
    清理构建产物(删除 build/ 目录)。

构建 APK / AAB
  • ./gradlew assembleDebug
    构建 debug APK输出app/build/outputs/apk/debug/*.apk)。

  • ./gradlew assembleRelease
    构建 release APK需签名配置否则生成 unsigned apk

  • ./gradlew bundleRelease
    生成 AABAndroid App Bundle输出app/build/outputs/bundle/release/*.aab

  • ./gradlew bundleDebug
    生成 debug bundle少用通常用于测试

按 module / productFlavor / buildType 构建
  • ./gradlew :moduleName:assembleRelease
    构建指定 module多模块项目时用

  • ./gradlew assembleFlavorNameRelease
    构建指定 flavor + buildType例如 assemblePaidRelease)。

安装与卸载
  • ./gradlew installDebug
    将 debug APK 安装到连接的设备/模拟器(需要 adb 可用)。

  • ./gradlew uninstallDebug
    从设备卸载 debug 包。

  • 如果用生成的 APK 手动安装:adb install -r app/build/outputs/apk/debug/app-debug.apk

测试
  • 单元测试JVM./gradlew test./gradlew testDebugUnitTest

  • 仪器/设备测试connected devices./gradlew connectedAndroidTest./gradlew connectedCheck

静态检查 / 报表
  • ./gradlew lint./gradlew lintDebug
    运行 Android Lint。

  • ./gradlew signingReport
    输出签名信息SHA1/SHA256常用于配置 API keyGoogle/Firebase

调试构建问题的常用参数
  • --stacktrace / --full-stacktrace:打印堆栈跟踪(排错用)

  • --info / --debug:更详细的日志级别

  • --scan:生成构建扫描(需要网络,便于深入分析)

  • --no-daemon:不使用 Gradle daemonCI 时有时会用)

  • --parallel:并行构建模块(能加速多模块项目)

  • -x test:跳过测试(例如 ./gradlew assembleRelease -x test

  • --offline:离线构建(只用缓存依赖)

  • --refresh-dependencies:刷新依赖缓存

性能 / CI 常用组合示例
  • 本地快速一把:./gradlew clean assembleDebug --parallel --info

  • CI (不使用 daemon输出详细)./gradlew clean assembleRelease --no-daemon --stacktrace -x test

  • 只构建 moduleA 的 release./gradlew :moduleA:assembleRelease

常见路径
  • APKapp/build/outputs/apk/<buildType|flavor>/...

  • AABapp/build/outputs/bundle/<buildType>/...

  • 临时构建缓存:~/.gradle/caches/

小贴士
  • 始终用项目里的 Gradle Wrapper./gradlew),保证 Gradle 版本一致。

  • Release 构建需要正确的 signingConfig(通常放在 gradle.properties + build.gradle),也可以在 CI 用 -P 传参数(注意不要把敏感信息放在日志里)。

  • 出问题先加 --stacktrace --info 看详情再定位是依赖、ProGuard/R8、签名还是资源冲突。