Android注解--编译时

Java中的注解按有效的阶段分为三种,运行期间,编译期间和源码期间,三种注解的实现可以说完全不同

其实很多代码,尤其是第三方库都不需要运行时获取一些信息,完全可以在编译时就确定

Android中使用需要的库

Android中直接在Android Studio中也可以开发,不需要像其他博客说的要在IDEA中开发

原因是,Android中的OpenJDK没有javax包

但是Google有个库可以替代:
com.google.auto.service:auto-service

另外生成代码需要squareup的
compile “com.squareup:javapoet:${squareup_javapoet}”

编译的时候解析注解需要用到 APT或者android 官方的annotation processor库

Logger的注解例子:
https://medium.com/inloop/weapons-for-boilerplate-destruction-annotation-processor-1fe94cd0e184#.dp6ygmde7