美文网首页
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