Android中使用AOP编程实现登录检查

AOP即面向切面编程,实现aop的框架很多,这里选用AspectJ,具体介绍和区别参见网上其他文章,这里仅做使用过程的记录~

这里选用的是第三方开源库 AspectJX,这是一个基于AspectJ并在此基础上扩展出来可应用于Android开发平台的AOP框架,可作用于java源码,class文件及jar包,同时支持kotlin的应用。github地址 :https://github.com/HujiangTechnology/gradle_plugin_android_aspectjx

注意:参照官方文档上写的引入方式有个坑,会提示找不到资源,是无法成功引入的,以2.0.6版本为例:

需要把项目根目录下的build.gradle里的依赖

 classpath 'com.github.franticn:gradle_plugin_android_aspectjx:2.0.6'

 替换为

 classpath'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.6'

其他步骤参照官方文档就可以成功引入啦~

接下来就可以进入正题了,首先说明AOP的用途很广泛,我这里只是简单记录如何使用,所以代码精简的不能再精简了......

以常用的登录检查为例:分三步走

第一步:定义一个注解。这个没什么可讲的

1.定义注解

第二步:编写切面,定义切入点及拦截逻辑。

这里需要注意的是定义切入点的时候括号里的语法问题,一定不能错

2.定义切面、切入点

第三步:在需要检查是否登录的方法上添加刚才定义的注解即可

3.简单使用

至此,当调用 testMethod方法的时候,就会执行定义的拦截逻辑代码了。

测试结果如下

登录


未登录

可以看到,当未登录时,testMethod方法是被拦截了,没有继续执行的,而已登录时则是正常执行。这就完成了最简单的aop使用了。

你可能感兴趣的:(Android中使用AOP编程实现登录检查)