android 注解处理器android:[1]注解处理器

android:[1]注解处理器,adrod注解处理器使用
androd注解处理器使用工具/原料androidsdkandroidstudio方法/步骤1在已有的android项目中添加一个javalibrarymodule,名字为annotationprocessor2步骤阅读步骤阅读步骤阅读3在该module的main目录下新建resources/META-INF/services目录并在resources/META-INF/services目录下新建一个名字为javax.annotation.processing.Processor的文件,建好文件后就可以填入步骤2新建的类全名com.example.annotation.processor.SimpleProcessor,如果有多个注解注解处理器也可以填写多个,各注解处理器之间以换行符分割建好的目录和文件如下:步骤阅读4如果不想手动填写步骤3中的配置也可以通过AutoService注解自动生成配置首先在module的build.gradle中添加依赖compile\'com.google.auto.service:auto-service:1.0-rc2\',然后在步骤2中新建的类上添加@AutoService(Processor.class)注解5编译module,就会在module的build/lib目录下生成一个jar文件。打开jar文件会发现不管是通过手动配置还是通过AutoService注解自动生成配置,生成的jar包中都会包相同的信息。步骤阅读6在要引入注解处理器的moduleapp中添加依赖annotationProcessorproject(\':annotationprocessor\')步骤阅读7编译appmodule,查看gradleconsole,可以看到方法调用信息注:init注:getSupportedSourceVersion注:getSupportedAnnotationTypes注:getSupportedOptions步骤阅读8通过查看方法调用信息我们发现process方法并没有调用,这是因为注册处理其中没有注册要处理的注解,我们在getSupportedAnnotationTypes方法中注册注解信息com.example.annotation.Mark后重新编译发现process方法仍然没有执行,这是因为注解处理器并没有扫描到使用com.example.annotation.Mark注解的信息。步骤阅读9我们在app的MainActivity中添加注解Mark步骤阅读10其中Mark的实现为步骤阅读11重新编译app查看gradleconsole发现这次有process调用信息,12在process中添加获取注解信息代码步骤阅读13编译运行查看gradleconsole,可见log中打印了mark的值class,method步骤阅读14在获取到注解后添加如下代码可以获取到被注解元素的一些基本信息步骤阅读15如果需要获取到TypeElement的更多信息可以使用ProcessingEnvironment.getElementUtils().getAllMembers(TypeElement),该方法可以获取到TypeElement的所有信息16文章中所有源代码:https://git.oschina.net/jackyanngo/AnnotationProcessorSample.gitEND注意事项process方法会执行多次,如果要做代码生成必须自己做好控制

本文来自投稿,不代表长河网立场,转载请注明出处: http://www.changhe99.com/a/42wKY1v6Ao.html

(0)

相关推荐