博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Studio 中使用 Annotation Processor
阅读量:6082 次
发布时间:2019-06-20

本文共 1605 字,大约阅读时间需要 5 分钟。

hot3.png

什么是APT?

   APT(Annotation Processing Tool)是一种处理注释的工具,它对源代码文件进行检测找出其中的Annotation,使用Annotation进行额外的处理。 Annotation处理器在处理Annotation时可以根据源文件中的Annotation生成额外的源文件和其它的文件(文件具体内容由Annotation处理器的编写者决定),APT还会编译生成的源文件和原来的源文件,将它们一起生成class文件。

使用背景:

      随着Android Gradle 插件 2.2 版本的发布,Android Gradle 插件提供了名为 annotationProcessor  的功能来完全代替  android-apt ,自此android-apt  作者在官网发表声明证实了后续将不会继续维护  android-apt ,并推荐大家使用 Android 官方插件annotationProcessor。

注解处理器(Annotation processing)

可以给指定的类,或者所有类(不写className)传入参数

更新: 使用annotationProcessor 引用的类似乎在annotationProcessorOptions是找不到的!!知道解决方案的麻烦回复下……跪谢

android {...    defaultConfig {    ...        javaCompileOptions {             annotationProcessorOptions {                className 'com.example.MyProcessor'		// Arguments are optional.                arguments = [ foo : 'bar' ]            }        }    }    ...}

如果你仅需要在编译时使用注解处理器,在生成apk的时候不包含注解处理器的代码,你可以使用annotationProcessor依赖

dependencies {    compile 'com.google.dagger:dagger:2.0'    annotationProcessor 'com.google.dagger:dagger-compiler:2.0'}

你也可以请求在特定的 Variant中使用

debugAnnotationProcessor 'com.google.dagger:dagger-compiler:2.0'

   

Auto Service:

      我们在写Annotation Processor的时候,需要添加META-INF/services/javax.annotation.processing.Processor 文件,google提供了一个第三方库使我们免除这部分麻烦:

      https://github.com/google/auto/tree/master/service

我们仅仅需要在gradle中添加依赖(版本请查看项目确定)

compile 'com.google.auto.service:auto-service:1.0-rc2'

然后在我们的Processor中添加一个注解:

@AutoService(Processor.class)....public class TestProcessor extends AbstractProcessor {......

编译时,会自动生成META-INF文件。

      PS:在学习ARouter时研究半天没弄明白到底为什么没写META-INF文件,最后发现原来是引用了这个库……

转载于:https://my.oschina.net/zzxzzg/blog/855628

你可能感兴趣的文章
数据结构占坑
查看>>
【Laravel】安装并且运行
查看>>
设计模式之代理模式(一)
查看>>
My platform info!
查看>>
Xcode 8 : iOS xib is missing from working copy、iOS misssing file
查看>>
网关服务Spring Cloud Gateway(二)
查看>>
Java链接DB2的4种基本类型【转】
查看>>
【转】Beginning Game Programming v2.0
查看>>
IntelliJ IDEA 创建 java Maven项目
查看>>
Axure 简单原型设计
查看>>
设备驱动层
查看>>
git的常用命令
查看>>
HttpClient-4.3.X 中get和post方法使用
查看>>
怎么才能让数学公式编辑的简洁整齐?
查看>>
MathType编辑双向斜箭头的教程
查看>>
中国足球
查看>>
windows本机域名配置
查看>>
Java编程基础-反射
查看>>
yarn+webpack+react
查看>>
Linux与VMwareTools与hgfs权限问题
查看>>