、拦截器、埋点、事件防抖等)则由AOP统一处理;
AspectJ简介
AOP是一种编程思想,或者说方法论,AspectJ则是专为AOP设计的一种语言,它支持原生的JAVA,可用于在java中处理AOP...)
变量(变量get,变量set等)
代码块(静态代码块,for等)
Pointcuts
AspectJ中的切面(这种翻译不一定正确),由点及面,用于说明你需要hook哪一类问题,比如我需要hook所有的...+反射来处理重复点击的问题:Android-如何优雅的处理重复点击 ,虽然这种方式能达到目的且还算灵活,但还是存在侵入性,对于业务逻辑不是完全透明,所以我们需要使用跟好的方式来处理;
AOP用于处理某一类独立的问题...,对于业务逻辑是完全透明,甚至业务逻辑代码里都没有体现,这一类问题就已经被处理好了,而且是全局的处理;
说一下上面的代码中几个点:
1、@Aspect:该注解用于标注使用Aspect的类,即你编写Aspec...代码的类
2、@Around(“…”)
3、@Around注解用于标注hook之后的处理代码,我们这里使用Around是因为原函数(onClick)可能执行,也可能不执行;注解中的参数则对应Pointcuts