从精准化测试看ASM在Android中的强势插入-Plugin调试

Posted eclipse_xu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从精准化测试看ASM在Android中的强势插入-Plugin调试相关的知识,希望对你有一定的参考价值。

点击上方蓝字关注我,知识会给你力量

Gradle作为一个脚本工具,在开发的过程中,最痛苦的莫过于「调试」,大部分时候,我们都是通过Log的方式来进行调试,在编译过程中,可以很清楚的看见执行过程,同时也能看到系统的其它执行的Task。

Logging

Logging是Gradle提供的日志工具,它的使用非常简单,我们可以对其进行下封装。

fun log(log: String) {
    Logging.getLogger(MyPlugin::class.java).lifecycle(log)
}

通过getLogger就可以获取Logging的实例,它和android原生的Log类似,也有debug、info、error等日志级别,大家可以根据自己的需求来调用。

断点调试

Gradle插件的断点调试不能像普通代码那样调试,需要借助Android Studio的Remote调试功能。

首先,需要在Android Studio中创建一个Remote调试器,在运行标签上点击「Edit Configuration」,再点击「+」新增一个调试类型,选择Remote,将其命名为「plugin_debug」(当然,其它名字也行),如下所示。

image-20210706105500934

接下来,在当前项目的终端下,输入如下指令:

➜  ASMTest git:(master) ./gradlew assembleDebug -Dorg.gradle.debug=true --no-daemon

通过这个指令,就可以让Gradle在编译过程中等待Plugin Attach到Remote上。

最后,在运行标签上选择刚刚创建的「plugin_debug」选项,然后点击debug按钮执行指令即可等待断点命中了。

向大家推荐下我的网站 https://xuyisheng.top/  点击原文一键直达

专注 Android-Kotlin-Flutter 欢迎大家访问

往期推荐

本文原创公众号:群英传,授权转载请联系微信(Tomcat_xu),授权后,请在原创发表24小时后转载。

< END >

作者:徐宜生

更文不易,点个“三连”支持一下????

以上是关于从精准化测试看ASM在Android中的强势插入-Plugin调试的主要内容,如果未能解决你的问题,请参考以下文章

从精准化测试看ASM在Android中的强势插入-总纲

从精准化测试看ASM在Android中的强势插入-字节码

从精准化测试看ASM在Android中的强势插入-读懂diff

从精准化测试看ASM在Android中的强势插入-JaCoco初探

从精准化测试看ASM在Android中的强势插入-JaCoco初探

从精准化测试看ASM在Android中的强势插入-Plugin调试