【07】保留在字节码级别注解的应用场景

(1)一个人只要自己不放弃自己,整个世界也不会放弃你.
(2)天生我才必有大用
(3)不能忍受学习之苦就一定要忍受生活之苦,这是多么痛苦而深刻的领悟.
(4)做难事必有所得
(5)精神乃真正的刀锋
(6)战胜对手有两次,第一次在内心中.
(7)好好活就是做有意义的事情.
(8)亡羊补牢,为时未晚
(9)科技领域,没有捷径与投机取巧。
(10)有实力,一年365天都是应聘的旺季,没实力,天天都是应聘的淡季。
(11)基础不牢,地动天摇
(12)写博客初心:成长自己,辅助他人。当某一天离开人世,希望博客中的思想还能帮人指引方向.
(13)编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~

保留在字节码级别注解的应用场景

1.注解的应用场景

(1)根据注解的保留级别不同,对注解的使用自然存在不同场景。

(2)由注解的三个不同保留级别可知,注解作用于:源码、字节码与运行时时你能举一些案例吗?

级别技术说明
源码APT在编译期能够获取注解声明的类,包括类中的所有成员信息,一般用于生成额外的辅助类。
字节码字节码增强在编译出class后,通过修改Class数据以实现修改代码逻辑目的。对于是否需要修改的区分或者修改为不同逻辑的判断可以使用注解
运行时反射在程序运行期间,通过反射技术动态获取注解与其元素,从而完成不同的逻辑判定。

2.保留在CLASS字节码级别注解的应用场景

(1)保留在CLASS字节码级别注解,在字节码增加技术中常用到,在编译出class后,通过修改Class数据以实现修改代码逻辑的目的。

(2)字节码在热修复的时候,会应用到插桩技术。

(3)在字节码中写代码。

(4)javap命令是反编译字节码命令,编译成可读性稍微强一些的文件。

2.1案例

在这里插入图片描述

在这里插入图片描述

(1)onCreate()方法上添加了@InjectTime注解,用来标记是否要对这个方法做一些增强。

(2)所以我们在做字节码操作的时候,就可以判断这个方法上面是否有这个注解,有这个注解就加入一段代码。

(3)这个注解必须是CLASS级别的,我们是在CLASS上去操作这个注解的,也就是说在RESOURCE之上的级别,可以是CLASS级别也可以是RUNTIME。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值