Android 利用 APT 技术在编译期生成代码

参考资料

  • Android 利用 APT 技术在编译期生成代码
  • Android 打造编译时注解解析框架 这只是一个开始

前言

APT(Annotation Processing Tool
的简称),可以在代码编译期解析注解,并且生成新的 Java 文件,减少手动的代码输入。现在有很多主流库都用上了 APT,比如 Dagger2, ButterKnife, EventBus3 等,我们要紧跟潮流,与时俱进呐! (ง •̀_•́)ง

普及一下ButterKnife支持的注解
1 .使用最多的Bind.class

@Retention(CLASS) @Target(FIELD)
public @interface Bind {
  /** View ID to which the field will be bound. */
  int[] value();
}

2.BindBool BindColor BindDimen BindDrawable BindInt BindString,这些使用比较少。
比如:

@Bindbool(R.bool.is_tablet)
boolean isTable;

Element

源代码中的每一部分都是一个特定的元素类型,分别代表了包、类、方法等等,具体看 Demo。

package com.example;

public class Foo { // TypeElement

    private int a; // VariableElement
    private Foo other; // VariableElement

    public Foo() {} // ExecuteableElement

    public void setA( // ExecutableElement
            int newA // TypeElement
    ) 
}

这些 Element
元素,相当于 XML 中的 DOM 树,可以通过一个元素去访问它的父元素或者子元素。

element.getEnclosingElement();// 获取父元素
element.getEnclosedElements();// 获取子元素

你可能感兴趣的:(Android 利用 APT 技术在编译期生成代码)