更改as的默认gradle地址_如何调试Gradle

本文预计阅读时间 4分钟
724369e8bc8ce70685d025b84625df4c.png

上次的文章 关于Gradle增量编译的坑 有讲到通过 gradle 断点调试来定位问题,那么本周就是一个非常简单的 gradle 调试大法教程,启动 gradle 入门系列的第一篇。

我们在编写 gradle 脚本或者 gradle 插件时,可能经常使用以下两种方式来添加日志调试问题:
1、println 'message'
2、project.logger.debug('message'),再运行./gradlew --debug

但是使用断点调试的效率更快,而且也可以调试 gradle 和 agp 源码,便于理解 android 应用的整个构建流程。

如何断点调试 gradle

gradle 也是跑在 JVM 上的,所以可以直接使用 IDEA 的远程调试(Remote Debug)。文字再多不如一张图,所以先看看 gradle 官方的动图:7fc1dbcf7126866dbfa6ae9d7b2d688b.gif

总结一下步骤:

1、首先点击 Run-> Edit Configuration,添加一个 remote 调试器,这里更改名称为"gradleDebug",选中调试 module 为 app,其他保持默认就好b486dc3e50437c3eaa2ee1e8ec34aa4d.png图中的调试器参数可以了解一下:jdwp: Java Debug Wire Protocol,定义了调试器和 JVM 之间的通信协议transport=dt_socket: 表示 jdwp 代理使用 socket 传输server=y: 表示 JVM 将监听要 attach 到它的调试器suspend=[y,n]: y 表示 JVM 将在执行主类之前等待调试器 attach,n 表示 JVM 将在监听调试器连接的同时立即执行主类address=5005,指定调试 socket 将监听的地址

2、命令行运行./gradlew -Dorg.gradle.debug=true --no-daemon

其中,属性org.gradle.debug=true,相当于 在 JVM 参数添加-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005,这样 gradle 进程启动后就会等待,直到 remote 调试器 attach 上才开始运行。no-daemon表示不使用守护进程。

3、选中刚才的 remote 调试器,点击 debug 按钮进行 attach4a7a7e4ddf5fca80fb2c4e7a747861f1.png

4、最后就是断点成功9cf128a6466ea848b2f8e225d9bd1f1c.png

推荐阅读

https://www.techyourchance.com/the-state-of-native-android-development-november-2019/
《2019 年 Android 原生开发状态》,偶然看到的一篇文章,作者吐槽了android开发目前存在的一些问题,说出了各位开发者的心声。

8509e0c443420422a949b515e5c8b0b9.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值