美文网首页Android开发经验谈Android开发程序员
Gradle断点调试 - 调试Android Builder源码

Gradle断点调试 - 调试Android Builder源码

作者: Joe_H | 来源:发表于2018-06-08 17:07 被阅读15次

断点调试是阅读源码的一种好方法,能便于理解应用的执行流程,下面介绍如何在AS中调试Android Build Tool代码的方法。

1. 开启Gradle调试

网上方案比较杂,这里介绍自己亲测可用的一种方案,基于Android Studio 3.0。

1.1 配置remote debug

Android Studio中按照如下步骤操作:
Menu → Run → Edit Configurations... → Add New Configuration → Remote → 自定义配置name → host: localhost → port: 5005 → OK

1.2 执行gradle构建任务

在Terminal中执行需要调试的任务,同时携带-Dorg.gradle.daemon=false -Dorg.gradle.debug=true作为参数,如下:

./gradlew <任务名> -Dorg.gradle.daemon=false -Dorg.gradle.debug=true

之后可以看到Terminal中执行被阻塞,并输出如下:

$ gradle assembleDebug -Dorg.gradle.daemon=false -Dorg.gradle.debug=true
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/3.3/userguide/gradle_daemon.html.
> Starting Daemon

1.3 设置断点

在需要调试的地方设置断点,注意,*.gradle脚本是无法调试的

1.4 启动debug

执行之前配置的remote debug。

2. 调试Android Builder

要在IDE中设置断点,关键需要让IDE链接到源代码,这里有个小技巧。
在项目的根目录下创建一个名为buildSrc的目录,这个目录是用来编写gradle的构建脚本的,在buildSrc目录下创建文件build.gradle,并添加如下代码:

repositories {
    jcenter()
}

dependencies {
    compile 'com.android.tools.build:gradle:2.3.3'
}

这里在buildScr中添加了Android Build Tool的依赖,具体依赖什么版本,由你所使用的Build Tool版本决定,既根目录中build.gradle中设置的版本。
然后Sync Gradle。
现在即可在Project视图下的External Liberaries中看到Android Build Tool的源码了。


com.android.application
com.android.application

开始研究Android的构建系统吧!

Gradle基础 - 构建生命周期和Hook技术

相关文章

  • Gradle断点调试 - 调试Android Builder源码

    断点调试是阅读源码的一种好方法,能便于理解应用的执行流程,下面介绍如何在AS中调试Android Build To...

  • Android Gradle 插件断点调试

    适用:发布到远程仓库的插件发布到电脑本地仓库的插件 步骤1 步骤2 步骤3 使用默认参数可以 步骤4 在Plugi...

  • Android gradle 脚本断点调试

    废话不多说,是不是很想知道gradle 脚本中的每个方法的执行顺序和生命周期的回调都会在什么时候执行呢?是不是也不...

  • Xcode调试ffmpeg源码(十五)

    前言 有时候需要进行源码断点调试(断点调试是寻找问题的利器,同时也有利于加快理解ffmpeg源码),本文介绍如何用...

  • Android Studio调试

    参考 断点调试 实用调试 总结:断点调试有step into step out 等 实用调试:条件断点、日志断点、...

  • iOS走向大师之对象原理研究

    一.探索准备 需要下载objc源码并配置 在探索之前我们先了解调试底层基本技巧 1.下断点调试2.符号断点调试3....

  • Android调试release包

    使用Android Studio对Debug包进行断点调试比较简单,这里介绍一下如何对release包进行断点调试...

  • OC对象原理(一) alloc&init探索

    iOS底层原理篇 主要是围绕底层进行源码分析-LLDB调试-源码断点-汇编调试,让自己以后回顾复习Runtime底...

  • OC对象原理(三) isa原理与对象的本质

    iOS底层原理篇 主要是围绕底层进行源码分析-LLDB调试-源码断点-汇编调试,让自己以后回顾复习Runtime底...

  • iOS底层原理开篇

    iOS底层原理篇 主要是围绕底层进行源码分析-LLDB调试-源码断点-汇编调试,让自己以后回顾复习Runtime底...

网友评论

    本文标题:Gradle断点调试 - 调试Android Builder源码

    本文链接:https://www.haomeiwen.com/subject/iwjasftx.html