首页 >> 数码 >

android系统的工作原理 android:[1]注解处理器

2022-06-30 05:25:08 来源: 用户: 

大家好,我是云百科的客服小柏,我来为大家解答以上问题。android系统的工作原理,android:[1]注解处理器很多人还不知道,现在让我们一起来看看吧!

解答:

1、 将名为annotationprocessor的java库模块添加到现有的android项目中。

2、 在模块的主目录下创建一个新的resources/META-INF/services目录,并在resources/META-INF/services目录下创建一个名为javax.annotation.processing.processor的新文件。文件构建完成后,可以填写步骤2中创建的类的全名,com.example.annotation.processor.simpleprocessor,如果有多个批注处理器,也可以填写多个批注处理器,批注处理器之间用换行符隔开。

3、 构建的目录和文件如下:

4、 如果您不想手动填写步骤3中的配置,您也可以通过AutoServiceannotation自动生成配置。

5、 首先,在模块的build.gradle中添加依赖编译“com.Google.auto.service:auto-service33601.0-RC2”,然后在步骤2中新创建的类上添加批注@AutoService(Processor.class)。

6、 编译模块,在模块的build/lib目录下会生成一个jar文件。

7、 打开jar文件你会发现无论配置是手动生成的还是AutoService标注自动生成的,

8、 生成的jar包将包含相同的信息。

9、 在模块应用程序中添加依赖注释处理器项目(“3360注释处理器”)以引入注释处理器。

10、 编译app模块,查看gradle控制台,可以看到方法调用信息。

11、 注释:初始化

12、 注释:getSupportedSourceVersion

13、 注释:GetSupportEdannotationTypes

14、 注释:getSupportedOptions

15、 查看方法调用信息,我们发现过程方法没有被调用,

16、 这是因为注册过程不注册要处理的注释,

17、 我们在getSupportedAnnotationTypes方法中注册注释信息

18、 com.example.annotation.Mark

19、 重新编译后,发现仍然没有执行process方法,因为批注处理器没有扫描用com.example.annotation.Mark批注的信息

20、 我们在应用程序的主活动中添加了评论标记。

21、 该标记的实现如下

22、 编译app,查看gradle控制台,发现这次有进程调用信息,

23、 添加用于在进程中获取注释信息的代码。

24、 运行并查看gradle控制台,可以看到日志中打印了mark、class、method的值。

25、 获得注释后,添加以下代码以获得被注释元素的一些基本信息。

26、 如果需要获得关于TypeElement的更多信息,可以使用

27、 processingenvironment.getelementutils()。getAllMembers(TypeElement),

28、 该方法可以获取TypeElement的所有信息。

29、 文中所有源代码均为:https://git.oschina.net/jackyanngo/annotationprocessorsample.git。

本文到此讲解完毕了,希望对大家有帮助。

  免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!

 
分享:
最新文章
站长推荐