Android java library AbstractProcessor编译代码调试

1.概述
在现阶段的Android开发中,注解越来越流行起来,比如ButterKnife,Retrofit,Dragger,EventBus等等都选择使用注解来配置。按照处理时期,注解又分为两种类型,一种是运行时注解,另一种是编译时注解,运行时注解由于性能问题被一些人所诟病。编译时注解的核心依赖APT(Annotation Processing Tools)实现,原理是在某些代码元素上(如类型、函数、字段等)添加注解,在编译时编译器会检查AbstractProcessor的子类,并且调用该类型的process函数,然后将添加了注解的所有元素都传递到process函数中,使得开发人员可以在编译器进行相应的处理,例如,根据注解生成新的Java类,这也就是EventBus,Retrofit,Dragger等开源库的基本原理。
Java API已经提供了扫描源码并解析注解的框架,你可以继承AbstractProcessor类来提供实现自己的解析注解逻辑。下边我们将学习如何在Android Studio中通过编译时注解生成java文件。
2.AnnotationProcessor中调试代码
首先代码中对process()方法设置代码断点。

在这里插入图片描述
设置gradle daemon端口和JVM参数。把下面两行加入到你的gradle.properties文件。

org.gradle.daemon=true
org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

在这里插入图片描述
在Teminal命令行中运行gradle daemon来启动守护线程。

gradlew --daemon

在Android Studio建立Remote Debugger

在这里插入图片描述
在这里插入图片描述
Remote Debugger 配置,我们在这里使用默认设置。IP:localhost,端口:5005。一般在gradle.properties配置后会自动带回来
在这里插入图片描述
然后点击下图按钮运行,它就会连接到daemon线程中了。

在这里插入图片描述
最后我们用gradle命令来运行构建。重新build文件

gradlew clean assembleDebug

既然我们已经启动了守护线程,Remote Debugger将触发断点并挂起构建运行。

在这里插入图片描述

转载自编译时注解

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值