美文网首页
Android APT手把手教你生成WXPayEntry

Android APT手把手教你生成WXPayEntry

作者: koller | 来源:发表于2019-01-04 11:02 被阅读0次

1 基本配置

新建Module->JavaLibrary(必须是JavaLibrary)

gradle文件配置

```

dependencies {

implementation fileTree(include: ['*.jar'], dir:'libs')

//gradle编译期所需插件

implementation'com.google.auto.service:auto-service:1.0-rc3'

//主要使用的功能

implementation'com.squareup:javapoet:1.8.0'

//依赖的匿名Module,这个lib就是我们自定义的注解lib。

implementation project(':libPayAnnotations') 

}

```

2 主要功能及代码语法

新建一个YourNameProcessor继承自AbstractProcessor,这里是PayProcessor

并且要在类名上面添加@AutoService(Processor.class) 

1

2.1 确定所支持的类型,匿名类

2

图中的WXPayEntry.class就是libPayAnnotations所定义的。

匿名类最好是@Retention(RetentionPolicy.CLASS)既编译期注解,不然很容易出问题,因为APT就是编译期做生成对应代码的事情

2.2 Process内写想要生成的代码

3

android app在编译期会自动调用PayProcessor里面的process方法,所以,如果我们想要进行任何操作,就在此进行。然后扫描所有使用WXPayEntry的注解类

4

WxPayEntryVisitor如下图

5

因为WxPayEntry需要两个值,所以Visitor里面设置了两个变量,一个String,一个类类型,在设置类类型之后调用生成的代码.

6 7

MethodSpec是需要生成哪些方法,设置name及属性即可

TypeSpec 是需要生成的类名,设置name及属性即可

最后调用JavaFile生成对应的代码

3 生成的代码

可以在App->Build->Generate->Source->Apt->Debug里面看到

8 9

到此,既完成了apt的基本使用,靠apt生成代码不用我们在手动写一堆相同模板的代码。

butterknife也是使用了此原理

相关文章

网友评论

      本文标题:Android APT手把手教你生成WXPayEntry

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